Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯位置服务地图SDK公交路线规划应用示例2

腾讯位置服务地图SDK公交路线规划应用示例2

作者头像
腾讯位置服务
发布于 2020-12-18 03:48:07
发布于 2020-12-18 03:48:07
5090
举报
文章被收录于专栏:腾讯位置服务腾讯位置服务

前言

继续上一次的Demo,本次添加了同一路线的多条不同的公交线路展示,默认显示第0条。并且通过点击公交路线来切换选中的路线。

上篇参考:腾讯位置服务地图SDK公交路线规划应用示例

使用场景

公交路线规划

准备

腾讯位置服务iOS地图SDK

路线切换

1、创建QPolyline的子类,用于区分步行部分和公交部分。

代码语言:txt
AI代码解释
复制
@interface RoutePlanWalkingPolyline : QPolyline

@end
代码语言:txt
AI代码解释
复制
@interface RoutePlanBusingPolyline : QPolyline

// 判断当前路线是否已经被选中
@property (nonatomic, assign) BOOL isSelected;

@end

2、在创建路线Mode时,通过判断路线的种类来创建不同的模型,并且默认选中第0条路线。

代码语言:txt
AI代码解释
复制
/*
 1. 默认选择第一个公交车线路
 2. 当前公交车线路 alpha = 1,有箭头
 3. 备用公交车线路 alpha = 0.5, 无箭头
 4. 点击备用公交车线路可以切换
 */
// 驾车蚯蚓线
// 遍历所有驾车路线
for (int i = 0; i < plan.lines.count; i++) {
    QMSBusingRouteTransitLine *line = plan.lines[i];
    CLLocationCoordinate2D coords[line.polyline.count];
    
    for (int i = 0; i < line.polyline.count; i++) {
        NSValue *value = line.polyline[i];
        CLLocationCoordinate2D coord = [value coordinateValue];
        coords[i] = coord;
    }
    
    RoutePlanBusingPolyline *busPolyline = [[RoutePlanBusingPolyline alloc] initWithCoordinates:coords count:line.polyline.count];
    busPolyline.isSelected = i==0 ? YES : NO;
    [self.mapView addOverlay:busPolyline];
    [self.selectRouteOverlayArray addObject:busPolyline];
}

3、在添加折线视图时,额外添加判断当前的公交模型是否已经被选中的步骤。

代码语言:txt
AI代码解释
复制
RoutePlanBusingPolyline *busingPolyline = (RoutePlanBusingPolyline *)overlay;
// 路线箭头
if (busingPolyline.isSelected) {
    
    polylineView.strokeColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.5];
    polylineView.drawSymbol = YES;
    polylineView.zIndex = 1;
} else {
    polylineView.strokeColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.5];
    polylineView.drawSymbol = NO;
    polylineView.zIndex = 0;
}

4、最后,监听Overlay的点击方法,并判断回调的Overlay是否为公交路线的数据模型,然后选中该模型,取消选中其他的模型。

代码语言:txt
AI代码解释
复制
- (void)mapView:(QMapView *)mapView didTapOverlay:(id<QOverlay>)overlay {
    // 判断是否是路线
    if ([overlay isKindOfClass:[RoutePlanBusingPolyline class]]) {
        
        for (QPolyline *polyline in self.selectRouteOverlayArray) {
            if ([polyline isKindOfClass:[RoutePlanBusingPolyline class]]) {
                
                RoutePlanBusingPolyline *busingPolyline = (RoutePlanBusingPolyline *)polyline;
                
                QTexturePolylineView *polylineView = (QTexturePolylineView *)[self.mapView viewForOverlay:busingPolyline];

                if (busingPolyline == overlay) {
                    // 选中:实心颜色
                    busingPolyline.isSelected = YES;
                    polylineView.strokeColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.5];
                    polylineView.zIndex = 1;
                    polylineView.drawSymbol = YES;
                } else {
                    // 未选中:虚色
                    busingPolyline.isSelected = NO;
                    polylineView.strokeColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.5];
                    polylineView.zIndex = 0;
                    polylineView.drawSymbol = NO;
                }
            }
        }
    }
}

示例图

作者:面糊

