MKMapView 路线/方向

12

我发现Google Maps API支持通过以下方式获取方向:

var map;
var directionsPanel;
var directions;

function initialize() {
  map = new GMap2(document.getElementById("map_canvas"));
  directionsPanel = document.getElementById("my_textual_div");
  map.setCenter(new GLatLng(49.496675,-102.65625), 3);
  directions = new GDirections(map, directionsPanel);
  directions.load("from: 500 Memorial Drive, Cambridge, MA to: 4 Yawkey Way, Boston, MA 02215 (Fenway Park)");
}

那么这个怎样才能被翻译成Objective-C,以便iPhone可以检索到它?我知道如何在MKMapView上画一条线,我只需要路线的地理位置。

或者也许有另一种方法可以获取两个地理位置点之间的路径。

请告诉我,

先行致谢。

2个回答

9

这里提到了一个未记录的谷歌地图路线API,可以在这里找到相关信息。

您还应该查看一下iPhone样本应用程序,使用上述API将路线/方向绘制到MKMapView这里

但是请注意,此未记录的谷歌地图路线API可能存在许可问题。

希望这有所帮助。


3
注意:请在 GitHub 上查找示例项目 https://github.com/kadirpekel/MapWithRoutes。 - coffeemate
这里的链接在我写这条评论的一分钟前点击时都无法工作。请检查它们是否有效并更新它们,因为我确实需要它们。 - Nayan
使用Google地图API只能在使用Google地图时起作用,这似乎不再是可信的方法,因为iOS 5不允许此操作,需要更好的方法。如果有人找到了,请发布。 - DD_

8
我原本想说(我相信其他人也会提到),Google Maps的使用条款规定,如果您计划使用MapKit,则不能使用方向。但是我仔细检查了http://code.google.com/apis/maps/terms/iPhone.html,并没有找到明确的限制。如果我理解正确,它实际上是说只要与GPS驱动的实时转向功能相关联,就不能使用方向。您应该根据自己的判断力来确定是否可以以及是否影响您在AppStore上被接受的机会。
至于在Objective-C中获取实际数据,您最好查看Google Ajax搜索文档[http://code.google.com/apis/ajaxsearch/documentation/],特别是Flash和其他非JavaScript环境下的部分。它解释了一种RESTful API,您可以向Google发送HTTP GET请求并获得JSON数据。这是我发现的唯一一种可以从Google中获取编程数据而不与JavaScript相关联的方法。
一旦您确定了正确的URL调用方式,就可以将整个过程包装在ASIHTTPRequest调用中,并将结果提供给JSON解析器。需要记住的一点是,RESTful API每次仅返回少量结果(4至8个),您需要不断返回直到获取所有数据。此外,API返回的结果数量似乎有64项限制,因此某些复杂的边缘情况可能会受到影响。

我认为很奇怪他们支持几乎所有东西,除了方向。哦,那我猜我最好使用一个转发到实际的谷歌地图应用程序。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接