如何只在Google地图中显示某些区域?

时间:2014-05-06 21:24:16

标签: android google-maps

我知道这里提出了这个问题(例如 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等。)

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

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

Example

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

到目前为止,我处理onCameraChange,并在地图离开指定区域时移动相机。这样可以,但我想隐藏其他所有内容。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

如果您只想使用标记的任何区域的静态地图图像。那么为什么不使用谷歌静态地图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

希望这会有所帮助