Google maps api 3 Google Maps API V3使用data.addGeoJson缓慢添加标记
我正在使用Google maps api 3 Google Maps API V3使用data.addGeoJson缓慢添加标记,google-maps-api-3,Google Maps Api 3,我正在使用map.data.addGeoJson()向4个不同的地图(在不同的缩放级别)添加325个功能。大约一半的特征是标记,一半是多边形。多边形几乎是瞬间渲染的。但是标记要在地图上显示还需要整整6秒钟 如果我只构建一张地图,标记显示仍然需要0.5-2秒 我能做些什么来加快速度吗 这是我的密码: function addSites(map, geoJSON) { map.data.setStyle(setSitesStyle); map.data.addGeoJson(geoJ
map.data.addGeoJson()
向4个不同的地图(在不同的缩放级别)添加325个功能。大约一半的特征是标记,一半是多边形。多边形几乎是瞬间渲染的。但是标记要在地图上显示还需要整整6秒钟
如果我只构建一张地图,标记显示仍然需要0.5-2秒
我能做些什么来加快速度吗
这是我的密码:
function addSites(map, geoJSON) {
map.data.setStyle(setSitesStyle);
map.data.addGeoJson(geoJSON)
}
function setSitesStyle(feature) {
var searchDist = getSearchDistFromListTypes(feature.getProperty('ListTypes').split('~'));
return ({
fillColor: searchDist.FontColor,
strokeColor: searchDist.FontColor,
strokeWeight: 1,
fillOpacity: .5,
clickable: false,
icon: {
url: 'images/' + searchDist.Marker + 's.png',
size: new google.maps.Size(26 , 38),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(13, 34),
label: feature.getProperty('MarkerNo')
}
});
}
更新:我尝试使用一个简单的SVG图标,性能也没什么不同。问题是这个页面上的DOM非常大,Google Maps花了一段时间才将所有元素添加到DOM中 在我的例子中,页面是95%的handlebar.js,所以我所做的是编译所有的handlebar模板,并在数组中记住生成的HTML。然后将地图页面的HTML推送到DOM中,并处理地图数据(现在非常快),最后将HTML的其余部分加载到DOM中,这也非常快
由于多个地图可以散布在整个页面中,因此找到一种简单而健壮的方法将所有地图正确地编织在一起是一个小小的挑战,但最终我很高兴。如果谁否决了这个问题,可以告诉我为什么我会非常乐意改进它。