如何在Google地图中修改折线?

时间:2011-11-09 14:16:09

标签: javascript jquery google-maps google-maps-api-3

我正在使用Google Maps V3 API的路线服务,我希望将其中一个步骤的长度缩短1米(让我们说最后一步)。

问题:可以看到directionResult here。折线由混乱的字符定义。如何提取坐标(如果需要)并将折线缩短1米?

折线定义的示例

"polyline" : {
    "points" : "eir~FdezuOhFIF?HAdFG"
 },

Javascript代码

不包含缩短折线的代码。在每个步骤的开头显示一组标记

for(var i = 0; i < markers.length; i++) {
    var start = target_latlng;
    var end = markers[i].getPosition();
    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.TravelMode.WALKING
    };
    directionsService.route(request, function(directionResult, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            route = directionResult.routes[0].legs[0];
            for(var i = 0; i < route.steps.length; i++) {
                var marker = new google.maps.Marker({
                    position: route.steps[i].start_location,
                    map: map
                });


                route.steps[i].polyline.points.getPath(); // does not work!


            }
        }
    });
}

2 个答案:

答案 0 :(得分:1)

.getPath()应该有效。谢谢!

答案 1 :(得分:0)

您可以直接访问最终与折线非常相似的坐标,而不是尝试从折线中提取坐标。您可以访问

处的精确坐标
result.routes[current_route].legs[0].steps[current_step].path

我知道这很有效,因为我成功地使用了它。

如果这不起作用,请告诉我。

AXS