在Android Studio中使用Google地图无法理解LatLngBounds

时间:2015-03-28 20:46:48

标签: android google-maps android-studio

我有当前位置的坐标,我正在尝试使用LatLngBounds了解如何从Google地图上的当前位置获取NE和SW角落。

我似乎不了解如何从Google撰写的API中实现LatLngBounds:https://developers.google.com/maps/documentation/business/mobile/android/reference/com/google/android/m4b/maps/model/LatLngBounds

如果有人能向我解释LatLngBounds究竟做了什么以及如何使用它会很棒。如果我需要添加更多信息以清除任何内容,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:0)

LatLng是一个点; LatLngBounds是一个矩形。因此,构建LatLngBounds至少需要两个LatLng:一个用于矩形的SouthWest角,一个用于矩形的NorthEast角。给定这两个点,矩形的另外两个点是平凡计算的。

从您的问题中不清楚为什么需要LatLngBounds。如果您打算在地图上放置一些图像,或者绘制某种类型的矩形,您应该只需要它。如果您只想显示标记或信息框,则不需要LatLngBounds。

如果您计划使用说GroundOverlay来显示以LatLng点为中心的图像,那么它比您想象的更复杂。您将不得不使用地理定位映射工具,您可以将图像放置到地图上,调整大小以适合您的喜好,然后该工具将为您提供LatLngBounds所需的NE和SW LatLng,用于GroundOverlay。

答案 1 :(得分:0)

LatLngBounds是一个矩形,如您所知,由东北和西南的两个LatLng对象描述。

您可以通过获取地图相机的Projection轻松地从当前位置构建LatLng。

  1. (可选)将摄像机移动到屏幕中央,即将当前位置置于中心位置。
  2. 使用getVisibleRegion()方法获取当前可见的矩形。
  3. 来自VisibleRegion对象提取farLeftfarRight LatLng属性或仅LatLngBounds属性
  4. 这些坐标会为您提供当前位置的LatLngBounds
  5. 或者,您可以使用LatLngBounds.Builder并使用fromScreenCoordinates()方法将屏幕上的点数转换为LatLng来构建NE和SW坐标。

    Norteast Point应位于Point

    西南x=0, y=mapView.getRight();应位于Point

    (纠正我,如果我错了)