ImageMapType を使用して、Google マップ (API V3) でカスタム イメージをレンダリングしています。マップ上の特定の緯度/経度の X、Y を取得したいと考えています。これは、マップの中心 (Lat 0 と Lng 0 にある) では問題なく機能しますが、マップの他の部分では機能しません。カスタム マップがオーバーレイされる世界。
写真の適切な 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);