gpt4 book ai didi

android - 标记的 osmdroid 坐标转换

转载 作者:行者123 更新时间:2023-11-29 17:59:10 29 4
gpt4 key购买 nike

我在使用 osmdroid 和最近发布的 GuildWars 2 map API 时遇到坐标系统问题。

该 API 返回我想添加到 map 的 POI(显示得很好,是的 :))。

一个例子是:

{"poi_id":1486,"name":"Falooaloo","type":"landmark","floor":1,"coord":[19760.9,15379.5]}

所以,我有相对于整个 map XY 大小的绝对 XY 坐标。

但是如何将其转换为可用于标记位置的 GeoPoint

当我使用 TileSystem.PixelXYToLatLong(...) 时,我总是得到相同的结果:-84928320、178593750,0。这是世界的右下角。

我看不出我做错了什么。有什么想法吗?

哥达辰

最佳答案

这完全取决于这些 x,y 坐标的解释方式。几点建议:

  1. 尝试使用 map 的投影类将像素转换为地理点。

    IGeoPoint p = mMapView.getProjection().fromPixels(...);
  2. 预期坐标的缩放级别是多少?如果您没有为 API 指定缩放级别,则需要相应地进行调整。

  3. 最后,请注意 osmdroid 使用 map 的中心作为原点,而不是 map 的左上角。所以你可能需要将你的坐标偏移世界大小的一半。要抵消它们,请执行以下操作:

    final int worldsize_2 = TileSystem.MapSize(zoomlevel) / 2;
    final adjustedX = x - worldsize_2;
    final adjustedY = y - worldsize_2;

关于android - 标记的 osmdroid 坐标转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239346/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com