当前位置: 首页 > 面试题库 >

将像素位置转换为纬度/经度,反之亦然

易瀚漠
2023-03-14
问题内容

我需要将纬度经度值转换为像素位置以及相反的操作。我发现许多解决方案都来自lat / lng-> pixel,但反之则找不到任何东西。

一些注意事项:

  • 地图是固定大小,无缩放,无图块。
  • 我不需要任何超级准确的信息,这并不重要。
  • 最好是墨卡托投影,但不是必需的。我实际上并没有显示结果。(任何2D投影)
  • 我不能依赖任何基于Web的API,即:没有Google Maps

只要不依赖任何平台特定的API,几乎所有编程语言的解决方案都可以。

这是从lat / lng-> pixel开始的示例:

var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));

问题答案:
var y = Math.round(((-1 * lat) + 90) * (this.MAP_HEIGHT / 180));
var x = Math.round((lng + 180) * (this.MAP_WIDTH / 360));

使用一些代数,我得出:

var lat=(y/(this.MAP_HEIGHT/180)-90)/-1
var lng = x/(this.MAP_WIDTH/360)-180

因为它是在我脑海中完成的,所以对那个数学不是完全有信心,但是那些应该起作用,只是确保先进行测试。



 类似资料:
  • 问题内容: 我正在尝试将经纬度对转换为像素坐标。我发现了这种墨卡托投影,但我不理解代码。x_adj,y_adj变量是什么因素?当我在没有这些常量的情况下运行代码时,我的经/纬对就不在地图上,并且x和y像素坐标也不是我想要的。 问题答案: 这些变量从何而来 选择这些变量以使计算出的坐标与地图的背景图像匹配。如果知道地图的投影参数,则可以计算它们。但是我相信,它们很可能是通过反复试验而获得的。 如何计

  • 问题内容: 我具有纽约市纽约市的纬度/经度值;40.7560540,-73.9869510和地球的平面图像,即1000px×446px。 我希望能够使用Javascript将纬度/经度转换为X,Y坐标,该点将反映该位置。 因此,图像左上角的X,Y坐标将是;289、111 注意事项: 不用担心要使用哪种投影的问题,可以自己做假设,也可以按照自己知道的可行的方法进行操作 X,Y可以形成图像的任意一角

  • 我已经看到了不同的实现方法,还有一些关于堆栈溢出的问题--我已经试用了不同的代码片段,虽然我得到了像素的正确经度,但纬度总是偏离的--似乎变得更合理了。 我需要公式,以考虑图像大小,宽度等。 我试过这段代码: 当使用原始代码时,如果纬度值为正,则返回一个负点,所以我稍微修改了它,并用极端纬度进行测试--应该是0点和766点,它工作得很好。然而,当我尝试一个不同的纬度值,例如:58.07(正好在英国

  • 问题内容: 我正在使用JAXB将json转换为java对象。我面临的问题是,它导致我创建了大量的类,这些类除了充当json标签的占位符外没有其他用途。 例如:在json下面考虑: } 现在要将这个JSON原样反序列化为java对象,这些是我需要创建的java类: 因此,总共有9个类可以模仿JSON,并且如果我们研究这些类的角色,它们不过是JSON标签的占位符。有什么简单的方法吗? 问题答案: 您可

  • 问题内容: 我正在尝试通过android将图像作为字节数组发送,并在服务器端将其转换回png文件,我正在服务器端。 这是我的android代码,它将图像转换为字节数组并将其作为请求发送到服务器: 这是我的服务器端程序: 服务器上的异常是: 问题答案: 您将图像写入客户端的文件输出流,该流会将内容存储到物理文件中。然后,您尝试将的表示形式转换为图像内容。这是行不通的,该类的方法不会为您提供写入流中的

  • 我有一张以色列地图。 我需要创建一个获得两个双参数(经度和纬度)的函数,该函数应该在地图图像中的那个区域上画一个小圆圈。 我有以下关于地图的信息: null 截图: https://gyazo.com/5a19dece37ebace496c6b8d68eb9ec3c