package com.jiuqi.mobile.lbs.intf.oth; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; class GaoDeGisUtil{ public static GisPoint correction(double dLong, double dLat) { GisPoint point = new GisPoint(); point.setGcType(GisCoordinateType.GCJ_02); String xresult = ""; String yresult = ""; String responseMessageXml = null; // String strUrl = // "http://search1.mapabc.com/sisserver?config=RGC&resType=xml&x1=" // + dLong + "&y1=" + dLat // + // "&cr=0&flag=true&a_k=6e37dfb9fe56979897e25cc1a5b39e2e2dcebfe4d2d30ee3433e405b3572745d3f40c785c83a4833"; // String strUrl = // "http://apis.mapabc.com/sisserver?config=RGC&resType=xml&x1=" + // dLong + "&y1=" + dLat // + // "&cr=0&flag=true&a_k=6e37dfb9fe56979897e25cc1a5b39e2e2dcebfe4d2d30ee3433e405b3572745d3f40c785c83a4833"; String strUrl = "http://search1.mapabc.com/sisserver?config=RGC&resType=xml&x1=" + dLong + "&y1=" + dLat + "&cr=0&flag=true&a_k=6e37dfb9fe56979897e25cc1a5b39e2e2dcebfe4d2d30ee3433e405b3572745d3f40c785c83a4833"; // GetUrl getUrl = new GetUrl(); System.out.println("高德纠偏请求链接--->" + strUrl); responseMessageXml = GetUrlResult(strUrl);// 得到解析URL的xml System.out.println("~~~~~~~~高德纠偏的返回XML---》" + responseMessageXml); int xbegin; int xend; xbegin = responseMessageXml.indexOf("<x>"); xend = responseMessageXml.indexOf("</x>", xbegin + 3); xresult = responseMessageXml.substring(xbegin + 3, xend); // y int ybegin; int yend; ybegin = responseMessageXml.indexOf("<y>"); yend = responseMessageXml.indexOf("</y>", ybegin + 3); yresult = responseMessageXml.substring(ybegin + 3, yend); point.setLatitude(Double.parseDouble(yresult)); point.setLongitude(Double.parseDouble(xresult)); return point; } public static String GetUrlResult(String url) { // System.out.println("!!##########!!=====>"+url); String result = ""; BufferedReader in = null; InputStreamReader isr = null; try { URL serviceurl = new URL(url); URLConnection connection = serviceurl.openConnection(); connection.connect(); isr = new InputStreamReader(connection.getInputStream()); in = new BufferedReader(isr); String line; while ((line = in.readLine()) != null) { result += line; } in.close(); } catch (Exception e) { System.out.println("请求URL服务时发生错误:" + e); } finally { try { if (isr != null) { isr.close(); } if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } return result; } }