确定路名、标志性建筑和商场名的经度纬度
来源:互联网 发布:苹果屏幕修复软件 编辑:程序博客网 时间:2024/05/17 08:34
现在经常需要根据用户提供的位置,提供一些和位置相关的信息。有时可以直接确定用户的经度和纬度,有时不一定可以确定用户的经度和纬度信息,用户是 通过输入一些路名、标志性建筑或是商场名等位置,但是我们的数据库可能并没有存法用户可能输入的这些位置信息的经度纬度,这时候可以使用一些地图提供的 API来确定,用户所输入的位置信息的经度和纬度。
我们使用百度地图提供的GeoCoding API实现从位置信息到经度纬度的转换,详细的使用说明可以参考GeoCoding API。我们这里做一个简单的演示 public String getGeoCode(String query) throws ClientProtocolException, IOException{
HttpClient httpClient = new DefaultHttpClient();
String url = geoCodeRequestUrl(query);
logger.log(Level.INFO, url);
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpClient.execute(httpget, responseHandler);//百度返回的经度纬度信息xml
logger.log(Level.INFO,"baidu response:"+responseBody);
return responseBody;
}
public String geoCodeRequestUrl(String query) throws UnsupportedEncodingException{
String url = WeChatConstant.BASEURL + "geocoder?address=" + URLEncoder.encode(query,"UTF-8") + "&key="
+ WeChatConstant.MAPKEY + "&output=" + WeChatConstant.OUTPUTFORMAT;
return url;
}
HttpClient httpClient = new DefaultHttpClient();
String url = geoCodeRequestUrl(query);
logger.log(Level.INFO, url);
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpClient.execute(httpget, responseHandler);//百度返回的经度纬度信息xml
logger.log(Level.INFO,"baidu response:"+responseBody);
return responseBody;
}
public String geoCodeRequestUrl(String query) throws UnsupportedEncodingException{
String url = WeChatConstant.BASEURL + "geocoder?address=" + URLEncoder.encode(query,"UTF-8") + "&key="
+ WeChatConstant.MAPKEY + "&output=" + WeChatConstant.OUTPUTFORMAT;
return url;
}
使用JUnit进行测试
@Test
public void testGeoCode() throws Exception {
BaiduMapService bms = new BaiduMapService();
String response = bms.getGeoCode("上地十街十号");
BaiduGeoCodeResponse res = BaiduGeoCodeResponse.getBaiduGeoCode(response);//解析xml
System.out.println(res.toString());
}
public void testGeoCode() throws Exception {
BaiduMapService bms = new BaiduMapService();
String response = bms.getGeoCode("上地十街十号");
BaiduGeoCodeResponse res = BaiduGeoCodeResponse.getBaiduGeoCode(response);//解析xml
System.out.println(res.toString());
}
输出的结果
<GeocoderSearchResponse>
<status>OK</status>
<result>
<location>
<lat>40.057098</lat>
<lng>116.307175</lng>
</location>
<precise>1</precise>
<confidence>80</confidence>
<level>道路</level>
</result>
</GeocoderSearchResponse>
BaiduGeoCodeResponse [lat=40.057098, lng=116.307175]
<status>OK</status>
<result>
<location>
<lat>40.057098</lat>
<lng>116.307175</lng>
</location>
<precise>1</precise>
<confidence>80</confidence>
<level>道路</level>
</result>
</GeocoderSearchResponse>
BaiduGeoCodeResponse [lat=40.057098, lng=116.307175]
原创文章,转载请注明: 转载自http://www.qiyadeng.com/
本文链接地址: 确定路名、标志性建筑和商场名的经度纬度
- 确定路名、标志性建筑和商场名的经度纬度
- GPS获取当前的经度和纬度
- Android 获取地理位置的经度和纬度
- Android 获取地理位置的经度和纬度
- Android 获取地理位置的经度和纬度
- 一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度
- 经度和纬度的确定
- Android获取经度和纬度
- 经度和纬度不同时,地球表面物体的转动
- 在Google地图上找到经度和纬度的方法
- Android 自带 获取地理位置的经度和纬度
- 深入理解地球的经度和纬度换算
- 腾讯地图获取地址的经度和纬度
- 纬线和纬度、经线和经度
- 对GoogleMap经度和纬度进行编码
- google map 看经度和纬度
- 根据地址获取经度和纬度
- 通过经度和纬度算出距离
- hdu 1536 SG函数模版题
- XMPP服务器比较
- 结合EF5.0讲MVC4(四)
- 不成熟的六个特征
- 最隐晦的程序设计指引
- 确定路名、标志性建筑和商场名的经度纬度
- vi/vim编辑器显示颜色
- 百练1019 Number Sequence
- Valid Number
- 我所了解的ios(2)
- CreateDialog和DialogBox
- VB学习第四周--字符函数验证
- 盲签名 blind signature 简介
- 解决eclipse中Errors running builder JavaScript Validator的问题