问题标签 [geo]

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 投票
3 回答
1660 浏览

sql - SQL Server rand() 聚合

问题:坐标纬度/经度表。两行可能具有相同的坐标。我们想要一个返回一组具有唯一坐标的行(在返回的集合内)的查询。请注意,这distinct是不可用的,因为我需要返回根据定义不同的 id 列。这种作品(@maxcount是我们需要的行数,intid是唯一的 int id 列):

不幸的是,对于给定的坐标,它总是会返回同一行,这对我的使用来说有点遗憾。如果我们有一个rand()可以使用的聚合来代替max()......请注意,您不能使用max()newid().

有任何想法吗?(这里有更多背景知识,如果您有兴趣:http ://www.itu.dk/~friism/blog/?p=121 )

更新:这里的完整解决方案

0 投票
2 回答
2358 浏览

iphone - UIImagePickerController 不提供地理标签数据

当我使用 UIImagePickerController 从相机胶卷或照片库中选择照片时,在方法中返回给我的图像

'didFinishPickingImage'

不包含经纬度的 exif 数据。我知道标题在那里,因为它们在导入 iPhoto 时会显示,如果我从相机胶卷上传图像,它们还包含位置的 exif 标题。有没有办法让 UIImagePickerController 也提供该信息?

0 投票
3 回答
6818 浏览

web - 为什么同一个网址打开不同的网页?

当我打开一些 URL 时,我遇到了一件奇怪的事情。网址是(www.jobserve.com)

当我从家里打开这个 URL 时,它会打开一些网页。如果我从我的办公室网络打开相同的 URL,我会得到一个完全不同的 URL,这正是我想要的。

我的家和办公室都在印度的同一个城市(相距 3 公里!),但不知何故,从我的家庭网络,我得到了一个完全不同的页面,这不是我想要打开的。(在办公室一是想要的。办公室网络有代理/防火墙,可以屏蔽IP地址以向外界开放!)。

我的问题是为什么会这样,因为这两种访问都来自同一个国家/城市(但是不同的 ISP!),所以不能有一个国家/IP 特定的主机/内容与同一服务器的全球内容不同。

那么这里会发生什么?

这在我脑海中提出了另一个问题(当我尝试使用 nslookup 和返回错误的域名查找服务器的 IP 时 - “找不到 www.jobserve.com/:不存在的域”):- 我怎么能找到使用 nslookup 以外的域名的 Web 服务器的 IP 地址不适用于此特定域/url?

我记得有一些网站可以找到服务器的地理位置并以图形方式显示,但我无法回忆起那个网址?有人知道吗?

谢谢,

-广告。

0 投票
16 回答
382683 浏览

math - 如何将纬度或经度转换为米?

如果我有标准 NMEA 格式的纬度或经度读数,是否有一种简单的方法/公式可以将该读数转换为米,然后我可以在 Java (J9) 中实现?

编辑:好吧,看来我想做的事情不容易,但我真正想做的是:

假设我有一个经纬度的路点和一个用户的经度和经度,有没有一种简单的方法可以比较它们以决定何时告诉用户他们在距离路点相当近的距离内?我意识到合理是主题,但这很容易做到还是仍然过于数学?

0 投票
4 回答
1233 浏览

mysql - 列表中纬度/经度之间的最长距离

我有一个地理编码条目数据库。我需要确定哪两个条目与总条目的子集相距最远。例如,我选择一个包含 10 个条目的列表,然后从该列表中确定哪两个位置代表该列表中的最大距离。

我无法解决如何解决这个问题。我什至考虑过使用弧度,但似乎没有什么能满足要求。

仅供参考,LAMP 堆栈在这里...

0 投票
2 回答
12352 浏览

c# - 谷歌地理定位 API 库

是否有图书馆可以使用 google 服务 ( https://www.google.com/loc/json ) 为您提供大致位置?

Google Gears 对其提供了支持,如此处所述http://code.google.com/p/gears/wiki/GeolocationAPI Web 服务请求/响应架构上也有很好的文档。

Firefox 和 iPhone Safari 也使用该服务,它们有自己的实现。我想在我自己的 C# 应用程序中使用该服务,所以我想要一个我可以使用的库(C/C++/C# 之一)。目前,我的同事让它工作的唯一方法是使用 IE 的齿轮插件并在我们的 WPF 应用程序中托管嵌入式 IE 窗口。这有点麻烦,并且可重新分发很差。

有任何想法吗?

编辑 这是来自上述页面的评论:

来自 steveblock@google.com 的评论,2008 年 12 月 2 日

感谢所有的评论。一些回应...

可以在位于http://code.google.com/apis/gears/api_geolocation.html的 Geolocation >API 文档中找到有关使用 API 的许多问题的答案。此 Wiki 页面旨在为开发 Gears 的人员记录正在进行的工作,而不是作为 API 的权威文档。

关于 JSON 协议,我已更新此文档以反映 Gears 中的当前行为。请注意,该协议的官方文档将很快添加到 Geolocation API 文档中。

Gears 服务条款禁止通过 HTTP 请求直接使用 Google 位置服务器 ( http://www.google.com/loc/json )。此服务只能通过 Geolocation API 访问。

这有点糟糕。那么 Firefox 是如何通过 HTTP 请求直接使用该服务的呢?

0 投票
8 回答
12886 浏览

oracle - 如何在Oracle中有效地计算坐标之间的距离

我有一个大型 Oracle 数据库(大约有 720,000 条记录),其中每条记录都有自己的地理坐标(纬度和经度),我只需要选择距离某个点特定距离(特定半径内)的记录。

目前我已经实现了一个距离函数(基于 hasrsine),我在一个 oracle 论坛中找到了它,但是因为数据库有点大,每次选择大约需要 50 秒。

关于如何有效地做到这一点的任何建议?我知道有一个名为 oracle spatial & locator 的扩展,但我不知道我是否可以购买它,甚至不知道它是如何工作的。提前非常感谢。最好的祝福

0 投票
1 回答
1332 浏览

java - 用于简单 gis 计算的 java api

我正在尝试在基于 java servlet 的 webapp 的服务器端部分开发一些简单的位置逻辑。

实际上只有两个我感兴趣的操作:

  1. 给定起点(纬度/经度)s1、距离 d 和搜索点(也是纬度/经度)s2,确定 s2 是否在距离 s1 的 d 范围内。

  2. 给定两点(纬度/经度),确定它们之间的距离。

有没有人推荐支持这些操作的简单 java API?

谢谢!

0 投票
4 回答
10595 浏览

math - 十进制纬度/经度度的最大长度?

一个纬度和经度在地球表面可以具有的最大长度(以公里或英里为单位 - 但请指定)是多少?

我不确定我是否足够清楚,让我重新表述一下。众所周知,地球不是一个完美的圆,赤道(或厄瓜多尔)的纬度/经度变化 1.0 可能意味着一个距离,而两极的相同变化可能意味着另一个完全不同的距离。

我正在尝试减少数据库(在本例中为 MySQL)返回的结果数量,以便我可以使用Great Circle公式计算几个点之间的距离。我希望选择纬度/经度边界内的坐标,而不是选择所有点然后单独计算它们,例如:

PS:时间不早了,感觉我的英语没有达到预期,如果有什么看不懂的请说出来,我会根据需要修复/改进它,谢谢。

0 投票
2 回答
26851 浏览

php - 计算地理接近度的公式

我需要在我的应用程序中实现地理邻近搜索,但我对要使用的正确公式感到非常困惑。在 Web 和 StackOverflow 中进行一些搜索后,我发现解决方案是:

  1. 使用Haversine 公式
  2. 使用大圆距离公式
  3. 在数据库中使用空间搜索引擎

选项#3 对我的 ATM 来说真的不是一个选项。现在我有点困惑,因为我一直认为大圆距离公式哈弗辛公式同义词,但显然我错了?

哈弗辛公式

上面的屏幕截图取自很棒的Geo (proximity) Search with MySQL论文,并使用了以下函数:

我还看到了同一个公式余弦球定律的变化,比如这个:

它使用以下功能:

我不是数学专家,但这些公式是否相同?我遇到了更多的变体和公式(例如余弦的球面定律和文森蒂公式 -这似乎是最准确的),这让我更加困惑......

我需要选择一个好的通用公式在 PHP/MySQL 中实现。谁能解释我上面提到的公式之间的区别?

  • 哪个计算速度最快?
  • 哪一个提供最准确的结果?
  • 就结果的速度/准确性而言,哪一个是最好的?

感谢您对这些问题的洞察力。


基于唯一的理论答案,我测试了以下大圆距离公式:

  • 文森提公式
  • 哈弗辛公式
  • 球面余弦定律

Vincenty 公式非常慢,但它非常准确(低至 0.5 毫米)

Haversine 公式比 Vincenty 公式快得多,我能够在大约 6 秒内运行 100 万次计算,这对于我的需求来说几乎是可以接受的。

余弦公式的球面定律显示出几乎是哈弗辛公式的两倍,并且对于大多数用例来说,精度差异是可忽略的。


以下是一些测试地点:

  • 谷歌总部( 37.422045, -122.084347)
  • 加利福尼亚州旧金山( 37.77493, -122.419416)
  • 法国埃菲尔铁塔( 48.8582, 2.294407)
  • 悉尼歌剧院( -33.856553, 151.214696)

Google 总部 - 加利福尼亚州旧金山:

  • 文森特公式:49 087.066 meters
  • 哈弗辛公式:49 103.006 meters
  • 球面余弦定律:49 103.006 meters

Google 总部 - 法国埃菲尔铁塔:

  • 文森特公式:8 989 724.399 meters
  • 哈弗辛公式:8 967 042.917 meters
  • 球面余弦定律:8 967 042.917 meters

Google 总部 - 悉尼歌剧院:

  • 文森特公式:11 939 773.640 meters
  • 哈弗辛公式:11 952 717.240 meters
  • 球面余弦定律:11 952 717.240 meters

正如您所看到的,Haversine 公式和余弦球面定律之间没有明显的区别,但是与 Vincenty 公式相比,两者的距离偏移量高达 22 公里,因为它使用地球的椭球近似而不是球形近似。