首页 >Java >java教程 >为什么 Google Directions for Android 停止支持 KML 数据,以及如何迁移到有效的解决方案?

为什么 Google Directions for Android 停止支持 KML 数据,以及如何迁移到有效的解决方案?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-29 14:12:10130浏览

Why Did Google Directions for Android Stop Supporting KML Data, and How Can I Migrate to a Working Solution?

为什么使用 KML 数据检索 Android 版 Google 路线不再起作用?

以前,可以使用 KML 数据检索 Google 路线,但此方法已被弃用,因为2012年7月27日。Google Directions的结构已修改,KML数据不再支持。

解决方案和替代方案

要获取 Google 路线,您现在必须迁移到 JSON 或 XML。这里有一组类和代码片段可以帮助您:

  • Parser.java:用于解析方向数据的接口。
  • XMLParser.java:处理 KML 数据的 XML 解析器(已弃用)。
  • Segment.java:表示路线的一段,包括点、说明和距离。
  • Route.java :表示完整的路线,包括路段、点、元数据。
  • GoogleParser.java:实现 Parser 接口来解析 Google JSON 路线数据。
  • RouteOverlay.java:用于绘制路线的叠加层在地图上。

代码片段

使用 GoogleParser 检索路线(推荐使用 AsyncTask):

private Route directions(GeoPoint start, GeoPoint dest) {
    String jsonURL = "https://maps.googleapis.com/maps/api/directions/json?";
    jsonURL += "origin=" + start.getLatitudeE6() / 1E6 + "," + start.getLongitudeE6() / 1E6;
    jsonURL += "&destination=" + dest.getLatitudeE6() / 1E6 + "," + dest.getLongitudeE6() / 1E6;
    jsonURL += "&sensor=true&mode=driving";
    Parser parser = new GoogleParser(jsonURL);
    return parser.parse();
}

将路线叠加层添加到 MapView:

RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE);
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();

通过切换到 JSON 或 XML 并实现这些类,您可以继续在 Android 应用程序中检索和显示 Google 路线。

以上是为什么 Google Directions for Android 停止支持 KML 数据,以及如何迁移到有效的解决方案?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn