我正在使用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!
}
}
});
}
答案 0 :(得分:1)
.getPath()
应该有效。谢谢!
答案 1 :(得分:0)
您可以直接访问最终与折线非常相似的坐标,而不是尝试从折线中提取坐标。您可以访问
处的精确坐标result.routes[current_route].legs[0].steps[current_step].path
我知道这很有效,因为我成功地使用了它。
如果这不起作用,请告诉我。
AXS