19

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

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

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

我正在使用 iPhone 3.0 和 SDK 3.0

谢谢。

4

6 回答 6

10

iOS4 中有一个名为 MKOverlayPathView 的新 API,它正是这样做的。 MKOverlayPathView

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

于 2010-11-15T13:50:48.503 回答
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. 解码这些点(参考http://fkn1337.com/decode-google-maps-polylines-objective-c/)并制作一个 CLLocationCoordinate2D 数组

  5. 采用

(MKPolyline *)polylineWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count

用于创建 MKPolyline 对象

6 使用 MKMapview 的 addOverlay 我们可以创建一个带方向的叠加层

于 2011-03-08T14:05:17.343 回答
3

不幸的是,3.0 中没有用于此的 API。您可能必须在 MKMapView 上添加叠加层,但这可能非常乏味

于 2009-07-06T07:21:08.697 回答
2

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)应用程序。

于 2010-06-11T09:23:29.330 回答
1

对问题的一些补充可能是:在示例 Craig Spitzkoff 的 MapLinesAndAnnotations 示例中,如何动态获取那些用于绘制路径的坐标......?(从谷歌地图获取两个位置之间的坐标)。

使用以下链接:MapWithRoute

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

于 2012-08-12T09:00:41.317 回答