I have a Google map with 400+ polygons, these polygons consist of 40.000+ lat/lng coordinates. These are all Dutch municipalities, the result can be seen here: http://silktool.com/maptest.php
It works fine (it is a bit slow to load at 2.5MB / 500Kb gzipped) on desktop machines, but when opening the url on an iOS device it crashed Mobile Safari (in Chrome for iOS it works).
I suspect it is because it is just simply too much code or polygons. When I load only half of the polygons, Mobile Safari does not crash.
I load every polygon with the following 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
});
I want to make the code not crash on iOS and was wondering how to do that?
I've thought of several options, but I don't know if they would work:
I don't know which option to choose, any ideas?
You can also try to use google.maps.KmlLayer.
Have you considered using Google Maps API v3's new KmlLayer? Essentially what happens here is Google acts as a proxy for grabbing any publicly available KML layer, and automatically breaks it up into tiles. This tiled layer can also respond to click events very similar to how a vector layer would. (link)
Please, refer to similiar thread on https://gis.stackexchange.com/.