0

我有一个 Android 应用程序,我正在尝试使用路线填充 Google 地图,这条路线以这种方式存储在 JSON 数组中:

JSONArray.getString("points") = ["-33.45591917507404, -70.59198361376951","-33.453484420618416, -70.61635952929686"]

所以在这种情况下我有

Point A=(-33.49088437162095, -70.64043194102163)

Point B=(-33.49423964397045, -70.63992768572683)

我的路线或路径是 A-----B

我是 Android 新手,我想知道如何让它工作。另外,在这种情况下,我的路线是 A-----B,但也可以是 A----B----C----D。我可以在路径上有任意数量的点。

4

1 回答 1

1

您可以尝试的一件事是 Google Maps Polyline 对象:https ://developers.google.com/maps/documentation/javascript/reference#Polyline 您指定 setPath() 点的有序列表(LatLng 数组或一个 MVCArray 或 LatLng),你想在地图上连接在一起,谷歌地图会根据你的要求为你制作一条折线。

// path = Array of LatLng or MVCArray of LatLng
routeLine = new Polyline();
routeLine.setPath(JSONArray);

在您的情况下,将 JSONArray 传递给 setPath 应该可以正常工作。

如果您想获得精美的路线并合并路线,则需要使用 Google Directions API。 https://developers.google.com/maps/documentation/javascript/directions

// All waypoints must be stopovers for the Directions service to optimize their route.
// start & end are of type String or LatLng, waypts is an array of String or LatLng
request = {
    origin: start,
    destination: end,
    waypoints: waypts,
    optimizeWaypoints: [type Boolean],
    travelMode: [type TravelMode]
};
// go on and actually perform the request
directionsService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        // if successful, this will run
    }
});

一旦你完成了你的对象的构建,你应该可以通过运行 setMap(map:Map) 来显示它,比如

routeLine.setMap(map)
于 2012-10-24T02:57:56.020 回答