问题标签 [geodesic-sphere]

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 回答
72 浏览

python - 循环两个 Pandas 数据框并应用函数计算城市给定距离内的机场

我有两个熊猫数据框,第一个包含城市及其各自的坐标,另一个包含机场及其坐标(下面的示例)。我想计算在给定城市的一定距离(测地线)内有多少机场,并将其作为城市数据框中的一列。这是数据框的负责人(机场然后是城市):

这是要使用的简单函数:

我如何在每个城市应用这个距离函数,循环机场的数据框及其坐标?

提前致谢!

0 投票
1 回答
270 浏览

matlab - Matlab:矢量(X,Y)中的形状文件到光栅矩阵转换器

我在将带有 X、Y 坐标的德国边界的 Shape 文件转换为相同形状的光栅矩阵格式时遇到问题。我根本不知道在这种情况下使用哪种方法。如果有人帮助我为这个应用程序找到正确的思维方式,我将不胜感激。

0 投票
0 回答
467 浏览

javascript - 如何在 Cesium.js 中创建始终靠近折线的标签?

我有一种情况,我正在使用 Cesium.js 实体从一个点绘制方位线。此外,我想在实体上的这些轴承线上贴一个标签,以显示它是什么。通过将标签附加到折线实体很容易做到这一点。到目前为止,我正在做的是从参考点沿轴承创建一条“非常长”的线,并使用沿该线的中点作为标签的锚点(在 Typescript 中):

但问题是标签位于测地线(纬度/经度)坐标中,并且在用户放大和缩小方位线时不会留在屏幕上。所以我也尝试使用 pixelOffsetScaleByDistance 属性来缩放位置,但这也不能很好地工作,并且不会将标签保持在 3d 旋转下的线附近(因为 X 和 Y 缩放在技术上必须改变)。

看来我真正需要的是线端点的屏幕空间位置,以及在该中点创建实体标签的方法。有没有办法做到这一点?如果不是,那么无论用户与 Cesium 地图(例如缩放和旋转)的交互如何,确保我的标签始终靠近我的折线的最佳方法是什么?

为了让我了解我正在尝试做什么,这里有一个 Cesium 的屏幕截图,其中的标签已实现。它们在这里看起来是正确的,但这只是因为我确保缩放级别和旋转是正确的: 到目前为止尝试的屏幕截图

0 投票
2 回答
1123 浏览

python - 有效计算两个数据集之间的成对haversine距离 - NumPy / Python

我想计算经纬度之间的地理距离。

我已经在 Python 中检查了这个线程Vectorizing Haversine distance calculation, 但是当我将它用于两组不同的坐标时,我得到了一个错误。

df1 的大小可以以百万计,如果有任何其他方法可以在更短的时间内计算出准确的地理距离,那将非常有帮助。

0 投票
1 回答
67 浏览

c++ - 确定整个测地线球体的纹理坐标

我在这里的一个问题之后为opengl渲染生成了一个测地线球体,我正在尝试在其上放置纹理。我通过反转球体上一个点的算法得出以下代码:

如您所见,我发现计算 S 角的两种版本都有有限的有效范围。

S1 给出了 x 纹理坐标 0.3 和 0.5 之间的有效答案,S2 给出了 x 纹理坐标 0.5 和 1.0 之间的有效答案(转换为上面省略的坐标,但出现在第一个代码示例中)。为什么这两个公式都没有给我低于 0.3 的有效答案?

谢谢

将要

在这一边纠正 这边正确 工作与不工作之间的奇怪边界,可能是由opengl的插值引起的 工作与不工作之间的奇怪边界,可能是由 opengl 的插值引起的 反转部分 反转部分 正在使用的图像 正在使用的图像 编辑:这是接缝 接缝

0 投票
1 回答
1062 浏览

python - 几何形状Python之间的测地线距离

有一个 dfA 和一个名为 geometry 的列,具有以下几何形状:

我想计算dfB几何列的每个几何形状的最小测地距离:

我尝试按照以下步骤使用 Python shapely 和 geopandas 库进行此计算:

不幸的是,匀称距离函数计算的是欧几里得距离而不是测地线距离。

要遵循的另一种策略是使用一个函数来计算从点 A 到线 B [B1、B2、B3、...] 上的所有点的测地距离并保持最小距离。也就是说:dist_A-B = min(geodist(A, B1), geodist(A, B2), geodist(A, B3), ....)

该解决方案有效,但在计算上非常昂贵,因为我们正在谈论从数千个点对数千条线进行计算。执行此计算的任何其他更优化的方法都会有很大帮助。

0 投票
0 回答
287 浏览

javascript - THREE.JS - 展平测地线多面体

我正在研究一个基于六角瓷砖的行星生成器——想想投影到测地线球体上的 Civ5 地形。

下图是这种形状的上半部分:

我希望将这些单独的六边形和五边形压平成一个平面,尽管是一个不规则的平面,以便在反转转换和重组椭球体之前对其应用标准、正常的地形生成技术。

