【发布时间】:2012-02-12 11:07:00
【问题描述】:
我从 MaxMind 整理了一个城市数据库,其中包含数据库中每个城市的纬度/经度值。我还整理了一张北美/美国地图,我希望在地图的 x/y 坐标上显示一个图标,该图标源自城市数据库记录的 lat/lng 坐标。
据我了解,我需要先找到地图的左/上边界(lat/lng -> x/y),然后将其用作北美城市 x/y 之间线性关系的差异坐标。最后,根据地图的大小,只需进行几个简单的除法和减法运算就可以确定该点的放置位置。
但是我似乎无法弄清楚如何执行以下操作:
- 我不确定 lat/lng 映射系统是什么。我怎样才能知道这一点?
- 使用 JavaScript 库,如何将 lat/lng 转换为 0,0 坐标和每个城市坐标的像素。我尝试过 Proj4js,但它们要求您指定坐标图类型等。这是另一个提出类似问题的问题。 Convert long/lat to pixel x/y on a given picture
有什么想法吗?
-- 编辑--
输出地图(北美)是一个连续的圆柱体:“米勒圆柱投影”。 http://en.wikipedia.org/wiki/Miller_cylindrical_projection
【问题讨论】:
-
数学可以很简单,但这取决于地图的类型,即地图是在哪个投影中渲染的? en.wikipedia.org/wiki/Map_projection
-
输出图是一个连续圆柱体:“米勒圆柱投影”。 en.wikipedia.org/wiki/Miller_cylindrical_projection
-
你链接的维基百科文章给出了公式……你为什么不使用这些?
-
检查这个工具:trimaps.com
标签: javascript maps latitude-longitude