我有一个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 - 在数据库中查找半径范围内的点
- 7. 查找范围内的数字位置
- 8. Python总和经纬度在地理半径范围内,并与网格总和
- 9. Twitter - 查询特定地理位置半径内的推文
- 10. mysql lat lon计算显示半径范围内的位置
- 11. 广播到15英里半径范围内的位置
- 12. PHP查找邮政编码半径范围内所有出现
- 13. 从谷歌地图api v3中删除地理位置半径
- 14. 返回当前位置x英里半径范围内的地方的列表
- 15. Rails谷歌地图检查点是否位于特定半径范围内
- 16. Google地理位置和半径
- 17. 安卓半径环绕地理位置
- 18. 位置在一个地理位置科多瓦应用程序内的半径
- 19. 从哪里开始在我的半径范围内找到用户
- 20. 在Android中查找给定半径内的附近位置
- 21. 选择半径范围内的点
- 22. Redis的范围查找查询经纬度无半径
- 23. 把位置放在某个半径的用户周围的地图上 - android
- 24. 将地址转换为地理位置并添加范围
- 25. GoogleMaps地理位置值范围
- 26. searchkick在位置半径找到
- 27. 获取半径范围内的附近街道地址
- 28. 围绕用户的当前位置的半径Swift iOS 9
- 29. 如何表示地理位置查找的街道地址范围?
- 30. 使用jQuery/JS(无谷歌地理定位API)查找用户位置?
欲阅读更多关于计算距离的算法(以及考虑地球曲率的近似值),请阅读:http://en.wikipedia.org/wiki/Haversine_formula –