我的要求类似于
this question,除了我被禁止使用纬度和经度值的事实.我想要计算两个邮政编码之间的“走”距离.后来我还需要查询“谁在X kms内?”
我不知道是否可以实现.真的可以找到两个给定的邮政编码之间的距离吗?我不想要仅适用于美国/英国邮政编码的答案.我需要一个通用的解决方案,它将适用于世界上任何两个邮政编码.
如果距离的计算不使用Langitude&经度是不可能得到给定的ZIPCODE的Langitude /经度值? (惊人)但如何?
任何教程/示例都将有很大的帮助.因为我正在开展一个商业项目,不能使用Google Maps API.所以请不要建议任何其他许可的服务.
提前致谢,
UPDATE
this question的答案之一建议使用MySQL或Postgress …会为我工作吗?
解决方法
如果你有兴趣,这里是我的java实现的
haversine formula
/** * Calculates the distance in km between two lat/long points * using the haversine formula */ public static double haversine( double lat1,double lng1,double lat2,double lng2) { int r = 6371; // average radius of the earth in km double dLat = Math.toradians(lat2 - lat1); double dLon = Math.toradians(lng2 - lng1); double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toradians(lat1)) * Math.cos(Math.toradians(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); double c = 2 * Math.atan2(Math.sqrt(a),Math.sqrt(1 - a)); double d = r * c; return d; }
我特此捐赠给公共场所GPL
原文地址:https://www.jb51.cc/java/123348.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。