不显示地图,获取纬度/经度/反向地理编码

3
使用一个网站,我正在尝试获取用户的纬度/经度点,并基于此获得他的当前地址。
我能够使用Google Maps API进行此操作:地理定位和反向地理编码。但是,我的要求是在不显示地图的情况下获取此信息。据我所知,Google Maps使用条款禁止这样做。
有人能告诉我是否有其他服务可以满足我的目的而不显示地图,或者Google Maps允许这样做吗?我不确定Bing,Yahoo是否可以。
编辑:在页面加载时,我需要获取用户的纬度和经度,并基于此获取地址信息。我计划使用此地址信息来显示附近的地点/参观场所。我必须在不显示任何地图的情况下实现这一点。
4个回答

2
我不知道是否错误地翻译了这篇文章,但如果您正在阅读本文:
(viii) 存储或允许终端用户存储来自 Yahoo! Maps APIs 的地图影像、地图数据或地理编码位置信息,用于任何未来的使用;
(ix) 除了在显示 Yahoo!Maps 或在 Yahoo!Maps 上显示点时,不能使用独立地理编码器进行任何其他用途;
这意味着您不能在没有地图的情况下存储或使用这些信息。因此,Google API 和 Yahoo API 需要有地图...
注:我从 Yahoo 的条款中提取了这些内容:http://info.yahoo.com/legal/us/yahoo/maps/mapsapi/mapsapi-2141.html 编辑 - 现在我正在尝试使用 http://www.geonames.org/export/reverse-geocoding.html ,这很容易且对我很有效。 我只需要城市和可能的邮政编码。

2
Yahoo PlaceFinder可以实现此功能。如果您在location参数中传入纬度和经度并加上gflags=R,它应该会返回地址数据。
您需要获取一个雅虎APP ID,但是它是免费的,并且设置起来非常容易。
编辑:我看到您要做地理定位,如果不能使用谷歌,我建议使用HTML5地理定位或freegeoip.net通过IP地址进行地理定位。

感谢Dave的快速回复。所以,我假设获取地址数据而不在任何地图上显示它是合法的。另外,我从哪里获取纬度和经度信息?从同一个API吗?我的担忧是在不违反使用条款的情况下完成任务。 - johnk1
@johnk1 我以为你已经有经度和纬度了?你现在从哪里开始呢?是的,我不是律师,但我相当确定你不需要做任何特殊的事情来使用它。(我没有显示地图!) - Dave
抱歉如果我让你感到困惑,但我在问题的第一行中已经提到了。这是我的开始方式:用户在桌面浏览器上点击网站URL。现在我需要检测用户的位置[纬度/经度],并使用这些信息获取他的地址信息,以便我可以用它来显示附近的旅游景点。希望你明白我的意思。 - johnk1
@johnk 我看到你在尝试进行地理定位!是的,我认为每个人都完全忽略了这一点,你可能需要编辑你的问题。我会更新我的答案。 - Dave

0

有许多地理位置API - 这里有一个非常好的:

https://geoip.nekudo.com/

你只需要向该地址发送一个GET请求:

http://geoip.nekudo.com/api/{ip}/{language}/{type}

其中ip、语言和类型是可选的。

例如,在Angular 5中,使用HttpClient:

this.http.get('http://geoip.nekudo.com/api/') .subscribe(

data => { console.log('成功!您的坐标为纬度:', data.location.latitude, '经度:', data.location.longitude); }, error => { console.log('错误!', error); } );

此外,请注意,geoip服务是用PHP编写的,并且是开源的(https://github.com/nekudo/shiny_geoip),因此您可以自己实现以减少第三方依赖。


0

但是我能否使用这个API检测用户的位置[纬度/经度]? - johnk1
欢迎来到Stack Overflow!虽然这理论上可以回答问题,但最好在此处包含答案的关键部分,并提供参考链接。 - user195488

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接