400 以上のポリゴンを含む Google マップがあります。これらのポリゴンは 40.000 以上の緯度/経度座標で構成されています。これらはすべてオランダの自治体で、結果はここで見ることができます: http://silktool.com/maptest.php
デスクトップ マシンでは正常に動作します (2.5MB / 500Kb gzip でロードするのは少し遅いです) が、iOS デバイスで URL を開くと 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 でクラッシュしないようにしたいのですが、どうすればよいのでしょうか?
いくつかのオプションを考えましたが、それらが機能するかどうかはわかりません:
- コードをより効率的/コンパクトにする
- Google マップは使用しませんが、たとえば、さまざまなズーム レベルでポリゴンを単純化するスムージング オプションを備えたリーフレット (http://leaflet.cloudmade.com/reference.html#polyline-options)
- 座標を Javascript 配列に入れます (それらは現在 PHP 配列にあり、JavaScript はこれで生成されます)。
- より多くのオプション?
どのオプションを選択すればよいかわかりません。アイデアはありますか?