要在我的地图中创建多边形,我使用jQuery.getJSON()
加载包含多边形和多边形的geojson文件。然后我用github插件(loadgeojson)分析geojson,最后在地图上创建多边形。
我将一个<div>
加载了一个加载gif,它覆盖了在jQuery.getJSON()
被调用之前出现的地图。
问题是删除它的时机。当所有多边形可见属性设置为 True 时,我会使加载动画消失。
当多边形出现在地图上时,我希望<div>
消失。但就目前而言,它在此之前消失了一点。因此,在较慢的浏览器上,<div>
消失和出现的多边形之间存在相对较大的延迟。
我试图把听众放在一个事件上,但我找不到符合我想要的事件。
如何在地图上出现多边形时,如何及时删除加载动画?
这是我的代码:
function readJSON(id){
showLoadingAnimation();
// If .json hasn't been read
if(stockArray[id].length == 0) {
$.getJSON(id + ".json", function(data){
showFeature(data, id)
})
}
}
function showFeature(geojson, elemtype){
currentFeature_or_Features = new GeoJSON(geojson, elemtype, options);
if (currentFeature_or_Features.type && currentFeature_or_Features.type == "Error"){
return;
}
// Display object
if (currentFeature_or_Features.length){
for (var i = 0; i < currentFeature_or_Features.length; i++){
if(currentFeature_or_Features[i].length){
for(var j = 0; j < currentFeature_or_Features[i].length; j++){
// Display multipolygon
currentFeature_or_Features[i][j].setMap(map);
// Mouse events for multipolygons
mouseEventsMulti(i,j,elemtype);
}
}
else{
// Display polygons, polylines and points
currentFeature_or_Features[i].setMap(map);
// Mouse events for polygons, polylines and points
mouseEventsSimple(i,elemtype)
}
}
} else {
currentFeature_or_Features.setMap(map)
}
// Stop loading animation
dontShowLoadingAnimation();
}
答案 0 :(得分:0)
最后,我修改了我的代码,在创建多边形后稍微平移地图。然后它激活停止加载动画的空闲侦听器。
它可能不是最漂亮的代码,但它可以工作。
这是我添加到showFeature函数
的内容center = map.getCenter();
latLngCenter = new google.maps.LatLng(center.lat() + 0.0000001,center.lng() + 0.0000001);
map.panTo(latLngCenter);
这是听众
google.maps.event.addListener(map, 'idle', function() {
// Stop loading animation
dontShowLoadingAnimation();
});