2015-06-25 54 views
0

我的web應用程序的一部分將允許用戶單擊地圖的某個地區,並使其突出顯示該頁面上Google地圖中的該部分。這在很多網站上都是非常標準的,但我很難掌握那裏的數據量。將多邊形合併到Google Maps API中3

我試圖從http://global.mapit.mysociety.org/生成數據,該數據爲我想要變成多邊形的實際座標提供了幾個輸出選項,但是導出WKT,GeoJSON或KML的值很大 - 700-900   KB每個例子,並且我不明白這個網站如何在沒有加載這些數據的情況下合併這些多邊形,(Chrome沒有顯示任何超過50   KB正在加載的項目。)

我現在在做什麼:

我下載了幾個WKT文件,然後用PHP將它翻譯成一個javascript字符串,如下所示:

var coordinates = [ 
new google.maps.LatLng(1.1, 1.2), 
... 
new google.maps.LatLng(1.1, 1.2) 
]; 

我這樣做是有大約10地點,救了我的文件,這是9   MB - 所有這些超長coordinates串...

如何做到這一點更有效,因爲這是顯然不是將多邊形數據合併到動態地圖加載中的方式嗎?

+0

你輸出什麼樣的多邊形?你需要什麼信息? – scaisEdge

回答

1

不要在服務器端翻譯它,字符串new google.maps.LatLng會炸燬你的文件。

當您使用例如geoJSON,你可以通過loadGeoJson加載多邊形。

所鏈接的頁面使用以GeoJSON繪製的多邊形(例如http://global.mapit.mysociety.org/area/686972.html負載這些數據:http://global.mapit.mysociety.org/area/686972.geojson?simplify_tolerance=0.0001〜100KB)

另一種選擇是對服務器側各單個多邊形(折線)編碼和重新組裝/解碼經由JS的多邊形。 有關更多詳細信息,請參閱https://developers.google.com/maps/documentation/utilities/polylinealgorithmhttps://developers.google.com/maps/documentation/javascript/reference#encoding

+0

哦太棒了!非常感謝你做的這些。我會弄清楚這是如何工作的,但'容差'確實是我所期待的。如果我沒有設置,那麼geojson基本上和我的'LatLng'座標大小相同,但設置更高的容差會取出一些中間點並縮短整個字符串。再次感謝! –

相關問題