问题标签 [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 投票
0 回答
256 浏览

d3.js - d3 geojson创建路径:选择坐标索引

我试图通过始终选择名为 track.json 的数据的 2 个坐标在 d3 geojson 地图上绘制路径(轨道)。这是该数据的一部分:

现在我正在尝试通过一次获取所有坐标来获取坐标并在我的地图上构建一条路径(这是一个世界旅行者的轨迹),它实际上可以工作:

但我希望通过单击按钮将路径一一显示。

我知道这是不可能的,因为使用 function(d) 我可以一次获得所有坐标。它应该类似于 track[0].lon。我已经尝试替换“d”的“track”(track是数据源的名称),但这也不起作用......

0 投票
1 回答
1310 浏览

javascript - OpenLayers3 multipolygon.getArea 返回大于预期值

我正在使用 OpenLayers3 迈出第一步,在尝试获取所选特征的区域时,我得到了一些奇怪的结果。

我有一张从 KML 源加载矢量图层的地图。在这些 KML 上,有几个要素表示为多面体,代表西班牙北部一些地区的边界。

当我选择特征时,它们会根据我的代码正确更改它的样式,但是当我尝试通过 multipolygons.getArea 检索它的区域时,我获得的值比预期的要大很多(几乎是两倍)。

我的地图代码:

这是 KML 数据的一个示例:

这个多面体的 getArea 返回 20021810258.82251 (我假设平方米,因为我使用墨卡托投影),而预期的结果将是大约 10000 平方公里。

我知道投影到平面的困难和问题,我期待一个粗略的面积结果,但我得到的值是我预期的两倍......对于预测或计算的问题来说似乎太多了.. .所以我认为我在这里缺少一些东西。

对此事的任何见解将不胜感激。

0 投票
2 回答
1576 浏览

java - 将像素位置从谷歌静态地图转换为 LatLng

我有一个存储在二维数组中的谷歌静态地图。当用户点击一个像素时,我知道行/列 [0 - 1024]。

我需要将该行 col 转换回 lat lng。我一直在尝试使用下面的代码来进行从像素到纬度 lng 和返回的转换。

我所做的是获取中心 lat lng 和缩放级别。

  1. 使用 fromLatLngToPoint 将中心 lat lng 转换为像素。
  2. 使用图像中的行/列和图像的宽度和高度得到

问题是当我将生成的 lat lng 放回谷歌地图时,它偏离了 100 米。

有任何想法吗?

0 投票
3 回答
8054 浏览

javascript - 如何将米的半径转换为mapbox传单中的像素?

我正在开发一个应用程序,我试图在地图上运行一些算法并计算坐标,但它们略有偏差,因为我正在对纬度和经度进行计算,最终结果变得扭曲。

现在我正在尝试将所有坐标转换为 EPSG3857 Web Mercator 坐标,如下所示:

现在我还有一个半径,我必须将其从米转换为像素,但我不知道如何。1米等于多少像素?我的意思是它也取决于缩放级别,对吗?那么如何在地图框和传单中将半径转换为像素?

0 投票
2 回答
1567 浏览

java - 如何正确地将地理坐标转换为屏幕上的像素?

我正在尝试制作一个 Java 项目,当给定坐标(取自谷歌地图)时,它可以在地图图像上精确定位该位置。

我尝试使用图像的左上角(具有最高纬度和最低经度的地方)作为某种参考点,这将是地图图像上的 (0,0) 点,并且比我尝试根据该参考点计算地图上的每个地方。然而,这种方法被证明是不准确的,可能是因为地球的曲率(请注意,我正在使用的地图(塞尔维亚)覆盖纬度 4° 和经度 4° 的区域)。

我看过几个关于转换为墨卡托投影的答案,但对我来说不是很清楚,因为它们没有涵盖与我类似的案例,也不是用 Java 编写的。

我能做些什么来更准确地定位这些点(±3km 就足够准确了)?

0 投票
1 回答
92 浏览

java - RayCastingSupport.intersectRayWithTerrain 总是返回 null

我使用自己的交互方法,因为我将 NASA WorldWind 嵌入 JavaFX 而不是 Swing。视图在 FXML 中定义如下:

控制器属性:

WW初始化代码:

从 JavaFx 初始化代码:

交互类:

Interactions.getPositionFromScreenPoint从 FX 鼠标处理程序调用。

问题是RayCastingSupport.intersectRayWithTerrain()在我从世界的球形表示切换到平面表示后,总是返回 null 。

0 投票
1 回答
61 浏览

android - 考虑墨卡托投影的可见 GoogleMap 区域中物理中心的 LatLang 值

我想计算屏幕中间圆的中心和半径,半径是可见区域宽度的一半。

或者

当我缩小很多时,中心的值与物理中心有偏移。

在下图中,我计算了黑色阴影圆圈如下:

我正在寻找绿色圆圈的半径和中心。在此处输入图像描述

0 投票
1 回答
146 浏览

gis - 墨卡托投影的经度限制?

我理解为什么墨卡托投影的纬度有限制,但是经度如何,从理论上我假设它是 [-180, 180]。

但是,从我看到的几个地图应用程序的源代码中。他们试图将经度限制在 [-177, 177] 之间。

这是什么原因?

0 投票
1 回答
810 浏览

javascript - Convert to and from lat/lng and pixels in web mercator at arbitrary floating point zoom levels?

I'm using the following npm module to convert to/from lat/lng and pixels:

https://www.npmjs.com/package/viewport-mercator-project

Here's the usage:

However, this always seems to fail in my use case, where my center is -122~:

I know this has something to do with the fact that my lng value (in the center) is outside of the range -90 < lng < 90, but how can I fix this? My attempted viewport conversion is definitely valid...

0 投票
1 回答
423 浏览

mercator - 当 alpha 在 90 到 270 之间时,Proj4 Oblique Mercator 给出奇怪的结果

我有以下定义斜墨卡托投影的 proj4 投影字符串:

+proj=omerc +lat_0=45 +lonc=-80 +x_0=0 +y_0=0 +alpha=45 +gamma=0 +k_0=1

对于我的输入坐标,我使用的是 0、0。当我将 alpha 角从 45 更改为 90 到 270 的范围时,投影点从预期的 80W、45N 变为同时围绕地球向东移动的点纬度直到 alpha > 270,然后我再次得到预期的结果。

我不确定为什么我应该得到这些不同的结果,作为一种解决方法,我可以将角度从 91 反转到 271,但我认为我可能还需要反转投影系统中的 u、v,这会很好如果 Proj4 这样做了。

  • 是否不支持指定 90-270 的 alpha?
  • 或者,我需要对我的参数做些什么吗?

编辑:我在 Github 上为此创建了一个问题:https ://github.com/OSGeo/proj.4/issues/331