Ami*_*mit 10 java web-services java-ee
我的要求与此问题类似,但我禁止使用纬度和经度值.我想计算两个拉链码之间的"行走"距离.后来我还要求查询"谁在X公里范围内?"
我不确定它是否可以实现.是否真的可以找到两个给定的拉链码之间的距离?我不希望这些答案仅适用于美国/英国邮政编码.我需要一个通用的解决方案,适用于世界上任何两个zipcodes.
如果不能使用经度和经度来计算距离,那么我可以获得给定ZIPCODE的经度/经度值吗?(太棒了)但是如何?
任何教程/示例都会有很大帮助.由于我正在开展商业项目,因此无法使用Google Maps API.所以请不要建议任何其他许可服务.
提前致谢,
Boh*_*ian 15
如果你有兴趣,这是我的半实施公式的 java实现
/**
* 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;
}
Run Code Online (Sandbox Code Playgroud)
我特此将此捐赠给GPL下的公共场所:)
只需复制并粘贴我的评论;)
亲爱的艺术家,你有一种错觉,认为邮政编码是国家和国家的本地代码,而不是地质分界.即使您的当地政府\委员会\邮局有任何此类信息,您也只能在本地实施.除了遗憾地说没有艺术家可以画这幅画. -
我遵循了两步过程......
然而,有时我发现谷歌和雅虎 API 是这个恕我直言的最佳方式,所以我将其集成到我的项目中。如果有人感兴趣,我可以在这里粘贴代码。
| 归档时间: |
|
| 查看次数: |
12324 次 |
| 最近记录: |