在c#中计算谷歌地图控件的缩放级别

本文关键字:缩放 控件 谷歌地图 计算 | 更新日期: 2023-09-27 18:01:20

我使用GoogleMap控件有一个具有地理位置的标记集合。我可以计算最小和最大长度,并找到地图中心的中心点,但我还需要以编程方式计算缩放级别。有人知道怎么做吗?

在c#中计算谷歌地图控件的缩放级别

如果您使用v3,则只需

var bounds = new google.maps.LatLngBounds();

然后为每个标记扩展边界:

bounds.extend(myLatLng);
并使用它来自动定位和缩放
map.fitBounds(bounds);

在GoogleMap Control项目站点的问题页面上发现此问题。你必须注入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());