【问题标题】:Getting X, Y coordinates of an imageMapType in Google Maps API V3在 Google Maps API V3 中获取 imageMapType 的 X、Y 坐标
【发布时间】:2013-09-16 06:54:23
【问题描述】:

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

【问题讨论】:

  • 你能发布你的 println 函数的结果吗?输出是什么?
  • 该函数输出图像中心的正确值...因为它被放置在 Lat/Long 0/0 但图像的左/右边界不准确,因为它考虑了 X = 0 地图上的垂直线所在的位置,而不是图像结束的位置。
  • 你能检查我的问题是否合适吗? stackoverflow.com/questions/18838915/converte-lat-lon-to-pixel

标签: java google-maps-api-3


【解决方案1】:

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

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

【讨论】:

  • 我已经尝试使用 fromLatLngToPoint 方法,但没有运气......它计算的点数相差甚远。
  • 啊,我认为文档中与“投影”相关的内容可以为您带来成功。祝你好运:-)
猜你喜欢
  • 2016-03-15
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多