我正在使用谷歌地圖。根據要求,我需要設置不同的縮放級別,這取決於我的搜索查詢。如果在國家地圖上有多個位置,那麼地圖應該將焦點放在國家。其他情況是,如果城市中有不同的位置標記,那麼地圖應該集中在城市層面。如何動態設置Google地圖自定義縮放級別?
3
A
回答
4
var geoCoder = new GClientGeocoder();
geoCoder.setViewport(map.getBounds());
geoCoder.getLocations('searchquery', function(latlng) {
if(latlng.Placemark.length > 0) {
var box = latlng.Placemark[0].ExtendedData.LatLonBox;
var bounds = new GLatLngBounds(new GLatLng(box.south, box.west), new GLatLng(box.north, box.east));
var center = new GLatLng(box.Placemark[0].Point.coordinates[1], latlng.Placemark[0].Point.coordinates[0]);
var zoom = oMap.getBoundsZoomLevel(bounds);
map.setCenter(center, zoom);
}
});
我認爲這對你的關鍵部分是
//box is a LatLonBox with the size of your resultquery. You can create this yourself as well
var box = latlng.Placemark[0].ExtendedData.LatLonBox;
//bounds are the bounds of the box
var bounds = new GLatLngBounds(new GLatLng(box.south, box.west), new GLatLng(box.north, box.east));
//center is the center of the box, you want this as the center of your screen
var center = new GLatLng(box.Placemark[0].Point.coordinates[1], latlng.Placemark[0].Point.coordinates[0]);
//zoom is the zoomlevel you need for all this
var zoom = oMap.getBoundsZoomLevel(bounds);
//the actual action
map.setCenter(center, zoom);
0
我發現下面的文章非常有幫助。使用代碼示例代碼我能夠實現這個enter link description here。
我試過在drupal中的代碼,它工作。
0
你執行搜索後,一旦你的位置,你可以使用bounds.extend
和map.fitBounds
使地圖自動放大顯示搜索返回的所有引腳,像這樣:
//places is an array that contains the search result
var bounds = new google.maps.LatLngBounds();
for (var i = 0, place; place = places[i]; i++) {
//pass the location of each place to bounds.extend
bounds.extend(place.geometry.location);
}
//tell your map to sets the viewport to contain all the places.
map.fitBounds(bounds);
另如果您使用地理編碼器搜索區域如郵政編碼,城市或國家,還可以使用map.fitBounds
來設置視口以顯示地理編碼器返回的整個特定區域,如下所示:
//response is the geocoder's response
map.fitBounds(response[0].geometry.viewport);
以下是地理編碼器示例的代碼本https://codepen.io/jaireina/pen/gLjEqY
相關問題
- 1. 根據縮放級別縮放自定義標記Google地圖
- 2. jqplot自定義縮放手動或設置縮放級別
- 3. 在谷歌地圖中設置自定義縮放級別
- 4. Google靜態地圖API如何指定最大縮放級別
- 5. 如何確定靜態Google地圖縮放級別
- 6. 在谷歌地圖android中動態設置縮放級別
- 7. Android MapView動態設置縮放級別
- 8. 在谷歌Android地圖中自動設置縮放級別
- 9. 設置縮放級別在Google地圖上不起作用
- 10. 根據顯示分辨率設置Google地圖縮放級別
- 11. 如何根據標記位置設置Google地圖的縮放級別
- 12. 如何爲地圖視圖設置縮放級別?
- 13. Google Maps JavaScript API - 自動縮放級別?
- 14. 如何爲離線地圖設置最大縮放級別?
- 15. 如何在谷歌地圖中設置縮放級別
- 16. 谷歌地圖 - 如何設置縮放級別
- 17. 如何在新版Google地圖上設置默認縮放級別?
- 18. 如何在Android中將最大縮放級別的Google地圖設置爲30?
- 19. 谷歌地圖上的自定義縮放級別
- 20. 動態設置谷歌地圖縮放
- 21. PDF文件自定義縮放級別
- 22. Google Maps V3:根據地圖縮放級別縮放折線?
- 23. 如何在android google map中設置默認縮放級別?
- 24. 如何控制Google嵌入式地圖上的縮放級別
- 25. 如何獲取當前的Google地圖縮放級別?
- 26. 此Google地圖縮放級別計算如何工作?
- 27. 我可以在谷歌地圖中設置自動縮放級別嗎?
- 28. Android - 如何在Android應用程序中啓動Google地圖意圖設置縮放級別和標記
- 29. 使用縮放級別動態更改Google地圖上的圓半徑
- 30. 如何在谷歌地圖上設置動態縮放v3