百度通过经纬度获取地址
2016-07-14 11:16
253 查看
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import java.awt.List; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import com.alibaba.fastjson.*; import com.mysql.jdbc.*; public class TestHttp2 { private String adcode; private String country; private String province; private String city; private String district; private static final List List = null; public static void main(String[] args) throws Exception { // Map<String,String> map=getInformation(38.02500,114.51250); // System.out.println(map.get("adcode")); // System.out.println(map.get("country")); // System.out.println(map.get("province")); // System.out.println(map.get("city")); // System.out.println(map.get("district")); linkdb(); } public static void linkdb() throws Exception{ String dburl = "jdbc:mysql://10.26.0.65:3306/lbs_db?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "root"; PreparedStatement stmt = null; Connection conn = null; String prov1="河南省"; String city1="开封市"; String distr1="开封市市辖区"; try { //1.驱动注册程序 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接对象 conn = (Connection) DriverManager.getConnection(dburl, user, password); //3.创建Statement //stmt = (Statement) conn.createStatement(); //4.准备sql // String sql ="SELECT slat,slon FROM location"; String sql ="SELECT slat,slon FROM location WHERE distr=?"; // String sql ="SELECT slat,slon FROM location WHERE prov=? AND city=? AND distr=?"; // SELECT slat,slon FROM location WHERE prov="河南省" AND city="开封市" AND distr="开封市市辖区" stmt = conn.prepareStatement(sql); // stmt.setString(1,prov1); // stmt.setString(2,city1); stmt.setString(1,distr1); //5.发送sql语句,执行sql语句,得到返回结果 ResultSet rs =stmt.executeQuery(); //6.输出 // System.out.println(rs); //7.遍历结果 while(rs.next()){ //String lat = rs.getString("geoname_city_id"); double lat = rs.getDouble("slat"); double lng = rs.getDouble("slon"); Map<String,String> map=getInformation(lat,lng); System.out.println(map.get("adcode")+map.get("country")+map.get("province")+map.get("city")+map.get("district")); //System.out.println( lat+","+lng); } System.out.println("读取完毕"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //8.关闭连接(顺序:后打开的先关闭) if(stmt!=null) try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } //通过地址获取精度和纬度 public static Map<String,String> getInformation(double lats,double lngs){ Map<String,String> map=new HashMap<String, String>(); String url = "http://api.map.baidu.com/geocoder/v2/?location="+lats+","+lngs+"&output=json&ak=427KpzmKIOnea6BCu8usfNGnfF6iRrYQ"; String json = loadJSON(url); JSONObject obj = JSONObject.parseObject(json); if(obj.get("status").toString().equals("0")){ String adcode =obj.getJSONObject("result").getJSONObject("addressComponent").getString("adcode"); String country =obj.getJSONObject("result").getJSONObject("addressComponent").getString("country"); String province =obj.getJSONObject("result").getJSONObject("addressComponent").getString("province"); String city =obj.getJSONObject("result").getJSONObject("addressComponent").getString("city"); String district =obj.getJSONObject("result").getJSONObject("addressComponent").getString("district"); // double lng=obj.getJSONObject("result").getJSONObject("location").getDouble("lng"); // double lat=obj.getJSONObject("result").getJSONObject("location").getDouble("lat"); // map.put("lng", lng); // map.put("lat", lat); //System.out.println("经度:"+lng+"---纬度:"+lat); map.put("adcode", adcode); map.put("country", country); map.put("province", province); map.put("city", city); map.put("district", district); }else{ System.out.println("未找到相匹配的经纬度!"); } return map; } public static String loadJSON (String url) { StringBuilder json = new StringBuilder(); try { URL oracle = new URL(url); URLConnection yc = oracle.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader( yc.getInputStream())); String inputLine = null; while ( (inputLine = in.readLine()) != null) { json.append(inputLine); } in.close(); } catch (MalformedURLException e) { } catch (IOException e) { } return json.toString(); } }
相关文章推荐
- JAVA定时任务Quartz
- lua语言入门之Sublime Text设置lua的Build System
- 关于Shell脚本编程不得不知的几个细节
- QtQuick一分钟技巧:使用C++保存全局数据
- 关于qmail的笔记
- 安装mysql Install/Remove of the Service Denied!错误的解决办法
- 网络数据包检查,抓包形式
- 创建数据库并授权
- Linux编写程序入门
- 【程序员】:程序员经常去的社区
- 下载多个平台并运行一个实例
- Android提高第五篇之Service
- React Native专题
- 致我已逝的青春年少
- 启动activity的过程追踪
- OGL颜色和图片颜色存储位移压缩
- Android开发中常用的工具类整理
- Android开发中常用的工具类整理
- CentOS6.3编译安装Memcached
- myloader原理0