我正在使用 ImageMapType 在谷歌地图(API V3)上呈现自定义图像。我想在地图上获得某个 Lat/Lng 的 X、Y。这适用于地图的中心(位于 Lat 0 和 Lng 0),但不适用于地图的其他部分,因为 X、Y 值是根据整个世界地图而不是地图的那个部分计算的我的自定义地图所覆盖的世界。
我怎样才能在图片上获得正确的 X、Y 值?
我用于查找 X 和 Y 的算法如下:
double latitude = location.getLatitude();
double longitude = location.getLongitude();
int mapWidth = 800;
int mapHeight = 450;
// get x value
double x = (mapWidth*(180+longitude)/360) % mapWidth+(mapWidth/2);
// convert from degrees to radians
double latRad = latitude * java.lang.Math.PI / 180;
// get y value
double mercN = java.lang.Math.log(java.lang.Math.tan((java.lang.Math.PI / 4)+( latRad / 2)));
double y = (mapHeight / 2)-( mapWidth * mercN/(2 * java.lang.Math.PI));
System.out.println("X : " + (x - (mapWidth / 2)) + " Y: " + y);