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

发布于 2024-11-18 17:17:24 字数 175 浏览 0 评论 0原文

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

I'm using GoogleMap Control have a collection of markers with Geo locations. I can calculate the min and max lat longs and find the center point on where to center the map but I also need to calculate the zoom level programmatically. Does anyone how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒几许 2024-11-25 17:17:24

如果您使用 v3,那么只需

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

扩展每个标记的范围:

bounds.extend(myLatLng);

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

map.fitBounds(bounds);

If your using v3 then simply

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

then extend your bounds for each marker:

bounds.extend(myLatLng);

and use this to automatically position and zoom

map.fitBounds(bounds);
酒几许 2024-11-25 17:17:24

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

Found this on an issue page of the GoogleMap Control project site. You have to inject javascript to do it.

    // 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());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文