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 上画一条线我只需要路线的地理位置。

或者也许有一种不同的方式来获取两个地理位置点之间的路线。

请告诉我,

提前致谢。

4

2 回答 2

9

这里提到并公开了一个未记录的 Google Maps Directions API

此外,您应该查看示例 iPhone 应用程序,该应用程序使用此处提到的 API 将路线/方向绘制到 MKMapView 上

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

希望这可以帮助。

于 2010-05-31T06:49:25.243 回答
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 项上限,因此一些复杂的边缘情况可能会受到影响。

于 2009-09-29T21:42:57.457 回答