gpt4 book ai didi

javascript - 将标记放置在具有特定距离的折线上

转载 作者:行者123 更新时间:2023-11-28 02:13:46 27 4
gpt4 key购买 nike

我使用谷歌地图 API v3 制作了谷歌地图,并在 map 上放置了一条折线,这是我的 map 代码

function initialize() {
var myLatLng = new google.maps.LatLng(31.77577, 72.26588);
var mapOptions = {
zoom: 15,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.HYBRID
};

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

var flightPlanCoordinates = [
new google.maps.LatLng(31.77577, 72.26588),
new google.maps.LatLng(31.75715, 72.25918),
new google.maps.LatLng(31.7379, 72.2415),
new google.maps.LatLng(31.717362, 72.226646),
new google.maps.LatLng(31.720063, 72.216905),
new google.maps.LatLng(31.714514, 72.206905),
new google.maps.LatLng(31.7086, 72.186735),
new google.maps.LatLng(31.702685, 72.177294)

];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});

flightPath.setMap(map);
}

google.maps.event.addDomListener(window, 'load', initialize);

现在我想在这条折线上每 1 公里处放置标记。请任何人帮忙在折线上 1 公里处放置标记。

最佳答案

这对我有用(添加到初始化函数的末尾):

var i=1;
var length = google.maps.geometry.spherical.computeLength(flightPath.getPath());
var remainingDist = length;

while (remainingDist > 0)
{
createMarker(map, flightPath.GetPointAtDistance(1000*i),i+" km");
remainingDist -= 1000;
i++;
}
// put markers at the ends
createMarker(map,flightPath.getPath().getAt(0),length/1000+" km");
createMarker(map,flightPath.getPath().getAt(flightPath.getPath().getLength()-1),(length/1000).toFixed(2)+" km");
flightPath.setMap(map);
}

function createMarker(map, latlng, title){
var marker = new google.maps.Marker({
position:latlng,
map:map,
title: title
});
}

example

关于javascript - 将标记放置在具有特定距离的折线上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16705895/

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