2016-08-19 47 views
-1

我在我的网站中使用gmaps,并且想要在google maps中放置多于一百个标记以显示用户位置。当通过json数据访问所有这些标记时,它可以分解连接或减慢我的网站速度。由于这些标记数据存储在array文件中。GMaps - 放置超过100个标记

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

您应该限制标记的数量。但这不是对JSON的限制。这是网络性能和视觉超负荷的一个因素。

From Google

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

谷歌提出了以下的方法来帮助限制一次显示的标记数量:

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

此回答对我很有帮助。谢谢 –