链接:https://www.jianshu.com/p/74b6b7b50352

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯位置服务地图SDK公交路线规划应用示例
今天分享腾讯位置服务地图SDK检索功能的应用,使用公交路线规划功能实现Demo,暂时还没有做同一路线不同公交线路切换功能(后续完善此Demo)。
腾讯位置服务
2020/12/11
9480
iOS百度地图POI详情检索与路径规划(附Demo)
POI(Point of Interest)中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。 写在前面:最近老是有朋友来问我这个检索怎么不行了,我今天看了下,果然,出了问题,似乎是百度地图的一个Bug。POI检索后调POI详情检索,但是详情检索出来的经纬度全部是0,这样自然是不能够成功添加大头针的。奇怪的是在POI检索中经纬度是有的,但是呢,详情中经纬度竟然丢失了。这个只能等百度那边修复了,当然我这里提供一个临时解决这个办法的方法。在文末我上
Raindew
2018/06/14
1.8K0
腾讯位置服务地图SDK自定义地图和路况
1)、首先,登录到腾讯地图管理控制台,然后进入个性化地图里面,随便找一个模板,选择编辑样式:
腾讯位置服务
2020/11/27
1.2K0
腾讯位置服务教你快速实现距离测量小工具
为了熟悉腾讯地图SDK中的QGeometry几何类,以及点和线之间的配合,编写了这个可以在地图上面打点并获取直线距离的小Demo。
腾讯位置服务
2020/07/24
1.1K0
腾讯地图手把手教你实现微信小程序路线规划
本文旨在以mpvue框架为基础,探讨地图类小程序的开发思路。 原作者利用mpvue + 腾讯地图的能力做了一个地铁路线规划的小程序,主要提供全球主要城市的地铁线网图及旅游介绍,其中国内城市支持查看地图和路线规划。
腾讯位置服务
2021/03/05
1.6K0
iOS百度地图开发之路径规划
路线规划 示例程序 使用百度地图SDK版本为2.9.1。 需要将改 代码: #import <MapKit/MapKit.h> #import <BaiduMapAPI_Map/BMKMapView.h> #import <BaiduMapAPI_Location/BMKLocationService.h> #import <BaiduMapAPI_Search/BMKSearchComponent.h> #import <BaiduMapAPI_Map/BMKPolylineView.h> #impor
hrscy
2018/08/30
1.3K0
iOS百度地图开发之路径规划
地图相关 MapKit框架介绍MKMapView控件对象的属性和方法MKAnnotation 大头针模型类大头针view显示类:MKPinAnnotationView 继承于 MKAnnotation
介绍 1.概念 导入头文件 #import <MapKit/MapKit.h> MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专门用于地图显
用户2141756
2018/05/18
5.1K0
腾讯地图行政区划边界绘制教程来啦!!
腾讯地图iOS SDK推出了4.4.0版本,更新了多个比较实用的功能,本次介绍地图SDK行政区划检索功能新添加的行政区划轮廓点串,可以让我们在地图上绘制行政区划的边界。
腾讯位置服务
2021/03/12
3.2K0
地图| 高德地图源码级使用大全
高德地图提供包括:web前端、Android、iOS、服务器、小程序等平台的地图服务, 地图功能众多,本文记载的只是自己遇到的一些问题,绝大部分功能只要参照官方文档和Dome都可以实现出来。
進无尽
2018/09/12
4.6K0
地图| 高德地图源码级使用大全
iOS原生地图开发进阶——使用导航和附近兴趣点检索
iOS中的mapKit框架对国际化的支持非常出色。在前些篇博客中,对这个地图框架的基础用法和标注与覆盖物的添加进行了详细的介绍,这篇博客将介绍两个更加实用的功能的开发:线路导航与兴趣点搜索。前几篇博客的链接如下:
珲少
2018/08/16
1K0
iOS原生地图开发进阶——使用导航和附近兴趣点检索
LeetCode 815. 公交路线(最少换乘,BFS)
我们有一系列公交路线。每一条路线 routes[i] 上都有一辆公交车在上面循环行驶。 例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直按照 1->5->7->1->5->7->1->… 的车站路线行驶。
Michael阿明
2020/07/13
1.2K0
iOS地图找房(类似链家、安居客等地图找房)
题外话:在百度搜索键入:iOS地图找房。你会发现搜索到很多关于这方面的帖子,但是几乎都是询问如何实现的,找不到一个可以研究借鉴的博客。于是我决定补上这个空缺,写的可能不全面,大家体谅。 更新PS:原本
Raindew
2018/06/14
1.6K0
腾讯位置服务实现路径规划功能demo
这个腾讯位置服务产品初体验小demo能够实现的基本功能有:实现输入(定位)当前位置及终点位置,在地图上规划出两点之间路线,并显示路线所需的距离及路费,确认行程后通过动画模拟车辆在路线上行驶。
腾讯位置服务
2021/08/04
1.3K0
腾讯位置服务实现路径规划功能demo
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
腾讯位置服务
2021/07/29
3.2K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
【IOS开发基础系列】地图开发专题
http://www.cnblogs.com/syxchina/archive/2012/10/14/2723522.html
江中散人_Jun
2023/10/16
4990
【IOS开发基础系列】地图开发专题
公交车总迟到?你大概掉进了“等待时间悖论&quot;
你到了车站,准备搭乘声称每10分钟一班的公交车。你盯着你的手表留意着时间,结果公交车终于在11分钟后到来。
磐创AI
2018/12/18
3960
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
达达前端
2020/12/28
6.6K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
相关推荐
腾讯位置服务地图SDK公交路线规划应用示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档