我有一张包含400多个多边形的Google地图,这些多边形由40.000+纬度/经度坐标组成。这些都是荷兰城市,结果可以在这里看到:http://silktool.com/maptest.php
在桌面计算机上运行正常(加载2.5MB / 500Kb gzip有点慢),但在iOS设备上打开网址时,它会破坏Mobile Safari(在Chrome for iOS中可以正常工作)。
我怀疑这是因为它只是太多的代码或多边形。当我只加载一半多边形时,Mobile Safari不会崩溃。
我使用以下Javasctipt加载每个多边形:
var city1 = new google.maps.Polygon({
paths: [
new google.maps.LatLng(53.0873209365,6.79015076682),
…many many latlng coordinates…
new google.maps.LatLng(53.0716361297,6.81423099069),
new google.maps.LatLng(53.0873209365,6.79015076682)
],
strokeColor: "#fff",
strokeOpacity: 0.5,
strokeWeight: 1,
fillColor: "rgb(60,255,160)",
fillOpacity: 0.7
});
var city2 = new google.maps.Polygon({
paths: [
new google.maps.LatLng(53.0873209365,6.79015076682),
…many many latlng coordinates…
new google.maps.LatLng(53.0716361297,6.81423099069),
new google.maps.LatLng(53.0873209365,6.79015076682)
],
strokeColor: "#fff",
strokeOpacity: 0.5,
strokeWeight: 1,
fillColor: "rgb(60,255,160)",
fillOpacity: 0.7
});
我想让代码在iOS上不崩溃,并想知道如何做到这一点?
我想到了几个选项,但我不知道它们是否会起作用:
我不知道选择哪个选项,有什么想法吗?
答案 0 :(得分:0)
您也可以尝试使用google.maps.KmlLayer。
您是否考虑过使用Google Maps API v3的新KmlLayer?基本上,这里发生的事情是Google充当抓取任何公开可用的KML图层的代理,并自动将其分解为图块。此平铺图层还可以响应与矢量图层非常相似的点击事件。 (link)