使用Gmaps加载GeoJSON时显示加载状态

时间:2016-09-06 12:50:40

标签: google-maps google-maps-api-3 geojson

如何使用loadGeojson函数Gmaps拦截GeoJSON的加载?我携带一个MultiLineString的gejson,但需要几秒钟才能出现在屏幕上,我需要为用户添加一个加载等待充电

function load(){
  google.maps.event.addListener(myLayer, 'addfeature', function (e) {
    map.setCenter(e.feature.getGeometry().getAt(0).getAt(0));
  });       

  myLayer.loadGeoJson("/data/myLayer.json");
  myLayer.setMap(map); 

  myLayer.setStyle(function(feature) {  
   return {
      strokeColor: "#B00000",
      strokeOpacity:0.8,  
      strokeWeight: 4  
    };
  });
}

Ivan你的回答是解决我的问题的方法。谢谢!但是仍然有疑问只有在我创建一个新的地图对象时才有效:

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

我不想创建新地图,而是在现有地图中绘图,在这种情况下如何获得加载运行?

2 个答案:

答案 0 :(得分:1)

如果查看the API reference,您会看到loadGeoJson有一个回调函数作为第三个参数。因此,您可以在调用loadGeoJson之前显示一个微调器,并在调用回调后立即隐藏它。

答案 1 :(得分:0)

this SO answer中所述:

使用CSS添加加载giff图片:

#map_canvas {background: transparent url(images/ajax-loading.gif) no-repeat center center;}

加载地图后会消失,如jsfiddle

所示