我正在使用osmdroid在android上做app。我如何获得屏幕上显示的地图坐标(上,下,左,右)? 感谢名单。
答案 0 :(得分:1)
你要问的是什么并不完全清楚,但我认为你要求的是lat / lon边界框。
BoundingBoxE6 boundingBox = mMapView.getProjection().getBoundingBox();
答案 1 :(得分:0)
"我是在onCreate中做的,如果它很重要" =>是的。
实际上,您无法访问onCreate中正确的mapview边界框。 这是"因为MapView的宽度和高度为零,因为它还没有调用onLayout"
这是一个(非常烦人的)osmdroid问题,在v4.2中没有修复。
此外,在onCreate中调用时,setCenter在v4.2中也无法正常工作。
请在此处查看更多解释和解决方法:https://github.com/osmdroid/osmdroid/issues/22
答案 2 :(得分:0)
在 react-native 中,我使用 onRegionChangeComplete 事件 ( 因此,如果您需要计算具有屏幕面积的多边形,则应执行以下操作:onRegionChangeComplete={e => properties.regionChange(e)}
)。此事件返回 MapView 的区域。所以:{"latitude": 4.50751184289841, "latitudeDelta": 0.09999884159289252, "longitude": -75.67515761717539, "longitudeDelta": 0.06323>7206p656323207
regionChange = (e) => {
areaLoadData = [
{
latitude: e.latitude + e.latitudeDelta,
longitude: e.longitude - e.longitudeDelta
},
{
latitude: e.latitude + e.latitudeDelta,
longitude: e.longitude + e.longitudeDelta
},
{
latitude: e.latitude - e.latitudeDelta,
longitude: e.longitude + e.longitudeDelta
},
{
latitude: e.latitude - e.latitudeDelta,
longitude: e.longitude - e.longitudeDelta
},
]
}