![](/img/trans.png)
[英]Google Maps API v3 — How to convert .getBounds() to to pixel coordinates?
[英]Google Maps API V3: getBounds() convert result for fitBounds()
我正在使用Google Maps API V3。 當我編寫這段代碼時:
map.fitBounds(map.getBounds());
地圖縮小!
我知道這是根據文檔進行的,因為fitBounds
確保在地圖上顯示給定的邊界,以便所有邊緣都顯示在地圖內。 因此,我要尋找的答案在於以下幾點:
基本上,我很確定這是可以計算的,因為這就是地圖的功能,但是在添加邊距的相反方向上可以完全顯示給定的邊界。 用這些術語,告訴我如何計算邊距(以及如何為具有getBounds
輸出的fitBounds
計算正確的輸入),您的答案將被接受。
提前致謝!
縮放和居中檢索和設置對我不起作用! 原因如下:
我將在數據庫中保存地圖的視口信息。 稍后,我想重新創建地圖並再次顯示完全相同的位置。 但是,映射平台可能因用戶而異。 因此,縮放和居中在不同的制圖平台/框架之間不是標准的,並且不能在所有具有相同結果的平台/框架中使用。 因此,唯一的標准方法是將界限保存在數據庫中。 因此,問題需要完全按照其要求的方向給出答案。
存儲而不是限制地圖的縮放和中心,並稍后恢復這些值。
我遇到了完全相同的問題,並決定將getBounds()產生的邊界框縮小15%。 那對我來說做得很好:
var neLat = map.getBounds().getNorthEast().k;
var neLong = map.getBounds().getNorthEast().B;
var swLat = map.getBounds().getSouthWest().k;
var swLong = map.getBounds().getSouthWest().B;
var boundingBoxPerc = 0.15;
var mapWidth = neLong - swLong;
var mapHeight = neLat - swLat;
var ne = new google.maps.LatLng(neLat - mapHeight * boundingBoxPerc, neLong - mapWidth * boundingBoxPerc);
var sw = new google.maps.LatLng(swLat + mapHeight * boundingBoxPerc, swLong + mapWidth * boundingBoxPerc);
map.fitBounds(new google.maps.LatLngBounds(sw, ne));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.