-1
ここに私のコードを追加しました。このコードでは、ポリラインパス上のマーカーを特定の距離(マイルまたは距離)で配置したいと考えています。距離は等しくない。以下のコードを見つけてください。特定の距離計のGoogleマップapi v3にマーカーを配置するにはどうすればよいですか?
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私は、指定された距離で経路上にカスタムマーカーを置くことができません – Sathya
'GetPointAtDistance'は1つの距離をとり、配列を渡しています(JavaScriptのコンソールでエラーが発生すると思います)。あなたの問題を示す[mcve]を提供してください。 – geocodezip