`
- 浏览:
10703 次
- 性别:
- 来自:
哈尔滨
-
[size=medium][size=x-small]package com.cjjsys.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.springframework.core.io.InputStreamResource;
import com.cjjsys.common.PropertiesUtils;
public class BaiduUtil {
public static final String KEY_1 = PropertiesUtils.getInstance().getValue("ak"); ;
// String key2 = "8ec6cd98bd56554407a207d597c0f3e5";
// String key3 = "be025dc280e1e3f7ffb95fe42a01fab2";
// String key4 = "327db7009617d6806b9c38e819ea06ac";
/**
* 返回输入地址的经纬度坐标
* key lng(经度),lat(纬度)
*/
public String getGeocoderLatitude(String lat,String lng){
System.out.println(lat+",lng:"+lng);
BufferedReader in = null;
try {
//将地址转换成utf-8的16进制
//address = URLEncoder.encode(address, "UTF-8");
// 如果有代理,要设置代理,没代理可注释
// System.setProperty("http.proxyHost","192.168.1.188");
// System.setProperty("http.proxyPort","3128");
//http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=json&pois=1
String uri="http://api.map.baidu.com/geocoder/v2/?ak="+KEY_1+"&callback=renderReverse&" +
"location="+lat+","+lng+"&output=json&pois=0";
//"http://api.map.baidu.com/geocoder?callback=renderReverse&location="+ address +"&output=json&pois=0&key="+ KEY_1
URL tirc = new URL(uri);
HttpURLConnection conn = (HttpURLConnection)tirc.openConnection();
conn.setRequestProperty("Content-Type", "text/html;charset=utf-8");
conn.setDoOutput(true);
//尝试链接5次,如果正确的话就跳出循环没如果连接超时就重新连接
for(int i = 0; i < 5; i ++){
conn.connect();
if(conn.getResponseCode() == 200)
break;
else if(conn.getResponseCode() == 408)
Thread.sleep(5);
};
System.out.println(conn.getResponseCode());
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String res;
StringBuilder sb = new StringBuilder("");
while((res = in.readLine())!=null){
sb.append(res.trim());
}
String str = sb.toString();
System.out.println(str);
Map<String,String> map = null;
if(str!=null&&str.split("formatted_address\"\\:\"")[1]!=null&& str.split("formatted_address\"\\:\"")[1].split("\"\\,")[0]!=null){
System.out.println(str.split("formatted_address\"\\:\"")[1].split("\"\\,")[0]);
return str.split("formatted_address\"\\:\"")[1].split("\"\\,")[0];
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(null!=in){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public static void main(String args[]){
BaiduUtil baiduUtil= new BaiduUtil();
//43.90637886442,lng:125.30130752475
String str = baiduUtil.getGeocoderLatitude("43.90637886442","125.30130752475");
}
}
[/size][/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在百度地图API中,我们可以使用`geocoding`服务将街道地址转换为经纬度坐标。 2. **反地理编码**:与地理编码相反,将坐标转换为地址的过程。当用户点击地图上的某个位置,我们可以获取到该位置的坐标,然后通过反...
在本案例中,"js百度地图api坐标地址标注功能"是指利用百度地图API来实现在地图上进行坐标定位并标注地址的功能。这个功能允许用户在地图上看到特定坐标点,并且这些标注可以具有交互性,如拖拽、改变大小、最小化、...
百度地图API提供了`geocoding`服务,可以将地址转换为经纬度坐标。使用`Geocoder`类的`getLocation`方法,可以获取到地址对应的地理位置信息,然后创建`Marker`进行标注。如果需要显示多个地址,只需多次调用`...
百度Geocoding API与Route Matrix API调用代码(Java源码).rar Java代码后台调用Route Matrix API v1.0;Route Matrix API v2.0;Geocoding API
在Java编程中,使用百度地图API来获取经纬坐标并实现图例显示是常见的地理信息系统(GIS)应用。本文将深入探讨这一主题,帮助初学者掌握关键知识点。 首先,要使用百度地图API,你需要在百度地图开放平台...
2. **历史轨迹回放**:用户可以输入一串预定义的地理位置坐标,或者上传已保存的轨迹数据,百度地图API会根据这些数据在地图上绘制出轨迹,并计算总里程。这种模式适合分析历史数据或者展示已经完成的路线。 在实现...
百度地图的定位接口URL通常为:`http://api.map.baidu.com/geocoding/v3/?ak=YOUR_AK&location=LONGITUDE,LATITUDE&output=json&pois=1`,其中`YOUR_AK`替换为你的AK,`LONGITUDE`和`LATITUDE`分别替换为你要查询的...
5. **坐标转地址**:利用百度地图API的`geocoding`服务,将经纬度转换为具体的省市区街道地址。这个过程通常涉及调用`BMap.Geocoder`对象的`getAddress`方法。 6. **展示地址**:将转换得到的地址信息显示在页面上...
百度地图会验证这些输入,并进行地理编码(geocoding)转换,确保坐标的有效性。 2. **路径搜索算法**:百度地图采用先进的算法(如Dijkstra算法或A*搜索算法)来计算从起始点到目的地的最短或最快路径。这些算法...
总的来说,这个坐标标注控件展示了如何结合百度地图API来定制地图应用,满足特定的业务需求,比如用户定位、交互式标注和获取详细地址信息。这样的组件在诸如物流跟踪、本地搜索、导航或者基于位置的服务等领域都有...
本资源聚焦于“百度地图搜索获取坐标”,我们将深入探讨这个主题,了解如何利用JavaScript与百度地图API交互,实现地图上的位置搜索和坐标获取。 首先,我们需要引入百度地图的JavaScript库。在HTML文件中,添加...
要实现地理编码(将地址转换为坐标),可以使用百度地图的Geocoding API。以下是一个简单的示例: ```csharp using System.Net; using Newtonsoft.Json.Linq; public async Task<BaiduLocation> GetLocationAsync...
在Java编程环境中,批量获取百度地图坐标是一项常见的地理信息系统(GIS)任务,它涉及到网络请求、数据解析以及地理编码技术。下面将详细讲解这个过程涉及的知识点。 首先,我们需要了解百度地图API。百度地图提供...
在这段代码中,`YOUR_BAIDU_API_KEY`需要替换为你的百度地图API密钥,`address`则是你要查询的地址。 获取到百度地图的经纬度后,接下来需要将其转换为腾讯地图的坐标。腾讯地图也提供了类似的定位API,但同时也...
本篇文章将详细讲解如何使用C#语言调用高德、百度和Google地图的API来实现这些功能,并提供相关源码的解读。 首先,让我们来看一下C#与高德地图API的结合。高德地图提供了丰富的SDK和API,包括JavaScript、Android...
在WinPhone应用中,你可以使用`Geolocator`类获取设备的GPS坐标,然后通过POST请求将这些坐标发送到百度地图API的反地理编码接口,以获取具体的地址信息。 ```csharp Geolocator geolocator = new Geolocator(); ...
并调用百度地图的反向地理编码接口,如`GeocodingApi.reverseGeocode(new GeoCodeOption().location(new LatLng(latitude, longitude)))`,这里的`latitude`和`longitude`是需要转换的坐标。 返回的结果通常是一个...
在百度地图API中,开发者可以通过设置线样式为虚线来连接多个坐标点,例如表示路线、边界或者非连续的地理特征。这有助于用户更清晰地理解地图上的信息,例如在导航中区分主路与辅路,或者在展示复杂地理数据时提供...
总的来说,通过C#封装百度Web服务的Geocoding API和坐标转换功能,开发者可以方便地在自己的应用程序中集成百度地图的功能,进行地址解析、坐标转换等操作,从而提升用户体验并实现更精准的位置服务。在实际开发中,...
百度地图API提供了GeocodingAPI和ReverseGeocodingAPI,源码中会有对应的接口实现,帮助开发者实现地址与坐标之间的相互转换。 此外,**覆盖物和标注**是地图上的重要元素。开发者可以通过Marker、InfoWindow等类...