如何在iOS5中找到两个位置之间的路由

时间:2012-02-15 10:19:02

标签: objective-c ios5 mkmapview

我知道它在早期版本中相当复杂,在ios 5中是否有任何新方法。关于这个我可以通过使用Core位置GEOCoder来获取位置,但是想要在它们之间绘制路线,iOS 5也有能力从源显示单个目标的备用路由。 希望有人帮助我
注意:我正在使用Map kit和核心位置,而不是使用带有Google API的UIWebView。

2 个答案:

答案 0 :(得分:12)

我的问题:在两个结束位置(原点和目的地)之间绘制路线 开发需求: iOS 5 sdk(具有此功能),Xcode 4.2。
UI设计:在我的情况下,它的设计非常简单。两个输入文本字段和一个按钮然后MKMapView 框架:地图套件框架和核心位置框架工作
开发步骤:

  • 获取两个输入位置
  • 这里我使用Geo Coder类的方法geocodeAddressString: completionHandler:(来自Core Location Framework)获取给定位置字符串的坐标(在iOS5中可用)
  • 使用的MkPoint Annotation对象在地图中的位置创建注释
  • 然后向google API发送请求以获取{ {3}}
  • 从Google API响应开始(以JSON和XML格式提供)您将拥有 overview_polyline 对象,该对象具有位置坐标数组。但是它们被编码,您必须使用正确的解码模块来获得经度和纬度。
  • 使用解码的位置坐标,您可以使用MKPolyline实例方法创建多边形线。 MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:[overlayPoints count]]; [mapView addOverlay:polyLine];
  • 现在折线已经在地图上绘制,但仍然无法显示
  • 最后一步我们必须覆盖 viewForOverlay 显示多义线视图的方法。
    希望这对你们有帮助,如果有什么你可能不明白的话请告诉我。
    干杯,阿伦

  • 答案 1 :(得分:1)

    iOS 5 SDK中没有路由功能。

    因此,要制作路线,您需要解析路线提供商的数据,例如Google Maps API或使用CloudMade Maps中的SDK。然后使用MKPolyline连接解析点以在MKMapView上显示路径。

    可能存在包含路线的开源项目,尝试搜索github.com