根据经纬度获取地理位置,被称为 GeoCode 。
Google 地图提供了经纬度到地理位置的 API,并封装成了 Java 库,地址: google-maps-services-java 。
API 接口:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=API_KEY
使用 Google 地图需要申请 API_KEY ,请参考 开发者文档 。
国内,Baidu 地图也提供了同样的 API。
API 接口:
http://api.map.baidu.com/geocoder/v2/?location=35.658651,139.745415&output=json&ak=API_KEY
使用 Baidu 地图同样需要申请 API_KEY ,请参考 开发者文档 。
以上两种获取地理位置的方式统统都是收费服务,如果不要求结果完全准确的话,可以查询全国主要城市经纬度,遍历距离最近的城市。
简单粗暴!!!
计算两点之间的直线距离:
Math.sqrt(Math.pow((x1 - x2), 2), Math.pow((y1 - y2), 2))