0

我正在使用 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);
4

1 回答 1

0

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

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

于 2013-09-16T07:05:54.607 回答