GMaps - 放置超过100个标记

时间:2016-08-19 16:18:20

标签: javascript json google-maps google-maps-api-3

我在我的网站中使用gmaps,并希望在google maps中放置超过数百个标记以显示用户位置。当通过json数据访问所有这些标记时,它是否会破坏连接或降低网站的速度。由于这些标记数据存储在array文件中。

var values = [
  {"lat" : "51.508742", "ln" : "-0.120850", "name" : "a new user" },
  {"lat" : "51.508742", "ln" : "-0.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.420850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.520850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.620850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.720850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.820850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.920850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-1.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-2.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-3.320850" , "name" : "my corporation"}
]

我正在访问它们:

var myCenter=new google.maps.LatLng(values[0]["lat"],values[0]['ln']);



function initialize()
{
  var marker;
  function callMe(v,i){
    marker=new google.maps.Marker({
    position: new google.maps.LatLng(values[i]["lat"],values[i]['ln']) ,
    });
    marker.setMap(map);
  }
  var mapProp = {
    center:myCenter,
    zoom:5,
    mapTypeId:google.maps.MapTypeId.ROADMAP
    };

  var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

  values.forEach(callMe);


}

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

我可以同时显示所有这些标记,还是应该限制它们的性能?

1 个答案:

答案 0 :(得分:2)

您应该限制标记的数量。但这并不是JSON的限制。这是网络性能和视觉过载的一个因素。

From Google

  

某些应用程序需要显示大量位置   或标记。在地图上天真地绘制数千个标记可以很快   导致用户体验下降。地图上的标记太多会导致   视觉超载和与地图的缓慢交互。至   克服这种不良表现,信息显示在地图上   需要简化。

Google建议使用以下方法来帮助限制一次显示的标记数量:

  1. Grid-based Clustering
  2. Distance-based Clustering
  3. Viewport Marker Management
  4. Fusion Tables
  5. MarkerClusterer
  6. MarkerManager