从球形投影地图上的纬度获取 Y 位置

发布于 2024-11-15 13:24:28 字数 280 浏览 2 评论 0原文

在 JavaScript 中。

我有一张 1024 x 1024 像素的世界地图 - 它是球形墨卡托投影。

我希望将这张地图的长/纬度转换为 x,y。我有一堆坐标需要叠加在它上面。

计算经度非常容易,我是这样做的:

pos.x = ((long + 180)/ 360) * 1024;

我只需要对纬度进行相同的计算 --> y

我环顾四周,看到了很多对 openlayers 的引用,但没有看到这样的转换。

In Javascript.

I have a map of the world that is 1024 x 1024px - It is a spherical Mercator projection.

Im looking to convert long/lat to x,y for this map. I have a bunch of coordinates that I need to overlay on top of it.

Calculating longitude was very easy, and I am doing it like so:

pos.x = ((long + 180)/ 360) * 1024;

I just need to same for lat --> y

I looked around a saw a lot of reference to openlayers, but didn't see such a conversion.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娜些时光,永不杰束 2024-11-22 13:24:28

归结起来:

var mercator = function(lat, lng) {
  return [lng, Math.log( (Math.sin(lat) + 1.0) / Math.cos(lat)) ] ;
};

当然,纬度和经度必须以弧度表示。

To boil it down:

var mercator = function(lat, lng) {
  return [lng, Math.log( (Math.sin(lat) + 1.0) / Math.cos(lat)) ] ;
};

Lat and long must be expressed in radians of course.

你的笑 2024-11-22 13:24:28

您可以在这篇维基百科文章中找到相应的公式:墨卡托投影

You can find the corresponding formulas in this wikipedia article: Mercator Projection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文