MKMapView 路线/方向
Posted
技术标签:
【中文标题】MKMapView 路线/方向【英文标题】:MKMapView Route/Directions 【发布时间】:2010-12-02 11:07:51 【问题描述】:我发现 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 上画线我只需要路线的地理位置。
或者也许有不同的方法来获取两个地理位置点之间的路线。
请告诉我,
提前致谢。
【问题讨论】:
【参考方案1】:提到并公开了一个未记录的 Google Maps Directions API here
您还应该查看示例 iPhone 应用程序,该应用程序使用上面提到的 API here 将路线/方向绘制到 MKMapView 上
但警告您有关未记录的 Google Maps Directions API 的许可问题。
希望这会有所帮助。
【讨论】:
-- 通知 -- 请在 github https://github.com/kadirpekel/MapWithRoutes 找到示例项目 当我在撰写此评论时单击前一分钟时,“此处”的链接都不起作用。请检查它们是否工作并更新它们..因为我确实属于它们...... 使用谷歌地图 APi 仅在使用谷歌地图时有效,这似乎不再是一种可信赖的方法,因为 ios 5 不允许这样做,需要更好的方法。如果有人发现,请发布。【参考方案2】:我原本想说(而且我相信其他人会提出)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 无关的程序化数据的唯一方法。
一旦确定了要调用的正确 URL,您就可以将整个内容封装在 ASIHTTPRequest 调用中,并将结果提供给 JSON parser。要记住的一件事是,RESTful API 一次只返回几个结果(4 到 8 个),并且您必须继续返回,直到获得所有数据。 API 返回的结果数量似乎也有 64 项上限,因此一些复杂的边缘情况可能会受到影响。
【讨论】:
我觉得奇怪的是他们几乎支持除了方向之外的任何东西。哦,好吧,我猜我最好使用实际的谷歌地图应用程序。以上是关于MKMapView 路线/方向的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIView 作为 MKMapView 子视图来绘制路线