![](/img/trans.png)
[英]Javascript: Google maps set marker latitude longitude every x seconds?
[英]refreshing marker position every 5 seconds in google maps JavaScript API
setInterval(function () {initMap();},5000);
//setInterval(function () {changeMarkerPosition(marker);},5000);
var map;
function initMap() {
var lat = document.getElementById( 'lat' ).value;
var lng = document.getElementById( 'lng' ).value;
map = new google.maps.Map(
document.getElementById('map'),
{center: new google.maps.LatLng(lat, lng), zoom: 16});
var iconBase =
'https://developers.google.com/maps/documentation/javascript/examples/full/images/';
var icons = {
parking: {
icon: iconBase + 'parking_lot_maps.png'
},
library: {
icon: iconBase + 'library_maps.png'
},
info: {
icon: iconBase + 'info-i_maps.png'
}
};
var features = [
{
position: new google.maps.LatLng(lat, lng),
type: 'info'
},
];
// Create markers in the map.
for (var i = 0; i < features.length; i++) {
var marker = new google.maps.Marker({
position: features[i].position,
icon: icons[features[i].type].icon,
map: map
});
};
}
这是我的代码,它每 5 秒刷新一次整个 map,而不是我想每 5 秒刷新一次标记 position,因为我从两个不断更新的输入字段中获取纬度和经度
请注意,每次您调用 google.maps.Map() class 时,您都在创建一个 Map 负载,其计费为动态地图 SKU 。 您可以利用google.maps.Marker class 的setPosition方法,而不是每 5 秒创建一次 map 加载以更新标记 position 。
这是一个示例代码,我每 5 秒使用setPosition更改标记 position。
这是代码的细分:
这是我设置标记的初始 position
marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
这是我的坐标数组,我的标记应将 position 更改为:
markerList = [
[-33.950198, 151.259302],
[-33.923036, 151.259052],
[-34.028249, 151.157507],
[-33.80010128657071, 151.28747820854187]
];
然后,我通过数组中的所有坐标对 go 使用了for 循环。 然后在更改标记 position 时将setTimeout设置为 5 秒间隔:
for (var i = 0; i < markerList.length; i++) {
(function(index) {
setTimeout(function() {
marker.setPosition(new google.maps.LatLng(markerList[index][0], markerList[index][1]));
}, i * 5000);
})(i);
}
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.