Android osmdroid将边界设置为地图视图中图像覆盖的边缘
我已经制作了一个带有osmdroid mapview的应用程序,用户可以将jpeg作为地面覆盖导入地图,导入的图像将是建筑物的平面图,并填充地图视图。有人知道我将如何设置地图视图的滚动边界到地面覆盖的边缘,这样用户就不能滚动到地面覆盖/平面图之外。Android osmdroid将边界设置为地图视图中图像覆盖的边缘,android,android-mapview,osmdroid,bounding-box,overlays,Android,Android Mapview,Osmdroid,Bounding Box,Overlays,我已经制作了一个带有osmdroid mapview的应用程序,用户可以将jpeg作为地面覆盖导入地图,导入的图像将是建筑物的平面图,并填充地图视图。有人知道我将如何设置地图视图的滚动边界到地面覆盖的边缘,这样用户就不能滚动到地面覆盖/平面图之外。关于这方面的任何想法都很好。使用地图视图设置可视区域。SetScrollabealRealimit(地面覆盖边界框) 您可能还需要限制最小缩放级别(MapView#setMinZoomLevel) 现在,如何计算地面覆盖边界框 如果您的GroundO
关于这方面的任何想法都很好。使用
地图视图设置可视区域。SetScrollabealRealimit(地面覆盖边界框)
您可能还需要限制最小缩放级别(MapView#setMinZoomLevel
)
现在,如何计算地面覆盖
边界框
- 如果您的
没有方向=>请查看GroundOverlay
源代码,在GroundOverlay\draw
和pEast
计算。这应该是一个很好的起点李>pSouthEast
GeoPoint pEast = position.destinationPoint(width, 90.0f);
GeoPoint pSouthEast = pEast.destinationPoint(height, -180.0f);
int north = position.getLatitudeE6()*2 - pSouthEast.getLatitudeE6();
int west = position.getLongitudeE6()*2 - pEast.getLongitudeE6();
BoundingBoxE6 bb = new BoundingBoxE6(north, pEast.getLongitudeE6(),
pSouthEast.getLatitudeE6(), west);
- 如果它有轴承。。。棘手的osmdroid中有一个用于旋转矩形的
,这可能会有所帮助。但卷轴将无法与地面覆盖边缘完美匹配李>GeometryMath#GetBoundingBoxforRotatedRectangle