gpt4 book ai didi

javascript - 谷歌地图道路 API : Making 'snap to road' more forgiving

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:03 25 4
gpt4 key购买 nike

我的任务是使用 Google Maps API 创建一个工具,餐厅可以使用该工具来定义送货区域。这是进度:http://codepen.io/keithpickering/pen/NqdzKO

用户应该能够绘制一个多边形,之后它会捕捉到附近的道路以确保准确性。这工作相对较好,除了谷歌内置的道路捕捉功能……好吧,有点糟透了。如果你的点不够靠近,它要么拒绝对齐任何东西,要么只是制作一些奇怪的卡顿线。

我需要的是该工具的道路捕捉更加“宽容”;换句话说,有人应该能够从任何缩放距离懒惰地绘制几乎任何类型的多边形,并且这些线应该被强制捕捉到一条道路或另一条道路。

这是我用来捕捉的部分代码:

...

// Snap polygon to roads
placeIdArray = [];
runSnapToRoad(poly, path, color);
});

// Snap a user-created polyline to roads and draw the snapped path
function runSnapToRoad(poly, path, color) {
var pathValues = [];
for (var i = 0; i < path.getLength(); i++) {
pathValues.push(path.getAt(i).toUrlValue());
}

$.get('https://roads.googleapis.com/v1/snapToRoads', {
interpolate: true,
key: apiKey,
path: pathValues.join('|')
}, function(data) {
processSnapToRoadResponse(data);
drawSnappedPolyline(poly, path, color);
});
}

// Store snapped polyline returned by the snap-to-road method.
function processSnapToRoadResponse(data) {
snappedCoordinates = [];
placeIdArray = [];
for (var i = 0; i < data.snappedPoints.length; i++) {
var latlng = new google.maps.LatLng(
data.snappedPoints[i].location.latitude,
data.snappedPoints[i].location.longitude);
snappedCoordinates.push(latlng);
placeIdArray.push(data.snappedPoints[i].placeId);
}
}

是否有必要放弃 Roads API 并使用路线服务寻求更个性化的解决方案?有人有什么想法吗?感谢您提供的所有帮助。

最佳答案

我觉得你可以试试从Microsoft Snap points to road api。它提供高达 1000 个点的非常高的精度,GPS 点之间的距离可达 2.5 公里。

https://learn.microsoft.com/en-us/bingmaps/rest-services/routes/snap-points-to-roads?redirectedfrom=MSDN

关于javascript - 谷歌地图道路 API : Making 'snap to road' more forgiving,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com