【发布时间】:2015-09-17 19:14:04
【问题描述】:
我的应用程序这样做:
- 生成大量标记
- 将它们放入每个带有 20k 标记的 kml 文件中
- 将文件导出到服务器
- 将每个文件作为 kmllayer 打开并将图层设置为地图对象
我的问题是:
在更改 API 之前(一个月前),我可以毫无问题地在同一张地图上显示超过 10 万个标记。 IE 会慢很多,但大部分时间仍能正确加载点。
现在(我身边没有更改代码)IE 甚至不会用 10k 标记绘制单层。 Chrome 可以达到约 20k,但仅此而已。 如果点的数量很大,地图根本不会绘制单个标记。
你们知道限制有什么变化吗?有什么解决办法吗?
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>KML Layers</title>
<style>
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script type="text/javascript" src="htmlConfig.js" ></script>
<script>
var map;
function initialize()
{
var chicago = new google.maps.LatLng(-47.19105,-22.857302);
var mapOptions =
{
zoom: 6,
center: chicago
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
for(i = 0; i < _files; i++)
{
foo = (_url+'/'+(i)+'.kml');
var ctaLayer = new google.maps.KmlLayer({url: foo});
ctaLayer.setMap(map);
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
url 是服务器的路径,_files 是文件的数量,分别命名为 0.kml、1.kml 等等
【问题讨论】:
-
您的服务器名称或 KML 文件的路径是否更改 (_url)?
-
我发现当缩放距离很远时,chrome只是不绘制标记,因为某种原因。 IE 还是不行...
-
你能提供一个Minimal, Complete, Tested and Readable example 来证明这个问题吗?
标签: javascript google-maps google-maps-api-3 google-maps-markers kml