iPhone地图路线绘制在iPhone上

时间:2009-07-06 07:03:26

标签: iphone google-maps routes

我正在开发一个有两个版本的应用程序。一个用于网络,另一个用于iPhone。

在网络应用程序中,我能够在道路上绘制路线(在道路/高速公路之后自动绘制路线)和越野路线(在两个特定点之间绘制直线)。

是否有适用于iPhone的API可用于在地图上绘制路线?我可以在两个节点之间的地图上绘制一条直线,但我无法在iPhone中绘制路线图路线。

我正在使用iPhone 3.0和SDK 3.0

感谢。

6 个答案:

答案 0 :(得分:22)

答案 1 :(得分:10)

在iOS4中有一个名为MKOverlayPathView的新API就是这样做的。 MKOverlayPathView

我只是想用这些信息更新这篇文章,以便人们了解整个故事。

答案 2 :(得分:4)

  1. 使用此url创建json / xml文件 http://maps.googleapis.com/maps/api/directions/output?parameters(请参阅code.google.com/apis/maps/documentation/directions/以获取更多参考资料)

  2. 解析json / xml文件

  3. 路线中的
  4. - 腿 - 步 - 折线,你可以看到编码格式的点

  5. 解码这些点(参考http://fkn1337.com/decode-google-maps-polylines-objective-c/)并制作CLLocationCoordinate2D数组

  6. 使用

  7. (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

希望,这个可以帮助您使用两个用户定义的位置绘制路线。