MKMapView路线/方向

时间:2009-09-29 20:44:17

标签: iphone mkmapview direction map-directions

我发现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 个答案:

答案 0 :(得分:9)

提到了一个未公开的Google Maps Directions API,并公开了here

另外,你应该看一下使用上面提到的API {/ 3}}

的示例IPhone应用程序,它将路线/方向绘制到MKMapView上

但警告您有关未记录的Google Maps Directions API的许可问题。

希望这有帮助。

答案 1 :(得分:8)

我最初会说(并且我相信其他人会提出这个问题)Google地图使用条款表示如果您打算使用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无关的程序化数据的唯一方法。

一旦找到了要调用的正确网址,就可以将整个内容包含在ASIHTTPRequest调用中,并将结果提供给JSON parser。要记住的一件事是RESTful API一次只返回一些结果(4到8之间),你必须继续回去,直到你获得所有数据。对API返回的结果数量似乎也有64项上限,因此可能会影响一些复杂的边缘情况。