将LatLng转换为与Android屏幕兼容的像素
我有一个谷歌地图图像,其中标记了一个位置,例如“纽约”&我使用谷歌地图javascript API V3的javascript示例将其纬度和经度转换为像素将LatLng转换为与Android屏幕兼容的像素,android,google-maps,google-maps-api-3,Android,Google Maps,Google Maps Api 3,我有一个谷歌地图图像,其中标记了一个位置,例如“纽约”&我使用谷歌地图javascript API V3的javascript示例将其纬度和经度转换为像素 但问题是锚定偏移,因为我希望像素根据Android屏幕进行转换。所以基本上,我想实现的是,如果我在谷歌地图图像上有位置(lat,lng),我想把它转换成android屏幕的(X,Y)坐标。如果你使用MapView,那么你可以调用如下内容: //Get map projection Projection projection = mapView
但问题是锚定偏移,因为我希望像素根据Android屏幕进行转换。所以基本上,我想实现的是,如果我在谷歌地图图像上有位置(lat,lng),我想把它转换成android屏幕的(X,Y)坐标。如果你使用MapView,那么你可以调用如下内容:
//Get map projection
Projection projection = mapView.getProjection();
//Convert LatLng to on screen location
Point p1 = new Point();
//projection.toPixels(gp, p1);
p1 = projection.toScreenLocation(location);
其中,
位置
为板条。由于点p1
包含屏幕位置,屏幕位置以屏幕像素(不是显示像素)表示,相对于地图的左上角(不是整个屏幕)。我正在将Google地图渲染到WebView中,因此我没有使用MapView,有其他方法吗?我使用的是Projection类,但没有toPixels方法,我使用的是错误的类吗?如果是,正确的答案是什么?@ademar111190刚刚编辑了答案,帖子已经快5年了,所以api一定在某个时候发生了变化。