java 实现百度地图的地址解析及在数据库的读取存储过程

mac2022-06-30  60

  package action;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URL;import java.net.URLEncoder;import java.util.HashMap;import java.util.Map;public class LocationUtil {        private static final String ak = "XG8Ed4Vi6BN67wrmFLc7x63oYOayXIR1";                /**        * 返回输入地址的经纬度坐标 key lng(经度),lat(纬度)        */        public static Map<String, String> getLatitude(String address) {                try {                        // 将地址转换成utf-8的16进制                        address = URLEncoder.encode(address, "UTF-8");                        // 如果有代理,要设置代理,没代理可注释                        // System.setProperty("http.proxyHost","192.168.172.23");                        // System.setProperty("http.proxyPort","3209");                                                                                  URL resjson = new URL("http://api.map.baidu.com/geocoder/v2/?callback=renderOption&output=json&address="                                        + address + "&city=广州市&output=json&ak=" + ak);                      //  System.out.println(resjson);                        BufferedReader in = new BufferedReader(new InputStreamReader(resjson.openStream()));                        String res;                        StringBuilder sb = new StringBuilder("");                        while ((res = in.readLine()) != null) {                                sb.append(res.trim());                        }                        in.close();                        String str = sb.toString();                        //System.out.println("return json:" + str);                        if(str!=null&&!str.equals("")){                                Map<String, String> map = null;                                int lngStart = str.indexOf("\"lng\"");                                int lngEnd = str.indexOf(",\"lat\"");                                int latEnd = str.indexOf("},\"precise");                                if (lngStart > 0 && lngEnd > 0 && latEnd > 0) {                                        String lng = str.substring(lngStart + 6, lngEnd);                                        String lat = str.substring(lngEnd + 7, latEnd);                                        map = new HashMap<String, String>();                                        map.put("lng", lng);                                        map.put("lat", lat);                                        return map;                                }                        }                } catch (Exception e) {                        e.printStackTrace();                }                return null;        }                    public static void main(String args[]) {                                Map<String, String> map = LocationUtil.getLatitude("越秀区人民中路1号");                if (null != map) {                        System.out.println(map.get("lng"));                        System.out.println(map.get("lat"));                }        }}

 

package action;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Map;public class JDBC {        public static void main(String[] args) {                Connection connection = null;                Statement statement = null;                try {                        //1、加载数据库驱动                        Class.forName("oracle.jdbc.OracleDriver");                        //2、创建数据库连接                        String url = "jdbc:oracle:thin:@localhost:1520:orcl";                         connection = DriverManager.getConnection(url, "scot", "tiger");                                                //3、进行数据库操作                        statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//Oracle数据库需要设置才能进行updata                        ResultSet rs = statement.executeQuery("select djxh,dz,gps from t_location");//sql语句中出现多余的标点符号 ;,  会报错无效字符                        LocationUtil locationUtil=new LocationUtil();                        while(rs.next()){                           // System.out.println(rs.toString());                            String a=rs.getNString("djxh");                            String bString=rs.getNString("dz");                           Map  cString=locationUtil.getLatitude(bString);                            String dString =cString .get("lng").toString()+","+cString.get("lat").toString();/得到经纬度                            //System.out.println(dString);                            rs.updateString("gps",dString);//存入数据库                            rs.updateRow();                            System.out.println(rs.getNString("dz")+" : "+rs.getNString("gps"));                                                                                              }                        rs.close();                                        } catch (Exception e) {                        e.printStackTrace();                } finally {                        //4、关闭连接                        try {                                if(statement != null){                                        statement.close();                                }                                if(connection != null){                                        connection.close();                                }                        } catch (SQLException e) {                                e.printStackTrace();                        }                }        }}

 

转载于:https://www.cnblogs.com/pakeng/p/6704505.html

相关资源:java读取xml文件并存入数据库
最新回复(0)