gpt4 book ai didi

javascript - 将 lat/lng 坐标转换为给定 map 上的像素(使用 JavaScript)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:27:15 24 4
gpt4 key购买 nike

我从 MaxMind 建立了一个城市数据库,它包括数据库中每个城市的纬度/经度值。我还制作了一张北美/美洲 map ,我希望在 map 的 x/y 坐标上显示一个图标,该坐标源自城市数据库记录的纬度/经度坐标。

根据我的理解,我需要先找到 map 的左/上边界(lat/lng -> x/y),然后将其用作任何北美城市 x/y 之间线性关系的差异坐标。最后,根据 map 的大小,简单的做一些除法和减法运算,就可以算出该点放在哪里。

但是我似乎无法弄清楚如何执行以下操作:

  1. 我不确定纬度/经度 map 系统是什么。我如何找到它?
  2. 如何使用 JavaScript 库将 lat/lng 转换为 0,0 坐标和每个城市坐标的像素。我试过 Proj4js,但它们要求您指定坐标 map 类型等。这是另一个问类似问题的问题。 Convert long/lat to pixel x/y on a given picture

有什么想法吗?

-- 编辑--

输出 map (北美)是一个连续的圆柱体:“米勒圆柱投影”。 http://en.wikipedia.org/wiki/Miller_cylindrical_projection

最佳答案

纬度和经度是在地球上绘制的假想线,因此您可以准确地确定世界上的任何位置。简单地说,它们是平面的 X 和 Y 坐标。纬度是一条从北到南的垂直线,在北极呈 90 度,在南极呈 -90 度。

另一方面,经度是一条从东到南的水平线,西边 -180 度,东边 180 度。

您可以将 latLng 转换为像素坐标,假设 html 容器的宽度是世界的宽度,这同样适用于高度。

公式 - 经度 - 像素

(givenLng*widthOfContainerElement)/360

其中 360 是以度为单位的总经度

公式 - 纬度 - 像素

(givenLat*heightOfContainerElement)/180

其中 360 是以度为单位的总经度

//Height is calculated from the bottom

如果您还需要任何说明,请告诉我。

关于javascript - 将 lat/lng 坐标转换为给定 map 上的像素(使用 JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898120/

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