计算Android MapView当前显示的区域

时间:2011-05-29 10:53:19

标签: android android-mapview android-maps

  

可能重复:
  How can I determine if a geopoint is displayed in currently viewable area?

我是否有任何有效的方法可以知道我的地图视图相对于当前缩放级别显示了多少区域(就地理点而言)?

就像在几何体中一样,我们知道左上角可能从(0,0)开始而右下角可能在(320,480)结束,有什么方法可以让我知道当前左上角的GeoPoint是,说(76.3213,54.5678),右下角是(112.2345,132.4567)?

最终,我想查询数据库,向我发送与GeoLocations相关的信息,这些信息大于起点和小于结束点。

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点:

一,使用MapView.getProjection(),它允许您在屏幕坐标和GeoPoints之间进行转换。

两个,使用MapView.getMapCenter()MapView.getLatitudeSpan()MapView.getLongitudeSpan()的组合,并进行一些数学运算。在您的情况下,第一个选项听起来更好,但您的里程可能会有所不同。

无论哪种方式,MapView文档都位于完整的here

答案 1 :(得分:1)

使用

 mapview.getTop(), mapview.getBottom(), mapview.getLeft(), mapview.getRight() 

获取mapview边缘的位置。 然后使用

mapView.getProjection().fromPixels(x, y);

获取坐标。当您获得该corrdinates时,将其存储在数据库中,并查询它们很简单。