我正在使用GoogleMap Control有一系列带有地理位置的标记。我可以计算最小和最大拉特长度并找到中心点的中心点,但我还需要以编程方式计算缩放级别。有人怎么做?
答案 0 :(得分:1)
如果您使用v3,那么只需
var bounds = new google.maps.LatLngBounds();
然后扩展每个标记的边界:
bounds.extend(myLatLng);
并使用它来自动定位和缩放
map.fitBounds(bounds);
答案 1 :(得分:0)
在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());