我目前正在开发一个在地图上“模拟”鼠标(带指针)的Android应用程序。我已经实现了pad,它可以在地图图层上移动指针(一个简单的小视图)。现在我需要创建addMarker功能。我所拥有的是:
我的问题是:如何计算指针触摸的点的纬度/经度?非常感谢!
答案 0 :(得分:1)
你可以这样做:
Projection myProjection = myMap.getProjection()
返回可用于在屏幕之间进行转换的Projection对象 坐标和纬度/经度坐标。
返回的投影是当前投影的快照,并且 相机移动时不会自动更新。作为这个操作 价格昂贵,每个屏幕只能投影一次。 Google地图使用墨卡托投影从中创建地图 地理数据并将地图上的点转换为地理数据 坐标。
然后:
LatLng markerPosition = myProjection.fromScreenLocation(pointerPosition);
返回与屏幕位置对应的地理位置。 屏幕位置以屏幕像素(不是显示像素)指定 相对于地图的左上角(不是整个的左上角) 屏幕)。
参数: 以屏幕像素为单位指向屏幕上的点。
返回: LatLng对应于屏幕上的点,如果是光线则为null 通过给定的屏幕点不与地平面相交 (如果地图严重倾斜,可能就是这种情况。)