问题标签 [mercator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1084 浏览

maps - 从墨卡托转换为 Equirectangular 时的地图比例因子

假设我在墨卡托投影中有一张地图,并且我知道上纬度和下纬度:

最高纬度 = 80; 底部纬度 = -55;

我也知道地图的宽度和高度:

宽度 = 800; 高度 = 500;

我想将地图重新​​缩放为 Equirectangular 投影,保持相同的宽度。

如何计算地图的新高度?

0 投票
1 回答
1968 浏览

python-2.7 - 如何从 jpg 图像中获取像素坐标作为 latlng

我有一个 jpg 格式的地图图像。我正在尝试计算每个像素的纬度和经度。我也有 3 个点坐标像素行和列。

起初实际上我使用了 python utm 库并使用 lat 和 lng 计算了两点之间的距离差。我使用了:diff_meters_x / diff_pixels_x diff_meters_y / diff_pixels_y 在我发现 x 轴和 y 轴有一个像素差异后,我尝试用第三个点进行测试,但它显示了一个可以容忍近 100 公里的不同点,但像素和纬度 lngs 是正确的。

然后我尝试使用 gdal 库,但它计算 .tif 扩展图像。我使用的是 python 2.7,但如果有其他方法,我也可以使用其他平台,如 matlab。你能帮我解决这个问题的方法吗?

地图图像

这里有三点:

BLK: 纬度: 39.760751, 27.840443 || UTM_Meters:571990.1817772812、4401541.17886532 || 区域/波段:35,'S' || 像素:[210, 247]

KUT: 纬度: 39.495730, 29.997087 || UTM_Meters: 757725.0341605131, 4376079.988600584 || UTM_Zone/波段:35,'S' || 像素:[288, 260]

USAK: 纬度: 38.754252, 29.337908 || UTM_Meters:703154.2913673887、4292101.594408637 || UTM_Zone/波段:35,'S' || 像素:[265, 296]

0 投票
1 回答
174 浏览

unix - 带有公制网格叠加的墨卡托投影(从中心以米为增量) - GMT Generic Mapping Tools

我有一个蒙特塞拉特图,以 -62.2°,16.75° 为中心,使用通用映射工具 (GMT) 创建了墨卡托投影,如下所示。

在此处输入图像描述

我想在此之上添加一个网格,使用中心作为原点。但是,我想以米而不是度数来生成覆盖网格。有没有一种方法可以将 -62.2°、16.75° 指定为原点,然后从原点(1000m、2000m、5000m 等)生成 1000m 倍数的网格线(也许通过 psxy?)?

用于生成此图的代码是

0 投票
2 回答
97 浏览

java - 用于将经度和纬度转换为 x 和 y 坐标的 Meractor 投影

我一直在寻找经度和纬度的转换,发现了我目前正在使用的这个算法,但不确定这是否是正确的算法。另外,我如何使用工具提示在地图图片上绘制特定坐标。我尝试覆盖 JPanel 中的 paintComponent 方法,但我需要将标签图片作为标签,以便我可以正确使用 JTooltip。以下是我目前使用的算法。请让我知道它是否正确以及如何将另一张图片放在主图片的顶部。与使用 JLabel 一样,我使用 setBounds 方法来设置位置,但在给出要放置的点列表的情况下,dosent 可以正常工作。

公共点getXY(双经,双纬){

0 投票
1 回答
645 浏览

javascript - 纬度/经度 -> X/Y, X/Y -> 纬度/经度

我找到了一些代码,用于将纬度/经度转换为给定图像上的像素,反之亦然。我将它移植到 JavaScript,但在纬度上得到不正确的返回值。我测试了原始的、未修改的代码,它给出了同样的错误。下面是带有返回值的代码。

我已经尝试自己修复它,但我正在努力解决数学问题。我不太确定为什么会这样。

0 投票
1 回答
2135 浏览

d3.js - 如何限制墨卡托地图上的 d3.js 拖动行为

我已经使用 d3.js 的墨卡托函数在 svg-Element 中实现了一个地图。该地图仅代表一个特定城市 - 城市地图之外的所有内容与我的项目无关。

现在我想在这张地图上实现一些功能,比如 zoom() 和 drag()。

但我找不到任何解决方案,用我的墨卡托地图处理拖动()函数 - 我不能限制转换的区域。(用户应该不能将地图拖到城市地图之外)

对于普通的 svg 元素,这有效:

但它不适用于我的墨卡托地图。

请帮我 :(

提前致谢!

这是一个小例子: https ://jsfiddle.net/c55w7u9e/

我的意图是,用户应该不可能将红色圆圈(在本例中,但在我的项目中为地图)拖动到 svg 元素之外......

0 投票
1 回答
1874 浏览

google-maps - 谷歌地图多边形到 SVG 路径

我有在谷歌地图 API 中绘制以下多边形的坐标:

多边形图像

这是坐标的示例:

按照这篇文章中的墨卡托投影公式:将 Google Maps 多边形路径转换为 ​​SVG 路径,我得到一个 SVG 路径,它具有如下负值:

当我尝试绘制该路径时,没有显示任何图像。但是,当我删除负号时,显示以下 SVG 图像:

SVG 图像

SVG 图像被翻转。有没有办法改变公式以获得正确的值?我需要清理 SVG 路径,这意味着不能使用 CSS 翻转图像。

谢谢并恭祝安康。

0 投票
0 回答
104 浏览

java - Google Maps Android API v2 更精确的 toScreenLocation() 用于 lat lng

API v2 中的 projection.toScreenLocation() 返回一个包含两个整数的点。我需要比这更高的精度(浮点数或双精度),因为我需要从这些屏幕坐标到纬度的后续转换几乎与原始坐标的值完全相同。是否有一个好的库或 Java 中的墨卡托投影实现来实现这一点?

0 投票
1 回答
1148 浏览

gdal - 使用 gdalwarp 从 wgs84 转换为 EPSG:3857 不覆盖世界

我正在使用 gdal 1.10 和 2.1.1。

我在 WGS84 中有一个 VRT 数据源,我将角坐标强制设置为 EPSG:3857 (-180,85.5,180,-85.5) 的最小值/最大值。

此 VRT 的 gdalinfo 输出如下所示:

基本上,我的世界减去了两极。

现在我想将其转换为 EPSG:3857。

我为此使用 gdalwarp,使用双线性插值:

在 wmerc 上运行 gdalinfo 然后给出:

请注意,左上/下角的角坐标看起来正确,但右上/下角(经度)的角坐标缺少 32 个单位。广义地说,我在右侧缺少一条条子,但仅与坐标有关。数据在那里,但右边的坐标似乎是错误的。

这是为什么?

可以使用 gdal_translate 修改坐标以匹配世界(纵向),但我担心我在这里忽略了其他可能会回来咬我的东西。

0 投票
1 回答
927 浏览

javascript - Web 上的等距矩形地图

我计划为游戏的标记(大头针)构建在线地图,但我无法设置标记的正确纬度。

原图为2048*2048px的正方形

然后我得到了标记(数千个)

地图坐标用 ax,y 表示法从 0 到 100 设置。0, 0 是地图的左上角,100, 100 是地图的右下角。x=50, y=50 就是 lat = 0°, lng = 0°(图片的中心)。

为了从我的符号转换为经度,我使用了这个 JS 函数,它运行良好:

但是对于纬度它不起作用,因为那些引擎使用墨卡托投影而我没有。

如果有人有正确的公式,将不胜感激:(