【问题标题】:How to find route between two location in iOS5如何在iOS5中找到两个位置之间的路线
【发布时间】:2012-03-06 16:24:28
【问题描述】:

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

【问题讨论】:

    标签: objective-c ios5 mkmapview


    【解决方案1】:

    iOS 5 SDK 中没有路由功能。

    因此,要创建路由,您需要解析来自路由提供者的数据,例如 Google Maps API 或使用来自 CloudMade Maps 的 SDK。然后使用 MKPolyline 连接解析点以在 MKMapView 上显示路线。

    可能已有开源项目有路由,尝试搜索github.com

    【讨论】:

    • 如果我使用 iOS4 sdk,我同意你的 Flink,但如果 iOS 5 Map Kit 框架有更多增强的方式来绘制折线,我想出了如何做到这一点。对于我的问题的详细解决方案已作为答案给出,但仍然感谢您的建议。
    【解决方案2】:

    我的问题:画出两个终点(起点和终点)之间的路线。
    开发需求: iOS 5 sdk(具有这样做的功能) ),Xcode 4.2。
    UI 设计: 就我而言,这是非常简单的设计。两个输入文本字段和一个按钮,然后是 MKMapView。
    框架: 地图套件框架和核心位置框架工作
    开发步骤:

  • 获取两个输入位置
  • 这里我使用Geo Coder 类的geocodeAddressString: completionHandler: 方法(来自Core Location Framework)来获取给定位置字符串的坐标(iOS5 可用)
  • 使用 MkPoint Annotation 对象在地图中的位置创建注释
  • 然后向 google API 发送请求以获取 Direction between two location
  • 从 google API 响应(可在 JSON 和 XML 中获得)您将拥有 overview_polyline 对象,它具有位置坐标数组。但是它们是被编码的,你必须使用正确的解码模块来获得纬度和经度。
  • 使用解码的位置坐标,您可以使用 MKPolyline 实例方法创建折线。 MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:[overlayPoints count]]; [mapView addOverlay:polyLine];
  • 现在折线已在地图上绘制,但仍不可见
  • 最后,我们必须重写 viewForOverlay 方法来显示折线视图。
    希望这可能对你们有帮助,如果您有任何不明白的地方,请告诉我。
    干杯,
    Arun
  • 【讨论】:

    • 谢谢@sanchitsingh。你的评论促使我写更多。
    • iDroid,你能分享一个样本吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多