我在使用以下腳本段正確縮放和居中的網頁上有一個現有地圖: var mapOptions = { center:{lat:43.57023,lng:-79.48676} , zoom:12 } map = new google.maps.Map(document.getElementById(「map-canvas」),mapOptions);Google地圖KML圖層初始縮放和中心
然後,我使用以下命令添加kml圖層: var myLayer = new google.maps.KmlLayer({url:「」}); myLayer.setMap(map);
這一直在去年工作。但是,我不得不更新kml文件以包含更廣的區域。新的kml文件有效,但新的縮放和中心位置不受尊重。
map = new google.maps.Map(document.getElementById("map-canvas"), {
center: { lat: 48.0, lng: -89.0 },
zoom: 4
});
取而代之的是地圖縮小了,所以我看到3個完整的地球加上每邊一點,中心位於北極之上。您可以在http://www.a711lions.ca/recycleforsight/locationmap.html和http://www.a711lions.ca/recycleforsight/locationmap2.html處看到兩個不同的結果。
我讀過,我可以使用layer.preserveViewport設置來克服這一點,但我試圖理解爲什麼它甚至發生。 AFAICT的要點都在加拿大(它們當然不會出現在三重地球視圖中,因爲它在其他地方),那麼爲什麼KML圖層如此之大呢?
任何想法?
是的,謝謝。我在使用正則表達式對座標進行完整性檢查後發現它。但是,它不應該導致這種奇怪的行爲。這似乎禁止標記聖誕老人的工作坊。 :) 如果我把它放在一個無意義的位置,比如91度北,那麼我希望它被忽略或者被標記爲「離開地球」。如果它位於合法位置,則應該映射它。 –
如果你在北極有一個點,地圖會顯示它(縮小以包含它),90度對於谷歌地圖上使用的墨卡託投影是有問題的。 – geocodezip
這個問題似乎被證明是錯誤的。位置在北極(北經90度),經度不相關 - -3度與任何其他經度一樣有效。 實際縮放比整個地球大得多,北極沒有標記。在這種情況下,投影應該使用-3來在總理子午線的西面顯示標記。 對不起,但我不能真正把它看作是Google代碼中的一個錯誤。 –