java

位置:IT落伍者 >> java >> 浏览文章

java如何通过google map api实现地址解析


发布日期:2021年02月20日
 
java如何通过google map api实现地址解析

地址解析就是将地址(如广东省广州市)转换为地理坐标(如经度纬度)的过程google map api提供两种方法实现地址解析

第一种是通过使用 GClientGeocoder 对象来实现大家可以参考google map api的相关文档以下是摘自google的相关代码

var map = new GMap(documentgetElementById(map_canvas));

var geocoder = new GClientGeocoder();

function showAddress(address) {

geocodergetLatLng(

address

function(point) {

if (!point) {

alert(无法解析: + address);

} else {

mapsetCenter(point );

var marker = new GMarker(point);

mapaddOverlay(marker);

markeropenInfoWindowHtml(address);

}

}

);

}

第二种方法就是通过HTTP请求直接访问调用参数等相关说明请参考CN/apis/maps/documentation/l

而通过java实现的方法如下

/**

* 利用googlemap api 通过 HTTP 进行地址解析

* @param address 地址

* @return HTTP状态代码精确度(请参见精确度常数)纬度经度

*/

private String getLatlng(String address){

String ret = ;

if(address != null && !addressequals()){

try {

address = URLEncoderencode(addressUTF);//进行这一步是为了避免乱码

} catch (UnsupportedEncodingException e) {

loggererror(转码失败 e);

}

String[] arr = new String[];

arr[] = address;

arr[] = OUTPUT;

arr[] = SENSOR;

arr[] = KEY;

String url = MessageFormatformat({}&output={}&sensor={}&key={}arr);

URL urlmy = null;

try {

urlmy = new URL(url);

HttpURLConnection con = (HttpURLConnection) urlmyopenConnection();

consetFollowRedirects (true );

consetInstanceFollowRedirects(false );

nnect();

BufferedReader br = new BufferedReader(new InputStreamReader(congetInputStream()UTF));

String s = ;

StringBuffer sb = new StringBuffer();

while ((s = brreadLine()) != null ) {

sbappend(s+\r\n);

}

ret = +sb;

} catch (MalformedURLException e) {

loggererror(通过http方式获取地址信息失败 e);

} catch (IOException e) {

loggererror(文件读取失败 e);

}

}

return ret;

}

大家可以通过测试页面进行测试

               

上一篇:用Java实现HTTP断点续传功能(2)

下一篇:Java Script与Java Applet的综合运用(二)