1
我使用的是GoogleMap Control,它具有包含地理位置的標記集合。我可以計算最小和最大拉特長度,並找到中心點的中心點,但我也需要以編程方式計算縮放比例。有人如何做到這一點?在C#中計算谷歌地圖控件上的縮放級別#
我使用的是GoogleMap Control,它具有包含地理位置的標記集合。我可以計算最小和最大拉特長度,並找到中心點的中心點,但我也需要以編程方式計算縮放比例。有人如何做到這一點?在C#中計算谷歌地圖控件上的縮放級別#
發現這個上GoogleMap Control項目網站的issue page。你必須注入JavaScript來做到這一點。
// Set the map to call zoomMap javascriptFunction
GoogleMap.OnClientMapLoad = "zoomMap";
// build zoomMap javascript function. I already know what my bounds are
StringBuilder script = new StringBuilder();
script.AppendFormat("<script>").AppendLine();
script.Append("function zoomMap() {").AppendLine();
script.AppendFormat("var sw = new GLatLng({0}, {1});", minLat, minLong).AppendLine();
script.AppendFormat("var ne = new GLatLng({0}, {1});", maxLat, maxLong).AppendLine();
script.AppendFormat("var bounds = new GLatLngBounds(sw, ne);").AppendLine();
script.AppendFormat("var zoomLevel = GoogleMap.GMap.getBoundsZoomLevel(bounds);").AppendLine();
script.AppendFormat("GoogleMap.GMap.setZoom(zoomLevel);", GoogleMap.ClientID).AppendLine();
script.Append("}").AppendLine();
script.AppendFormat("</script>").AppendLine();
Page.RegisterClientScriptBlock("map", script.ToString());
如果您使用V3後來乾脆
var bounds = new google.maps.LatLngBounds();
然後擴展您的界限每個標記:
bounds.extend(myLatLng);
,並用它來自動定位並放大
map.fitBounds(bounds);
剛剛看到GoogleMap控件不是我以爲是的。這可能不如我所希望的那樣有幫助。如果你改變你的地圖使用google.maps api這肯定會爲你做 – NinjaNye