使用 KML 数据检索 Google 路线时出现问题
自 2012 年 7 月 27 日起,Google 已停止使用 KML 数据检索 Google 路线。这意味着代码不再用于通过解析 KML 文件从 Google 提取路线功能性。
解决方案:
迁移代码以使用 JSON 而不是 KML。为了促进这种转变,我创建了以下类:
实现:
private Route directions(final GeoPoint start, final GeoPoint dest) { Parser parser; String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON"; final StringBuffer sBuf = new StringBuffer(jsonURL); sBuf.append("origin="); sBuf.append(start.getLatitudeE6()/1E6); sBuf.append(','); sBuf.append(start.getLongitudeE6()/1E6); sBuf.append("&destination="); sBuf.append(dest.getLatitudeE6()/1E6); sBuf.append(','); sBuf.append(dest.getLongitudeE6()/1E6); sBuf.append("&sensor=true&mode=driving"); parser = new GoogleParser(sBuf.toString()); Route r = parser.parse(); return r; }
MapView mapView = (MapView) findViewById(R.id.mapview); Route route = directions(new GeoPoint((int)(26.2*1E6),(int)(50.6*1E6)), new GeoPoint((int)(26.3*1E6),(int)(50.7*1E6))); RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE); mapView.getOverlays().add(routeOverlay); mapView.invalidate();
注意:建议在 AsyncTask 中使用 Directions() 函数,以避免 UI 线程上的网络操作。
以上是如何从 KML 迁移到 JSON 以检索 Google 路线数据?的详细内容。更多信息请关注PHP中文网其他相关文章!