问题标签 [geospatial]

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 投票
5 回答
1987 浏览

algorithm - 将矢量轮廓区域(边界)转换为光栅图(像素网格)

我有一张地图,它像世界地图上的国家一样,被边界(轮廓)分割成多个区域。每个区域都有一定的地表覆盖等级S(例如 0 代表水,0.03 代表草......)。边界由以下方式定义:

  • S的任一侧是什么值(在下面的示例中,一侧为 0.03,另一侧为 0.0)
  • 边界由多少个点组成(在下面的示例中n =7),以及
  • n 个坐标对 ( x , y )。

这是一个例子。

我想制作一个光栅图,其中每个像素的S值对应于像素中心所在的区域。

请注意,边框代表S中的阶跃变化。S的各种值代表离散的类别(例如草或水),并且不是可以平均的值(即没有湿草!)。

另请注意,并非所有边界都是像上面的示例一样的闭环。这有点像国家边界:例如,美国-加拿大边界不是一个封闭的循环,而是一条在每一端与另外两个边界相连的线:加拿大-海洋和美国-海洋“边界”。(尽管如此,闭环边界确实存在!)

谁能指出我可以做到这一点的算法?我不想重新发明轮子!

0 投票
6 回答
49337 浏览

math - 在Java中计算距离纬度/经度坐标一定距离的边界框

给定一个坐标(纬度,经度),我试图计算一个距离坐标给定距离(例如 50 公里)的方形边界框。因此,作为输入,我有纬度、长距离和距离,作为输出,我想要两个坐标;一个是西南角(左下角),一个是东北角(右上角)。我在这里看到了几个试图在 Python 中解决这个问题的答案,但我特别在寻找 Java 实现。

为了清楚起见,我打算仅在地球上使用该算法,因此我不需要适应可变半径。

它不必非常准确(+/-20% 很好),它只用于计算小距离(不超过 150 公里)的边界框。所以我很乐意为高效的算法牺牲一些准确性。任何帮助深表感谢。

编辑:我应该更清楚,我真的在追求一个正方形,而不是一个圆圈。我知道正方形的中心与正方形周边的各个点之间的距离不是一个恒定值,就像圆形一样。我想我的意思是一个正方形,如果你从中心画一条线到周长上的四个点中的任何一个,导致一条垂直于周长一侧的线,那么这 4 条线的长度相同。

0 投票
3 回答
2534 浏览

javascript - 使用地心坐标系计算纬度、经度和高度的距离

我已经在 J​​avascript 中实现了这个方法,我大约 2.5% 出来了,我想知道为什么。

我的输入数据是一个点数组,表示为 WGS84 椭球上方的纬度、经度和高度。这些点取自马拉松比赛期间从腕戴式 GPS 设备收集的数据。

我的算法是将每个点转换为笛卡尔地心坐标,然后计算欧几里德距离(参见毕达哥拉斯)。笛卡尔地心也称为地心地心固定。即它是一个随地球旋转的X、Y、Z 坐标系。

我的测试数据是马拉松的数据,所以距离应该非常接近42.26km。但是,距离大约为 43.4 公里。我尝试了各种方法,但没有什么能改变结果超过一米。例如,我用来自 NASA SRTM 任务的数据替换了高度数据,我将高度设置为零,等等。

使用谷歌,我在文献中发现了两点,其中 lat、lon、height 已被转换,并且我的转换算法是匹配的。

这有什么可以解释的?我是否对 Javascript 的双重表示期望过高?(X、Y、Z 数字很大,但两点之间的差异很小)。

我的替代方法是使用 Vincenty 算法(或类似算法)计算跨 WGS84 椭球的测地线,然后计算两个高度的欧几里得距离,但这似乎不准确。

在此先感谢您的帮助!

0 投票
2 回答
3488 浏览

geospatial - 这是什么空间 SRID?(试图将 .shp 文件转换为 WSG84)

我正在尝试将一些 Shapefile 映射数据导入 Sql2008。在此之前,我需要将其转换为WGS84 / SRID 4326,因为我现有的所有数据都是这种格式。

这是源文件信息:

我试过用谷歌搜索,但运气不太好。其次,我试图检查spatial_reference_systems桌子,但在那里我看不到它。

例如。SELECT * from sys.spatial_reference_systems

那么,任何人都可以帮助我吗?SRID 4326如果我不知道它是当前的 SRID,我无法将其隐藏。

更新 1

我发现这个页面解释了 GDA 1994 的技术规格 .. 但没有暗示任何 SRID 号码...... ???

更新 2

