我发现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上画一条线我只需要路线的地理位置.
或者也许有一种不同的方式来获得两个地理位置点之间的路线.
请告诉我,
提前致谢.
这里提到并公开了一个未记录的Google Maps Directions API
你也应该看看使用上面提到的API,它绘制的路线/方向上的MKMapView样品IPhone的应用在这里
但是警告您有关未记录的Google Maps Directions API的许可问题.
希望这可以帮助.
我最初会说(并且我相信其他人会提出这个问题)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和其他非Flash下的部分.Javascript环境.它解释了一个RESTful API,您可以在其中向Google发送HTTP GET请求并获取JSON数据.这是我发现从Google获取与Javascript无关的程序化数据的唯一方法.
一旦找到了要调用的正确URL,就可以将整个事件包装在ASIHTTPRequest调用中,并将结果提供给JSON解析器.要记住的一件事是RESTful API一次只返回一些结果(4到8之间),你必须继续回去,直到你获得所有数据.对API返回的结果数量似乎也有64项上限,因此可能会影响一些复杂的边缘情况.