根据城市名称获取所在经纬度
2017-12-06 13:54
519 查看
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class GetCoordinate { public static void main(String[] args) { try { String[] coordinate = new GetCoordinate().getCoordinate("北京市"); System.out.println(coordinate[0]+" "+coordinate[1]);//0:经度 1:纬度 } catch (IOException e) { e.printStackTrace(); } } /** * 根据城市名称查询所在经纬度 * @param addr * 查询的地址 * @return * @throws IOException */ public String[] getCoordinate(String addr) throws IOException { String lng = null;//经度 String lat = null;//纬度 String address = null; try { address = java.net.URLEncoder.encode(addr, "UTF-8"); }catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } String key = "NcMnc56RX48MjpsOfP4ZEW5GVHmCCmeg"; String url = String .format("http://api.map.baidu.com/geocoder?address=%s&output=json&key=%s", address, key); URL myURL = null; URLConnection httpsConn = null; try { myURL = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } InputStreamReader insr = null; BufferedReader br = null; try { httpsConn = (URLConnection) myURL.openConnection();// 不使用代理 if (httpsConn != null) { insr = new InputStreamReader( httpsConn.getInputStream(), "UTF-8"); br = new BufferedReader(insr); String data = null; int count = 1; while((data= br.readLine())!=null){ if(count==5){ lng = (String)data.subSequence(data.indexOf(":")+1, data.indexOf(","));//经度 count++; }else if(count==6){ lat = data.substring(data.indexOf(":")+1);//纬度 count++; }else{ count++; } } } } catch (IOException e) { e.printStackTrace(); } finally { if(insr!=null){ insr.close(); } if(br!=null){ br.close(); } } return new String[]{lng,lat}; } }
给出城市名字可以得到相应的经纬度,可以用来在地图上定位等操作.(不同地图api坐标可能不相同,需要根据实际情况转换.)该实例是百度地图的经纬度可以直接使用在百度地图上.
注意:运行时必须连接网络,如果网络不通或网络不好,会报错的
java.lang.StringIndexOutOfBoundsException: String index out of range: -14
不需要引入任何jar包 都是jdk自带的包.
相关文章推荐
- 根据经纬度获取所在城市的相关信息以及根据地点城市获取经纬度
- 根据经纬度获取所在城市以及根据地点获取经纬度
- Winform-根据当前IP获取所在城市名称
- 根据城市名称获取经纬度的接口
- 根据经纬度获取所在城市以及根据地点获取经纬度
- 百度地图 根据经纬度获取城市或省的名称
- 安卓开发中根据城市名获取经纬度
- PHP 根据IP地址获取所在城市
- ios项目开发(天气预报项目):通过经纬度获取当前城市名称
- js根据ip地址获取所在城市
- 根据城市名字获取经纬度
- PHP代码获取客户端IP地址经纬度及所在城市
- PHP:根据IP地址获取所在城市
- 根据IP地址获取所在城市
- PHP根据IP地址获取所在城市
- 根据经纬度获取城市名
- 根据访问IP获取所在城市并绑定下拉列表
- 根据IP获取IP所在城市PHP
- windows phone 7 定位(获取经纬度),然后找到经纬度所在的位置(城市信息)
- 根据IP定位城市名称/经纬度