这个搜索结果页面也有一些有趣的结果。从这里开始,如果您单击SR-ORG:6643: Australia Albers Equal Area Conic链接,它会解释该数据......并且它与我正在寻找的几乎相同。这意味着 SRID 是 6643。

那么这就是答案吗?

0 投票
7 回答
10995 浏览

python - 如何逆时针对矩形的坐标列表进行排序?

我需要逆时针对一个矩形的坐标列表进行排序,并将东北角设为第一个坐标。这些是十进制形式的地理坐标(即经度、纬度)。1

例如,这里是一个矩形的 4 个角,从西北角开始顺时针移动:

我需要对这些逆时针排序并将“锚”/起点更改为东北:

我不知道列表最初的顺序是什么(即顺时针或逆时针)。我不知道列表中的第一个坐标代表哪个角。


1当映射到地球表面时,这不是一个真正的矩形,但是由于我确实有 2 个相对的角,我将其称为矩形以提高可读性。包裹 +180/-180 经度或 +90/-90 纬度的形状不是问题。

0 投票
3 回答
152 浏览

geolocation - Geography in a social network

I want to make a global social network, in which users can search for nearby users.

What is the preferred way to allow users to easily specify where they are located?

Zip code would be accurate, but is US-only.

Lat/long would be accurate, but it is too difficult for mom and dad types.

Drop-down menu of continent, country, province, major city is simple, but perhaps not that accurate if someone lives somewhere remote or in between two major cities.

Your thoughts?

0 投票
2 回答
7576 浏览

language-agnostic - 如何使用线性插值估计两个地理坐标之间的当前位置?

我有以下可用:

  • 最后报告的 lat,lon w/timestamp
  • 目标纬度,经度
  • 预计目标时间
  • 标题

如何随时间插入估计的位置?

我知道这足以计算剩余行程所需的平均速度。给定一个直线距离,这是非常微不足道的。我知道这与矢量有关,但我有点生疏,认为最好咨询一些专家。

我需要这个更新率的原因是有限的,所以为了显示流畅的动画,我需要猜测更新之间的当前位置。

目标平台是一个谷歌地图应用程序,所以我有一些基本功能,比如两个坐标之间距离的地理校正功能。语言并不重要,因为我知道很多,并且可以根据需要移植或改编任何示例。然而,一般的解决方案将是首选。


这只是两个独立的向量计算吗?

0 投票
4 回答
1570 浏览

c# - 相当于 C# 中的 php fmod

有人知道 fmod 的 C# 等价物是什么吗?我正在尝试将这行代码转换为 C#。

这是我到目前为止所拥有的。我只需要转换的 fmod。

0 投票
2 回答
1422 浏览

iphone - iPhone 的地理空间库

我正在考虑创建一个位置感知的 iPhone 应用程序,该应用程序可以通过与兴趣点 (POI) 列表打包来离线工作。该应用程序将从中读取用户的当前位置,CoreLocation并按照与用户当前位置接近的顺序生成 POI 列表。

我需要两个基本的地理空间功能来启动这个应用程序。第一个是测试点(用户当前位置)是否位于特定地理空间边界内的函数。第二个是一个函数,可以给我两个纬度/经度点之间的距离。我将使用第二个函数按与用户当前位置的接近程度对 POI 列表进行排序。

我知道这个问题领域很流行,并且有开源选项。领先的候选者(据我所知)是GEOS C++ 库。我想我会使用它的方式是将 GEOS 编译为静态库(并将链接作为项目依赖项,就像您包含three20库一样。)

我的问题是:

  1. 将这两个必要功能放入我的应用程序的最佳方法是什么。

  2. 如果问题 1 的最佳答案是将 GEOS 编译为静态库并将其链接到我的项目,那么之前做过此操作的任何人都可以提供一些指示吗?我是编译、静态库构建等方面的新手。我希望看到一些示例代码或教程,了解如何通过简单的示例用法编译 GEOS 并将其包含在项目中。

0 投票
4 回答
1640 浏览

c# - 如何在 C# 中从 gis 数据创建图像

我正在使用 C# 从 sql server 2008 数据库中提取空间数据。然后,我尝试对这些数据执行操作,但首先...我希望能够将其可视化。也就是说,我想创建数据的图像,最好是 jpg 格式。

我认为我可以手动完成,但事实证明这比我最初想象的更具挑战性,因为度数不是整数,而且我不能截断它们以绘制到图形对象上。

有人可以指出我可以帮助我执行此操作的正确库吗?

注意:目前,支付图书馆费用对我来说不是一种选择。