我将生成两个平面,北部和南部,因为本质上不可能展平任何真正的球体。

然而,鉴于可以在二维空间中显示六角网格,我认为没有理由不能制作这样的网格——尽管沿五边形有一些变形。

在我看来,我的步骤如下。

  1. 将每个图块生成为它自己的 THREE.Object3D,它本身包含一个具有 7 个顶点和 6 个面的网格(或者在 12 个五边形的情况下为 6 个和 5 个)
  2. 将每个图块(Object3D)的世界坐标中的纬度归一化为零(省略那些会落在“南半球”的纬度 - 这将是一个单独但相同的步骤)
  3. 旋转每个对象,使其内部网格与世界的地平线对齐——对象和内部网格的顶点是独立的,所以这很棘手。基本上,我需要每个网格顶点的 y 值为 0,而不会扭曲形状本身。
  4. 沿世界的水平面重新定位每个 Object3d,以使图块具有适当的间距,并且类似于六边形网格
  5. 将每个图块的每个顶点缝合成一个新的几何图形,一个连续的平面

一旦我有了它,我将应用我选择实施的任何世界建筑,将每个转换后的顶点“拾取”到它的原始图块上,然后取消转换它。瞧——一个十六进制世界。

构建六边形非常容易。我正在为 THREE.js 使用Rob Scanlon 的 Hexasphere 库。我如何实现图块的确切代码将在这篇文章的底部出现。

此外,标准化每个图块的纬度位置也相当简单。只需设置它的位置并完成。

我现在面临的问题是将六边形旋转到地平线上。我尝试使用标准三角运算。瓦片的顶点相对于它的中心点,而不是世界中心。因此,如果我取离瓦片中心的 x 距离最大的顶点,我可以计算瓦片(本身本质上是一个平面)相对于地平线形成的 x 平面中的角度。

我只是将该旋转反向应用于object3D(或者我想它是内部网格?)

这一直没有奏效,我无法塑造我错过了问题的至少一个关键部分的感觉。如果我在这件事上完全不合时宜,我不会感到惊讶。

接下来是适当地间隔瓷砖,这样它们的 xz 位置将类似于 2d 坐标而不是 3d 坐标。这一点,我也不知所措。

我意识到这可能没有实际意义。我想我可以简单地在球体上就地构建我的世界,但我很难将我的思想弯曲到第三维度。

代码如下。

AppAbstract.js - 包含场景、相机等。

PlanetApp.js -

行星.js

Tile.js

0 投票
0 回答
96 浏览

mapping - 使用测地坐标计算方位角

我正在尝试计算具有由纬度/经度给出的测地线坐标的物体的方位角和指向不同纬度/经度坐标的另一个物体的航向。

问题的粗略草图是

在此处输入图像描述

其中三角形代表对象一,箭头代表对象一的方向,正方形代表对象二。

我知道这可以使用 hasrsine 公式来完成,如,但是如何在考虑球体地球的同时做到这一点。

0 投票
0 回答
153 浏览

google-earth-engine - 是否有一个函数可以在谷歌地球引擎中给出“ee.Image”的像素大小(不是以米为单位)?

我有一个导出到 TFRecord 的 ee.Image。我遵循本教程(https://developers.google.com/earth-engine/guides/tfrecord)。我使用这个功能:

对我的图像进行分类后,我想将其转换为 KML。为此,我需要图像角落的测地坐标。

通常,我会让他们使用ee.image.geometry().bounds(). 但是,当将 ee.Image 转换为 tfrecord 时,补丁尺寸 (128,128) 不会均匀地划分边界框,因此沿最大 x/y 边缘的边框瓦片被丢弃。因此,我的图像的 4 个角的坐标发生了变化(左上角除外)。

因此,给定图像左上角的坐标,并知道像素数(128,128),我想恢复四个角的坐标(测地线)。 如何获得像素的测地线大小?

IE :

注意:我知道我的像素是 30 米!

任何人都可以帮忙吗?谢谢

0 投票
0 回答
110 浏览

python - Cartopy:查找大地/平面carree的距离

在各种地图投影中,我有 4 个与 cartopy geoetics 相关的问题。这是我的代码:

下面是两个例子,1) Robinson 投影,2) Mollweide 投影。 在此处输入图像描述 在此处输入图像描述

问题

  1. 红色曲线是否总是显示大圆路线,即任何地图投影上的最短路径?
  2. 我怎样才能得到红色大地和蓝色平面carree的距离?如果是这样,那么对于任何地图投影,红色曲线的距离都应该相同,对吗?
  3. 在我的第二张图片上,为什么红色曲线不稳定?应该是这样吗?
  4. 蓝色曲线是否总是在地图投影上显示直接路径?就好像你在一张纸上有一张地图,并用尺子画了一条从 A 点到 B 点的路径。如果是这样,那么对于不同的地图投影,蓝色曲线的距离应该是不同的,对吗?