在java中将地址转换为纬度和经度以获得基于距离的建议

Posted

技术标签:

【中文标题】在java中将地址转换为纬度和经度以获得基于距离的建议【英文标题】:Convert address to latitude and longitude in java for distance based suggestion 【发布时间】:2014-03-22 05:07:12 【问题描述】:

我的要求是在 Web 应用程序中用户输入地址,我应该根据用户地址的 10 英里半径向他显示建议。我正在使用 Struts 2.0、Java 和 mysql 的技术

为此,我想通过以下方式实现:

    在用户注册过程中转换纬度和经度并存储在数据库中

    使用 mysql 查询根据存储的纬度和经度值查找最近的位置

我可以从 mysql 端找到所需的查询,我现在需要的只是如何将地址转换为纬度和经度。

是否有任何开源 api 可以做到这一点。我尝试了谷歌地图网络服务和 js api,但根据许可条款,使用除显示地图之外的地理编码数据受到限制。

为了实现我的要求,它可以通过任何其他方式完成,如果有请帮助我。如果不能,请您指出任何开源网络服务或 js api 或 java api 用于将地址转换为纬度和经度。

谢谢。

【问题讨论】:

【参考方案1】:

看看Mapquest's geocoding API。

不过,请查看他们的Terms of Use。以下是一些要求:

OpenStreetMap 必须为数据提供功劳。 请将“Geocoding Courtesy of MapQuest”放在您的页面或地图的版权区域,并将“MapQuest”字样链接到http://www.mapquest.com。 如果您的应用程序使用量很大,请发送电子邮件至 open@mapquest.com 告知我们。请提供您对预期使用量的估计,以便我们了解并适应额外的流量。

【讨论】:

或者你可以直接访问 OpenStreetMap 的 Nominatim:wiki.openstreetmap.org/wiki/Nominatim 但是看起来 MapQuest 能够更好地处理更多的查询,并且他们声称他们的 API 更简单。 谢谢 Mapquest open js 不提供地理编码,但开放的 web 服务提供,这应该可以解决我想要达到的目的,感谢您提供信息。 有没有最好的方法或者我目前正在做的方法是正确的 @Vinay :我和你有类似的要求。您最终是否根据他们的使用条款使用了 mapquest 网络服务?您是否创建了自己的 java 客户端来使用它?

以上是关于在java中将地址转换为纬度和经度以获得基于距离的建议的主要内容,如果未能解决你的问题,请参考以下文章

如何在iPhone开发中将地址转换为纬度和经度[重复]

将地址转换为经度和纬度

将距离(海里)转换为度(纬度/经度)

在R中将纬度/经度转换为高度

如何在 Java 中将纬度和经度转换为 x,y?

在 Three.js 中将经度和纬度转换为 xyz(为了旋转相机)的问题