在Google Maps API V3中获取imageMapType的X,Y坐标

时间:2013-09-16 06:54:24

标签: java google-maps-api-3

我正在使用ImageMapType在Google地图上呈现自定义图片(API V3)。我想在地图上得到某个Lat / Lng的X,Y.这适用于地图的中心(位于Lat 0和Lng 0),但不适用于地图的其他部分,因为X,Y值是根据整个世界地图计算的,而不是根据整个世界地图计算的。我的自定义地图重叠到的世界。enter image description here

我怎样才能在图片上得到正确的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);

1 个答案:

答案 0 :(得分:0)

我不确定,这会解决你的问题,但可能会对你有所帮助:

https://developers.google.com/maps/documentation/javascript/reference?hl=fr#Projection