【问题标题】:Java - Getting location (latitude, longitude) of a mailing address without communication over internetJava - 无需通过互联网通信即可获取邮寄地址的位置(纬度,经度)
【发布时间】:2014-10-30 19:58:48
【问题描述】:

我有邮寄地址,需要通过 java 程序将它们转换为坐标(纬度、经度)。问题是程序不允许通过互联网进行通信(可能是由于隐私问题)。我搜索了一下,我发现的都是调用谷歌地图或其他服务的程序,因此它们都使用互联网。无论如何,任何人都知道通过一些没有互联网的代码来实现这一点?任何可能使用某些库或框架的 Java 代码?

如果 Java 中没有可用的东西,那么我可以对其他语言开放。我现在正在阅读有关 postgis 的信息(由同事建议)。不确定它是否有效,但如果您知道这一点,请提供一些建议/代码等。

基于评论的注释:如果 DBMS 知道如何将地址转换为坐标,那么这也可以,因为我可以在本地安装 DBMS。不确定 PostGis 是否可以做到这一点

谢谢

【问题讨论】:

  • 你的意思是,你如何获得一个包含你可以放在硬盘上的所有信息的数据库?
  • 是的,如果数据库本身知道如何将地址转换为地理坐标。
  • 我认为可能需要一个数据库,因为似乎没有单一的算法或库可以实现这一点。
  • 保留一个本地街道信息数据库以供查找对我来说没有意义,更不用说从哪里获取这些数据了,从技术上讲,它还取决于查找和自身的大小。也许,您应该考虑使用城市级别进行查找。

标签: java geolocation coordinates latitude-longitude


【解决方案1】:

带有坐标的邮寄地址(门牌号、街道、城镇)数据库可以通过商业方式获得许多国家/地区的信息,但往往很昂贵。邮政编码数据库更容易获得,并且相对便宜或免费。大多数数据库都可以按距离处理搜索,包括 PostGis。

【讨论】:

  • 您能否澄清一下,PostGis 是否可以获取地址并将其转换为坐标?如果你知道的话,怎么可能?谢谢
  • 没有 PostGis 或任何其他数据库可以将地址转换为坐标。数据库只能存储坐标和操作数据。即你可以计算一个邮政编码中有多少“东西”,离某个坐标最近的“东西”等等。你要么必须创建自己的数据库,要么从第三方获取一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
相关资源
最近更新 更多