- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
地址解析就是将地址(如:广东省广州市)转换为地理坐标(如经度:113.26442,纬度:23.129074)的过程。google map api提供两种方法实现地址解析。
第一种,是通过使用 GClientGeocoder 对象来实现,大家可以参考google map api的相关文档,以下是google的相关代码
var map = new GMap2(document.getElementById("map_canvas"));
var geocoder = new GClientGeocoder();
function showAddress(address) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert("无法解析:" + address);
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
}
);
}
第二种方法,就是通过HTTP请求直接访问。调用参数等相关说明请参考http://code.google.com/intl/zh-CN/apis/maps/documentation/services.html
而通过java实现的方法如下
/**
* 利用googlemap api 通过 HTTP 进行地址解析
* @param address 地址
* @return HTTP状态代码,精确度(请参见精确度常数),纬度,经度
*/
private String getLatlng(String address){
String ret = "";
if(address != null && !address.equals("")){
try {
address = URLEncoder.encode(address,"UTF-8");//进行这一步是为了避免乱码
} catch (UnsupportedEncodingException e1) {
logger.error("转码失败", e1);
}|||
String arr = new String;
arr[0] = address;
arr[1] = OUTPUT;
arr = SENSOR;
arr = KEY;
String url = MessageFormat.format("http://maps.google.com/maps/geo?q={0}&output={1}&sensor={2}&key={3}",arr);
URL urlmy = null;
try {
urlmy = new URL(url);
HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();
con.setFollowRedirects (true );
con.setInstanceFollowRedirects(false );
con.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null ) {
sb.append(s+""r"n");
}
ret = ""+sb;
} catch (MalformedURLException e) {
logger.error("通过http方式获取地址信息失败", e);
} catch (IOException e) {
logger.error("文件读取失败", e);
}
}
return ret;
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>