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; }