我正在开发一个有两个版本的应用程序。一个用于网络,另一个用于iPhone。
在网络应用程序中,我能够在道路上绘制路线(在道路/高速公路之后自动绘制路线)和越野路线(在两个特定点之间绘制直线)。
是否有适用于iPhone的API可用于在地图上绘制路线?我可以在两个节点之间的地图上绘制一条直线,但我无法在iPhone中绘制路线图路线。
我正在使用iPhone 3.0和SDK 3.0
感谢。
答案 0 :(得分:22)
也许你想看看他最近写的Craig Spitzkoff的MapLinesAndAnnotations样本:
答案 1 :(得分:10)
在iOS4中有一个名为MKOverlayPathView的新API就是这样做的。 MKOverlayPathView
我只是想用这些信息更新这篇文章,以便人们了解整个故事。
答案 2 :(得分:4)
使用此url创建json / xml文件 http://maps.googleapis.com/maps/api/directions/output?parameters(请参阅code.google.com/apis/maps/documentation/directions/以获取更多参考资料)
解析json / xml文件
- 腿 - 步 - 折线,你可以看到编码格式的点
解码这些点(参考http://fkn1337.com/decode-google-maps-polylines-objective-c/)并制作CLLocationCoordinate2D数组
使用
(MKPolyline *)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count
用于创建MKPolyline对象
6使用MKMapview的addOverlay,我们可以创建一个方向
的叠加层答案 3 :(得分:3)
不幸的是,3.0中没有API。您可能需要在MKMapView上添加叠加层,但这可能非常繁琐
答案 4 :(得分:2)
iPhone上的标准方式(因为MapKit许可证中有限制)是使用[[[UIApplication sharedApplication] delegate] openURL:myURL];
打开地图应用。
myURL是一个“http://maps.google.com/maps?...”网址(NSURL对象),其中包含developer.apple.com上文档中支持的选项子集。您可以使用saddr =和daddr =参数来设置路线的起始和结束地址(或坐标),然后用户可以查看路线并使用地图应用程序的驾驶,骑车或步行文本方向来路线。也许在iPhone 4 GM上你可以返回你的程序,但是现在打开URL会终止你的应用程序并启动地图(或Safari,如果没有安装地图)应用程序。
答案 5 :(得分:1)
一些问题可能是: 如何以动态方式获得这些坐标,用于绘制路径,在示例中Craig Spitzkoff的MapLinesAndAnnotations示例......? (从谷歌地图获取两个位置之间的坐标)。
使用以下链接:MapWithRoute
希望,这个可以帮助您使用两个用户定义的位置绘制路线。