首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数getMapCenter在MapFragment中/从MapFragment获取MapView

函数getMapCenter在MapFragment中/从MapFragment获取MapView
EN

Stack Overflow用户
提问于 2013-01-31 20:39:56
回答 2查看 1.6K关注 0票数 1

我在我的安卓应用程序中有一个MapFragment,现在我想知道地图上实际显示的最小和最大拉/长。

我找到了这个解决方案:

如果您想找出MapView角的经度纬度,可以使用:

代码语言:javascript
复制
Point mapCenter = mapView.getMapCenter();
int latitudeSpan = mapView.getLatitudeSpan() / 2;
int longitudeSpan = mapView.getLongitudeSpan() / 2;
int topLeftLat = mapCenter.getLatitudeE6() + (latitudeSpan);
int topLeftLon = mapCenter.getLongitudeE6() - (longitudeSpan);
int bottomLeftLat = mapCenter.getLatitudeE6() - (latitudeSpan);
int bottomLeftLon = mapCenter.getLongitudeE6() + (longitudeSpan);

我现在的问题是我没有MapView,我只有GoogleMap (com.google.android.gms.maps.GoogleMap)和MapFragment (com.google.android.gms.maps.MapFragment)。

我需要min/max坐标来执行一个DB查询,以选择POI入口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 21:26:58

您可以使用来自GoogleMapgetVisibleRegionProjection获得它。

假设您将GoogleMap命名为map,则需要

代码语言:javascript
复制
VisibleRegion bounds = map.getProjection().getVisibleRegion();

VisibleRegion不一定是一个矩形,但给您的边界,请参阅文档获得更多信息。

票数 2
EN

Stack Overflow用户

发布于 2013-02-01 17:55:37

要添加到伊格伦的答案,您可能对可见区域调用上的LatLngBounds感兴趣。

代码语言:javascript
复制
LatLngBounds bounds = this.mMap.getProjection().getVisibleRegion().latLngBounds;

由此,你可以得到最小/最大纬度/经度(东北/西南角)。

不确定你想用它做什么,但是如果你想检查一个标记是否“在屏幕上”,那么你可能对这个答案感兴趣。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14634735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档