【问题标题】:Calculate zoom level on google maps control in C#在 C# 中计算谷歌地图控件的缩放级别
【发布时间】:2011-09-29 00:54:29
【问题描述】:

我正在使用GoogleMap Control 有一组带有地理位置的标记。我可以计算最小和最大纬度并找到地图中心位置的中心点,但我还需要以编程方式计算缩放级别。有人怎么做吗?

【问题讨论】:

    标签: c# google-maps zooming


    【解决方案1】:

    如果您使用的是 v3,那么只需

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

    然后扩展每个标记的范围:

    bounds.extend(myLatLng);
    

    并使用它来自动定位和缩放

    map.fitBounds(bounds);
    

    【讨论】:

    • 啊刚看到GoogleMap控件不是我想的那样。这可能没有我希望的那么有用。如果您将地图更改为使用 google.maps api,这肯定会为您完成
    【解决方案2】:

    在 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());
    

    【讨论】:

      猜你喜欢
      • 2012-09-08
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      相关资源
      最近更新 更多