日期:2014-05-17  浏览次数:20761 次

google map api如何根据地名获取经纬度???
google map api如何根据地名获取经纬度???
 function initialize() {
  if (GBrowserIsCompatible()) {
  var map = new GMap2(document.getElementById("map_canvas"));
  //map.setMapType(G_SATELLITE_MAP);
  map.setCenter(new GLatLng(26.263432028939793, 117.63870913535357), 13);
   
  }
  }

想把上面红色的经纬度,改为地名如:北京市。如何做???
如何根据地名获取经纬度???

------解决方案--------------------
Java code

    /**
     * 根据地址返回经纬度
     * @param addr
     * @return 返回经纬度数据, latLng[0]经度,latLng[1]维度
     */
    public static String[] getCoordinate(String addr) {
        String[] latLng = new String[2];
        String address = null;
        try {
            address = java.net.URLEncoder.encode(addr, "UTF-8");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        ;
        String output = "csv";
        //密钥可以随便写一个key=abc
        String key = "abc";
        String url = "http://maps.google.com/maps/geo?q=" + address + "&output=" + output + "&key=" + key;
        URL googleMapURL = null;
        URLConnection httpsConn = null;
        // 进行转码
        try {
            googleMapURL = new URL(url);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        try {
            httpsConn = (URLConnection)googleMapURL.openConnection();
            if (httpsConn != null) {
                InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream(), "UTF-8");
                BufferedReader br = new BufferedReader(insr);
                String data = null;
                if ((data = br.readLine()) != null) {
                    String[] retList = data.split(",");
                    /*
                     * String latitude = retList[2]; String longitude =
                     * retList[3];
                     * 
                     * System.out.println("纬度"+ latitude);
                     * System.out.println("经度"+ longitude);
                     */
                    if (retList.length > 2 && ("200".equals(retList[0]))) {
                        latLng[0] = retList[2];
                        latLng[1] = retList[3];
                    }
                }
                insr.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return latLng;
    }