我可以使用geojson将数据绘制到谷歌地图上。我现在想要每10秒刷新一次标记。我怎样才能做到这一点?在下面的示例中,json文件将在我的本地服务器上刷新。如何更改同一标记的属性/位置?
<!DOCTYPE html>
<html>
<head>
<style>
html, body, #map {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
var layer1;
var layer2;
function initialize() {
var mapOptions = {
zoom: 11,
center: new google.maps.LatLng(23.0171240, 72.5330533),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), mapOptions);
layer1 = map.data.loadGeoJson('http://localhost/envitia.its.webclient/myjson.json');
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map">
</div>
</body>
</html>
答案 0 :(得分:0)
你能在javascript中使用setInterval()
函数吗?在initialize()函数中,只需将layer1命令包装在setInterval()中,时间为10秒。
答案 1 :(得分:0)
我有一个类似的问题,托德的评论是正确的。根据Google Maps API,GeoJSON函数只是将大量要素加载到地图中。要删除它们,您可以
如果使用.addGeoJson()函数vs .loadGeoJson(),它会略有不同。如果您使用第一个,您可以执行类似
的操作 if (mapFeatures != null) {
for (var i = 0; i < mapFeatures.length; i++) {
map.data.remove(mapFeatures[i]);
}
}
geoJSON = jQuery.parseJSON(json.data);
mapFeatures=map.data.addGeoJson(geoJSON);
mapFeatures是一个Data.Feature对象的数组,只是迭代和删除。如果使用.loadGeoJson()方法,则可以使用forEach()方法迭代map对象中的集合。
查看API参考。如果要实现选择性功能删除,还有一个contains()方法 https://developers.google.com/maps/documentation/javascript/reference#Data