【问题标题】:How to only show certain area in Google Maps?如何在谷歌地图中只显示特定区域?
【发布时间】:2014-06-23 15:53:01
【问题描述】:

我知道这里有人问过这个问题(例如 Google map v2 api: how to show a specific map area,
MKCoordinateRegionMakeWithDistance equivalent in Android,
get bounds of a location in google map android v2等)

但我觉得他们中的任何一个都不能真正解决问题。

我想隐藏黑色矩形之外的所有内容,可能使外部区域变得不透明,或者根本不显示它,这与下载它、渲染它然后通过覆盖一些多边形来隐藏它不同。

我曾想过创建占据地图所有其他部分的矩形,但我不确定性能是否会大幅下降。我不知道 GMaps 处理多边形的能力如何。

到目前为止,我处理了 onCameraChange,并在地图超出指定区域时移动相机。这行得通,但我想隐藏其他所有内容。

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    我认为这不是一件好事,但是如果您不喜欢将相机限制在某个区域(这不好),您可以使用多边形,我不知道它是否会是一个轻松的工作。

    我建议你不要隐藏任何东西,如果用户想在地图上看到你的标记,他可以在任何缩放级别看到它,所以如果他想拖延,那不是问题,他总是可以返回时缩小以找到您的标记并放大以到达该区域。

    【讨论】:

      【解决方案2】:

      如果您只想用标记的任何区域的静态地图图像。那么为什么不使用谷歌静态地图 API。

      喜欢这个

      public String getElectedOfficialMapUrl(String lat, String lng) {
          String url = null;
      
          url = "http://maps.google.com/maps/api/staticmap?center=" + lat + ","
                  + lng
                  + "&zoom=15&maptype=roadmap&size=250x300&markers=color:red|"
                  + lat + "," + lng + "&sensor=false";
      
          return url;
      }
      

      这将返回 JPG 格式的静态地图图像,标记居中。

      即http://maps.google.com/maps/api/staticmap?center=29.54547854,-95.45514544&zoom=15&maptype=roadmap&size=250x300&markers=color:red|29.54547854,-95.45514544&sensor=false

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        相关资源
        最近更新 更多