我有一个Java应用程序,我想知道访问者的位置。该API会给我一个访问者的邮政编码,然后基于该邮政编码,我会发现一个查询,并在25/50英里半径范围内获得我的应用程序中的用户。 或者,访问者可以键入他们感兴趣的邮政编码,应用程序应返回半径为x英里的用户。 对于在系统中注册的用户,我们只有他们的邮政编码。 我环顾了一些选项,但没有找到确切的解决方案。我不想下载邮政编码数据库并维护它们。 我不认为Google API支持这种东西。地理位置API并在半径范围内查找用户
2
A
回答
2
我找不到任何提供API的服务。经过大量研究后,我发现您必须将邮政编码及其经纬度位置下载到表格中。然后 计算您想要搜索的半径内的坐标。 这是帮助我很多的网站。 http://www.dougv.com/2009/03/27/getting-all-zip-codes-in-a-given-radius-from-a-known-point-zip-code-via-php-and-mysql/
这里是Java中的计算,如果你真的,如果你不想用PHP工作
//这个你通过查询数据库对邮政编码 双纬度= Double.parseDouble得到( zipCode.getLatitude()); Double longitude = Double.parseDouble(zipCode.getLongitude());
Double latN =Math.asin(
Math.sin(Math.toRadians(latitude)) * Math.cos(distance/radius) +
Math.cos(Math.toRadians(latitude)) * Math.sin(distance/radius) * Math.cos(Math.toRadians(0)));
Double latS =Math.asin(
Math.sin(Math.toRadians(latitude)) * Math.cos(distance/radius) +
Math.cos(Math.toRadians(latitude)) * Math.sin(distance/radius) * Math.cos(Math.toRadians(180)));
Double longE = Math.toRadians(longitude) +
Math.atan2(
Math.sin(Math.toRadians(90)) * Math.sin(distance/radius)* Math.cos(Math.toRadians(latitude))
, Math.cos(Math.toRadians(distance/radius)) - Math.sin(Math.toRadians(latitude))* Math.sin(Math.toRadians(latN)));
Double longW = Math.toRadians(longitude) +
Math.atan2(
Math.sin(Math.toRadians(270)) * Math.sin(distance/radius)* Math.cos(Math.toRadians(latitude))
, Math.cos(Math.toRadians(distance/radius)) - Math.sin(Math.toRadians(latitude))* Math.sin(Math.toRadians(latN)));
System.out.println("Latutude N "+Math.toDegrees(latN) +" Latitide S "+Math.toDegrees(latS) +">>> Longitude E "+Math.toDegrees(longE) +" Longitude W "+Math.toDegrees(longW));
2
我不知道它有多准确,但你看看IPinfoDB?他们将返回XML和JSON结果,但您需要注册一个API密钥。它不提供任何半径,但对于附近的邮编,你可以使用类似这样的东西:http://www.geonames.org/export/web-services.html#findNearbyPostalCodes
相关问题
- 1. html5地理位置在半径范围内搜索
- 2. 地理查找用户当前位置1公里半径范围内的应用用户不工作
- 3. 查找半径范围内的对象
- 4. 反向地理编码半径范围内的所有地址
- 5. 查找范围内的数字位置
- 6. mysql lat lon计算显示半径范围内的位置
- 7. 广播到15英里半径范围内的位置
- 8. 从谷歌地图api v3中删除地理位置半径
- 9. Rails谷歌地图检查点是否位于特定半径范围内
- 10. 安卓半径环绕地理位置
- 11. Redis的范围查找查询经纬度无半径
- 12. 把位置放在某个半径的用户周围的地图上 - android
- 13. 将地址转换为地理位置并添加范围
- 14. GoogleMaps地理位置值范围
- 15. searchkick在位置半径找到
- 16. 如何表示地理位置查找的街道地址范围?
- 17. 查找位置范围擅长
- 18. 查找并选择范围内的值
- 19. 使用Google地图在半径搜索范围内查找标记列表的最有效方法是什么?
- 20. 使用Google地理定位API查找塔的位置
- 21. 具有地理位置和在指定时间范围内的Java/Mongo查询
- 22. 如何在Google地图API中传递位置和半径?
- 23. 使用传单在半径范围内显示标记
- 24. 确定10英里范围内的地理位置逻辑
- 25. 如何在经度和纬度的半径范围内的xml文件上找到位置
- 26. 发现在谷歌地图上的位置给定的点5公里半径范围内
- 27. 在iPhone中通过Google GeoCoding API设置地理位置搜索范围
- 28. 计算半径,并找到半径内的所有匹配表
- 29. 查找并标记范围
- 30. 查找50英里范围内的给定IP地址的准确位置
欲阅读更多关于计算距离的算法(以及考虑地球曲率的近似值),请阅读:http://en.wikipedia.org/wiki/Haversine_formula –