我正在开发一个有两个版本的应用程序。一个用于网络,另一个用于 iPhone。
在网络应用程序中,我能够在道路上绘制路线(自动绘制遵循道路/高速公路的路线)和越野(在两个特定点之间绘制直线)。
是否有适用于 iPhone 的 API 可用于在地图上绘制路线?我能够在两个节点之间的地图上绘制一条直线,但我无法在 iPhone 中绘制路线图路线。
我正在使用 iPhone 3.0 和 SDK 3.0
谢谢。
我正在开发一个有两个版本的应用程序。一个用于网络,另一个用于 iPhone。
在网络应用程序中,我能够在道路上绘制路线(自动绘制遵循道路/高速公路的路线)和越野(在两个特定点之间绘制直线)。
是否有适用于 iPhone 的 API 可用于在地图上绘制路线?我能够在两个节点之间的地图上绘制一条直线,但我无法在 iPhone 中绘制路线图路线。
我正在使用 iPhone 3.0 和 SDK 3.0
谢谢。
也许你想看看 Craig Spitzkoff 最近写的MapLinesAndAnnotations示例:
iOS4 中有一个名为 MKOverlayPathView 的新 API,它正是这样做的。 MKOverlayPathView
我只是想用这些信息更新这篇文章,以便人们了解整个故事。
使用此 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.0 中没有用于此的 API。您可能必须在 MKMapView 上添加叠加层,但这可能非常乏味
iPhone 上的一种标准方式(因为 MapKit 许可中表达了限制)是使用[[[UIApplication sharedApplication] delegate] openURL:myURL];
打开地图应用程序。
myURL 是一个“ http://maps.google.com/maps ?...” URL(NSURL 对象),其中包含 developer.apple.com 上的文档中支持的选项子集。您可以使用 saddr= 和 daddr= 参数设置路线的起点和终点地址(或坐标),然后用户可以查看路线并使用地图应用程序的驾驶、骑车或步行文本指示来行驶路线。也许在 iPhone 4 GM 上您将能够返回到您的程序,但当前打开 URL 将终止您的应用程序并启动 Maps(或 Safari,如果未安装 Maps)应用程序。
对问题的一些补充可能是:在示例 Craig Spitzkoff 的 MapLinesAndAnnotations 示例中,如何动态获取那些用于绘制路径的坐标......?(从谷歌地图获取两个位置之间的坐标)。
使用以下链接:MapWithRoute
希望这个可以帮助您使用两个用户定义的位置绘制路线。