【发布时间】:2017-07-22 07:49:34
【问题描述】:
在这里我添加了我的代码。在这段代码中,我想在折线路径上放置特定距离的标记,可以是英里或距离。距离不相等。请找到下面的代码。
var distances = [3000, 5000, 7000, 8000];
for (var i = 1; i < distances.length; i += 1) {
createMarker(map, GetPointAtDistance(distances));
}
function createMarker(map, latlng) {
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: iconUrl,
});
markersArray.push(marker)
}
function GetPointAtDistance(metres) {
if (metres === 0) return flightPath.getPath().getAt(0);
if (metres < 0) return null;
if (flightPath.getPath().getLength() < 2) return null;
var dist = 0;
var olddist = 0;
var i = 1;
for (i = 1; i < flightPath.getPath().getLength() && dist < metres; i += 1) {
olddist = dist;
dist += google.maps.geometry.spherical.computeDistanceBetween(
flightPath.getPath().getAt(i),
flightPath.getPath().getAt(i - 1)
);
}
if (dist < metres) {
return null;
}
var p1 = flightPath.getPath().getAt(i - 2);
var p2 = flightPath.getPath().getAt(i - 1);
var m = (metres - olddist) / (dist - olddist);
return new google.maps.LatLng(p1.lat() + (p2.lat() - p1.lat()) * m, p1.lng() + (p2.lng() - p1.lng()) * m);
}
【问题讨论】:
-
以上代码有什么问题?
-
@MayankPandeyz 我无法在给定距离的路线上放置自定义标记
-
GetPointAtDistance需要一个距离,您正在传递一个数组(我认为您会在 javascript 控制台中得到一个错误)。请提供一个 minimal reproducible example 来证明您的问题。
标签: javascript jquery html google-maps-api-3