百度地图定位api获取的获取经纬度api我怎么获取使用

百度地图api获取经纬度和城市名称
想集成百度API定位需要完成以下步骤:
1:注册开发者
3:下载jar包
4:代码集成
先看下效果:
1:注册开发者
最好提前申请,审核需要1,2天
本人用的是 Studio,所以用命令行查看SHA1码
3:下载jar包
只需下载定位功能的开发包即可
4:代码集成(详细可见官方讲解,以下代码以简洁实用为主)
package com.union.roid.
import android.app.A
import android.os.B
import android.util.L
import com.baidu.location.BDL
import com.baidu.location.BDLocationL
import com.baidu.location.LocationC
import com.baidu.location.LocationClientO
public class MainActivity extends Activity {
public LocationClient mLocationClient =
public BDLocationListener myListener = new MyLocationListener();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationClient = new LocationClient(getApplicationContext());//声明LocationClient类
mLocationClient.registerLocationListener(myListener);//注册监听函数
LocationClientOption option = new LocationClientOption();//设置请求参数
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//设置定位模式
option.setCoorType(bd09ll);//返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(5000);//设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);//返回的定位结果包含地址信息
option.setNeedDeviceDirect(true);//返回的定位结果包含手机机头的方向
mLocationClient.setLocOption(option);
mLocationClient.start();//启动请求
if (mLocationClient != null && mLocationClient.isStarted())
mLocationClient.requestLocation();
Log.d(Location, locClient is null or not started);
public class MyLocationListener implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
if (location == null)
StringBuffer sb = new StringBuffer(256);
sb.append(time : );
sb.append(location.getTime());
sb.append(
error code : );
sb.append(location.getLocType());
sb.append(
latitude : );
sb.append(location.getLatitude());
sb.append(
lontitude : );
sb.append(location.getLongitude());
sb.append(
radius : );
sb.append(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation) {
sb.append(
speed : );
sb.append(location.getSpeed());
sb.append(
satellite : );
sb.append(location.getSatelliteNumber());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
sb.append(
addr : );www.2cto.com
sb.append(location.getAddrStr());
Log.v(---&, =========);
Log.v(---&, sb.toString());拒绝访问 | wangbaiyuan.cn | 百度云加速
请打开cookies.
此网站 (wangbaiyuan.cn) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(42f9afb-ua98).
重新安装浏览器,或使用别的浏览器下次自动登录
现在的位置:
& 综合 & 正文
利用百度地图Geocoding API获取特定地区或地址的经纬度信息
Geocoding API 是百度提供的服务接口,主要是用于提供从地址解析到经纬度坐标或者从经纬度坐标解析到地址的转换服务,用户可以通过发送请求就可以接收到JSON或者XML格式的返回数据。
网络上大部分提供的代码啊,解决思想啊都是以google map为标准的,其实他们的解决思想都是异曲同工的。在此,发一个链接先让你了解了解这个百度地图API&Web服务API&Geocoding API v2.0借口思路。。。
http://developer.baidu.com/map/webservice-geocoding.htm#.E6.9C.8D.E5.8A.A1.E5.9C.B0.E5.9D.80
Geocoding API地址解析就是获取经纬度数据,根据地址以及城市名称这两个参数来调用。以下是一个关于地理编码的简单示例。发送一个地址参数请求,返回该地址对应的地理坐标。发送请求的url如下:
http://api.map.baidu.com/geocoder/v2/?ak=2ae3fb29e59a69b18407&callback=renderOption&output=xml&address=文化路97号&city=郑州市
这个就是请求时的百度地图Geocoding API服务地址,诸如此类形式。ak就是密钥,有百度账号你就能获取。其他的就没什么说的,是接收JSON格式的数据还是XML格式的数据,随自己喜欢,但懂得在自己的代码中变通。。。。
说实在的,刚接触这个东西,也没有什么头绪,就七八乱糟的在百度上云游了一番,找了好多链接,有js的,有.net的,什么都有,有看懂的也要不了解的。但不过学习嘛,总归要靠自己,对于编程用一句话来说:那就是站在前人的肩膀上,思索!!!!
对于今天所说的话题,这个链接给了我很多启示,非常感谢!http://www.cnblogs.com/liuhaorain/archive//2334018.html 希望也对您有所帮助...
我是获取xml格式的数据,测试代码如下:
static void Main(string[] args)
Console.WriteLine("请输入标准的地址信息...");
string fulladress = Convert.ToString(Console.ReadLine());
Console.WriteLine("请输入城市名称...");
string cityname = Convert.ToString(Console.ReadLine());
WebClient client = new WebClient();//webclient客户端对象
string url = "http://api.map.baidu.com/geocoder/v2/?ak=2ae3fb29e59a69b18407&callback=renderOption&output=xml&address="+fulladress+"&city="+cityname+"";
client.Encoding = Encoding.UTF8;//编码格式
string responseTest = client.DownloadString(url);//下载xml响应数据
XmlDocument doc = new XmlDocument();//创建XML文档对象
if (!string.IsNullOrEmpty(responseTest))
doc.LoadXml(responseTest);//加载xml字符串
//获取状态信息
string xpath = @"GeocoderSearchResponse/status";
XmlNode node = doc.SelectSingleNode(xpath);
string status = node.InnerText.ToString();
if (status == "0")
//获取坐标信息
xpath = @"GeocoderSearchResponse/result/location";
node = doc.SelectSingleNode(xpath);
string loc = node.InnerXml.ToString();
doc.Save(@"D:\location.xml");
Console.WriteLine("坐标:{0}", loc);//输出坐标信息
Console.Read();
这段代码我有必要说一下,请求的地址url按代码中的形式即可。发送请求之后,当然得响应请求返回数据string responseTest = client.DownloadString(url);//下载xml响应数据。。。
加载响应数据后,第一先判断状态,决定是否返数据。第二就是获取坐标信息,这比较关键,很多都不知道怎么改,其实就是获取您想要的数据在xml文档中的路径,就是它:
xpath";而Google map 缺是不一样,xpath = @"GeocodeResponse/result/formatted_address";这两个路径其实就是根节点不一样。。。
string loc = node.InnerXml.ToString();这句代码是获取location节点下的子节点数据,包括lat与lng,经纬度。想说的是node的属性,
1.InnerText获取或设置节点及其所有子节点的串联值,如果您选择这个属性,获取的经纬度的值就是一行不分开,如39.3945
2.InnerXml获取或设置仅代表该节点的子节点的标记,结果是&lat&39.910093&/lat& &lng&116.403945&/lng&
最后呢,说一点,如果您想把返回的数据保存到本地,如 doc.Save(@"D:\location.xml"); 这样可以获取数据,以便有其他的用处。
一家之言,仅供参考,共同学习,共同进步,谢谢!!!
【上篇】【下篇】请问怎么获取这个 测试的(百度地图API) 返回的经纬度?
<a data-traceid="question_detail_above_text_l&&
这是html代码,使用百度地图的API ,输入一个地址,获取 改地址的经纬度,直接复制到html文件中 查看就可以了。
&html xmlns="http://www.w3.org/1999/xhtml"&
&title&根据地址查询经纬度&/title&
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"&&/script&
&body style="background:#CBE1FF"&
&div style="width:730margin:"&
要查询的地址:&input id="text_" type="text" value="北京市东城区天安门广场" style="margin-right:100"/&
查询结果(经纬度):&input id="result_" type="text" /&
&input type="button" value="查询" onclick="searchByStationName();"/&
&div id="container"
style="position:
margin-top:30
width: 730
height: 590
overflow:"&
&script type="text/javascript"&
var map = new BMap.Map("container");
map.centerAndZoom("北京", 12);
map.enableScrollWheelZoom();
//启用滚轮放大缩小,默认禁用
map.enableContinuousZoom();
//启用地图惯性拖拽,默认禁用
map.addControl(new BMap.NavigationControl());
//添加默认缩放平移控件
map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件
map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT }));
//右下角,打开
var localSearch = new BMap.LocalSearch(map);
localSearch.enableAutoViewport(); //允许自动调节窗体大小
function searchByStationName() {
map.clearOverlays();//清空原来的标注
var keyword = document.getElementById("text_").
localSearch.setSearchCompleteCallback(function (searchResult) {
var poi = searchResult.getPoi(0);
*获取经纬度
document.getElementById("result_").value = poi.point.lng + "," + poi.point.
map.centerAndZoom(poi.point, 18);
var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat));
// 创建标注,为要查询的地方对应的经纬度
map.addOverlay(marker);
var content = document.getElementById("text_").value + "&br/&&br/&经度:" + poi.point.lng + "&br/&纬度:" + poi.point.
var infoWindow = new BMap.InfoWindow("&p style='font-size:14'&" + content + "&/p&");
marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });
// marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
localSearch.search(keyword);
示例:&br/&
山西省太原市并州南路47号&br/&
广东省深圳市东门北路1017号&br/&
北京市海淀区永定路69号&br/&
&br/&&br/&&br/&&br/&
效果如下:
但是我想的是 在 java程序 中能直接获取到 返回的 经纬度,或者说 我想最后实现的是 程序中 通过地址 抓取到 改地址 经纬度
但是 页面中 是 使用 获取baidu的API 返回的 对象的属性
而我看了 这个页面的&所有的网络连接,也没有 发现哪个 链接 直接返回了 经纬度,看来是 返回 对象的形式。
这样的话 返回的数据中没有,因为使用 js 写入对 页面中的,页面源码 也看不到 ,那怎么才能获取 到这个 经纬度呢???
百度有api的,不要从页面上取
--- 共有 1 条评论 ---
你说的是 程序中的api,还是 页面的js的api,如果是js的,这个就是啊
百度有API接口,直接调用就可以了,不用通过js来获取
--- 共有 1 条评论 ---
是在程序里获取的吗?没找到啊,能给个地址吗?百度地图api_百度知道
百度地图api
我有更好的答案
这个错误是& Bmap.map 不是一个构造函数。造成这种错误的原因主要是 没有正常加载 百度地图api 导致的原因有以下几种。使用同步加载,已经加载成功,但是Bmap 这个变量名被别的地方使用使用异步加载,但是由于 有时候百度给的这个接口网速非常的慢,所以等你调用函数的时候 还没有加载完, 就会出现这种情况。出现这些情况 的解决方法是尽量不要使用 全局变量。 更不能污染库的接口在加载百度地图api的url后面 加上& ?callback=loadMap然后声明loadMap这个全局变量& &window.loadMap = function() {}在这个回调函数里面初始化执行 你所有关于地图的方法
采纳率:96%
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 高德api获取经纬度 的文章

 

随机推荐