是否有任何免费的 GeoIP 服务可以准确检测 2 个地址是否在 6Km 内?

Posted

技术标签:

【中文标题】是否有任何免费的 GeoIP 服务可以准确检测 2 个地址是否在 6Km 内?【英文标题】:Are there any free GeoIP services which are accurate to detect whether 2 addresses are within 6Km? 【发布时间】:2014-01-21 23:32:21 【问题描述】:

我要做一个餐厅送货上门的网站,业主不希望送货超过6公里。我听说 geoIP DB 'Maxmind GeoLite city' 虽然不是特别准确。此外,如果您知道有一个短代码的数据库,或者预定义的查询来获取距离而无需大量编码,我很想听听!我希望这个问题定义得足够清楚。欢迎所有建议!

【问题讨论】:

SQL Server 2012 有一个称为地理的数据类型。查看扩展参考。 technet.microsoft.com/en-us/library/cc280766.aspx 【参考方案1】:

我不知道您的项目规格,但您可能知道送货地址。在这种情况下,您可以使用 Google 的地理编码 API 来获取位置 (lat,lng),然后计算距离。

当然,每日请求的数量是有限制的,但我认为你的应用很难达到这个限制。

看这里:

https://developers.google.com/maps/documentation/geocoding

【讨论】:

好答案! GeoIP 不准确,因为 IP 地址一直在变化。但是反向地理编码(街道地址到地理坐标)给出了非常惊人的结果,你很可能会在 100m 左右得到准确的结果。它也更简单,因为当服务器位于代理/负载均衡器等之后时,获取客户端 IP 可能会很棘手。【参考方案2】:

html5 地理位置比基于 IP 地址的位置更准确。

http://ipgeo5.com/

【讨论】:

这个网站给了我错误的城市,一点也不准确。【参考方案3】:

据我所知,没有免费的 IP 地理定位数据库可以可靠地提供您正在寻找的准确度,尤其是当您的客户有使用移动设备的访问者时。

我建议你看看W3C Geolocation javascript API。由此得出的结果通常比 IP 地理定位更准确,尤其是当用户使用具有 GPS 的设备时。请注意,它会弹出一个对话框,询问用户是否要与您的网站分享他们的位置。

【讨论】:

以上是关于是否有任何免费的 GeoIP 服务可以准确检测 2 个地址是否在 6Km 内?的主要内容,如果未能解决你的问题,请参考以下文章

MaxMind 的 GeoIP 数据库

GeoIP的Web服务[关闭]

GeoIP 查找——选项和数据持久性

NGINX GeoIP 和在服务器级别检测移动设备

在哪里可以找到用于测试 GeoIP 服务的出色代理服务器? [关闭]

仅对美国位置使用 GeoIP 并非 100% 准确