private string GetAddress(string lng, string lat)
{
try
{
string url = @"http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=" + lat + "," + lng + @"&output=xml&pois=1";
WebRequest request = WebRequest.Create(url);
request.Method = "POST";
XmlDocument xmlDoc = new XmlDocument();
string sendData = xmlDoc.InnerXml;
byte[] byteArray = Encoding.Default.GetBytes(sendData); Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, , byteArray.Length);
dataStream.Close(); WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, System.Text.Encoding.GetEncoding("utf-8"));
string responseXml = reader.ReadToEnd(); XmlDocument xml = new XmlDocument();
xml.LoadXml(responseXml);
string status = xml.DocumentElement.SelectSingleNode("status").InnerText;
if (status == "")
{ XmlNodeList nodes = xml.DocumentElement.GetElementsByTagName("formatted_address");
if (nodes.Count > )
{
return nodes[].InnerText;
}
else
return "未获取到位置信息,错误码3";
}
else
{
return "未获取到位置信息,错误码1";
}
}
catch (System.Exception ex)
{
return "未获取到位置信息,错误码2";
}
}

url中的参数:

参数 是否必须 默认值 格式举例 含义
coordtype bd09ll bd09ll 百度经纬度坐标 坐标的类型,目前支持的坐标类型包括:bd09ll(百度经纬度坐标)、gcj02ll(国测局经纬度坐标)、wgs84ll( GPS经纬度)
location 38.76623,116.43213 lat<纬度>,lng<经度> 根据经纬度坐标获取地址
pois 0 0 是否显示指定位置周边的poi,0为不显示,1为显示。当值为1时,显示周边100米内的poi。

运行方法返回的结果:

北京市海淀区中关村大街27号1101-08室

从百度api返回的结果:

  <?xml version="1.0" encoding="utf-8" ?>
- <GeocoderSearchResponse>
<status>0</status>
- <result>
- <location>
<lat>39.983424051248</lat>
<lng>116.32298703399</lng>
</location>
<formatted_address>北京市海淀区中关村大街27号1101-08室</formatted_address>
<business>中关村,人民大学,苏州街</business>
- <addressComponent>
<streetNumber />
<street>中关村大街</street>
<district>海淀区</district>
<city>北京市</city>
<province>北京市</province>
</addressComponent>
<cityCode>131</cityCode>
- <pois>
- <poi>
<addr>中关村西区南侧(中关村科技园区内)</addr>
<distance>0.050000</distance>
<name>中关村大厦</name>
<poiType>办公大厦,商务大厦</poiType>
<tel>(010)82856666</tel>
<zip>100000</zip>
- <point>
<x>116.32298658484</x>
<y>39.983423843929</y>
</point>
</poi>
- <poi>
<addr>中关村大街27号</addr>
<distance>0.050000</distance>
<name>眉州东坡酒楼中关村店</name>
<poiType>中餐馆,餐饮</poiType>
<tel>(010)82856948</tel>
<zip />
- <point>
<x>116.32298658484</x>
<y>39.983423843929</y>
</point>
</poi>
- <poi>
<addr>中关村大街27号</addr>
<distance>0.050000</distance>
<name>中国人民财产保险中关村营业部</name>
<poiType>中国人民财产保险,保险公司,金融</poiType>
<tel>(010)82856779</tel>
<zip>100000</zip>
- <point>
<x>116.32298658484</x>
<y>39.983423843929</y>
</point>
</poi>
- <poi>
<addr>北京市海淀区</addr>
<distance>94.432081</distance>
<name>光合作用书房</name>
<poiType>图书音像,购物</poiType>
<tel />
<zip />
- <point>
<x>116.32239334388</x>
<y>39.983890240676</y>
</point>
</poi>
- <poi>
<addr>中关村大街27号</addr>
<distance>42.195731</distance>
<name>建行中关村支行</name>
<poiType>中国建设银行,银行,金融</poiType>
<tel />
<zip>100000</zip>
- <point>
<x>116.32292037972</x>
<y>39.983711118168</y>
</point>
</poi>
- <poi>
<addr>北京市海淀区</addr>
<distance>62.342644</distance>
<name>海淀医院-激光整形美容部</name>
<poiType>美容美发,生活服务</poiType>
<tel />
<zip />
- <point>
<x>116.32317954086</x>
<y>39.98301950182</y>
</point>
</poi>
- <poi>
<addr>中关村大街19号新中关购物中心1楼</addr>
<distance>112.983688</distance>
<name>星巴克新中关店</name>
<poiType>星巴克,咖啡厅,休闲餐饮,餐饮</poiType>
<tel>(010)82486056</tel>
<zip />
- <point>
<x>116.32218215226</x>
<y>39.983899777278</y>
</point>
</poi>
</pois>
</result>
</GeocoderSearchResponse>

xml说明:

名称 类型 说明
status constant 返回结果状态值, 成功返回0,其他值请查看附录
location lat 纬度坐标
lng 经度坐标
formatted_address 结构化地址信息
business 所在商圈信息,如 "人民大学,中关村,苏州街"
addressComponent city 城市名
district 区县名
province 省名
street 街道名
street_number 街道门牌号
pois(周边poi数组) addr 地址信息
cp 数据来源
distance 离坐标点距离
name poi名称
poiType poi类型,如’ 办公大厦,商务大厦’
point poi坐标{x,y}
tel 电话
uid poi唯一标识
zip 邮编

附录:

返回码 定义
0 正常
1 服务器内部错误
2 请求参数非法
3 权限校验失败
4 配额校验失败
5 ak不存在或者非法
101 服务禁用
102 不通过白名单或者安全码不对
2xx 无权限
3xx 配额错误

.net根据经纬度获取地址(百度api)的更多相关文章

  1. JS根据经纬度获取地址信息

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. C#百度api 根据经纬度获取地址

    public string GetAddress(string lat, string lng) { try { string res = ""; string url = @&q ...

  3. Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串

    接上篇 http://www.cnblogs.com/inkheart0124/p/3536322.html 1,在地图上打个标记 private MarkerOptions mMarkOption; ...

  4. java根据经纬度获取地址

    public class GetLocation { public static void main(String[] args) { // lat 39.97646 //log 116.3039 S ...

  5. java工具类(一)之服务端java实现根据地址从百度API获取经纬度

    服务端java实现根据地址从百度API获取经纬度 代码: package com.pb.baiduapi; import java.io.BufferedReader; import java.io. ...

  6. C# 百度API地址坐标互相转换

    通过C#代码将地址字符串转为经纬度坐标,或者将经纬度转为具体的地址字符串,在不通外网的项目中是有需求的. 具体步骤: 一.创建BaiduMapHelper,用于定义地址信息和请求. public st ...

  7. 根据百度API获得经纬度,然后根据经纬度在获得城市信息

    package com.pb.baiduapi; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...

  8. Java根据百度API获得经纬度,然后根据经纬度在获得城市信息

    原文:http://www.open-open.com/code/view/1421032487812 import java.io.BufferedReader; import java.io.IO ...

  9. 调用百度API接口 正解析地址和逆解析

    地址解析(结构化地址 解析得到 经纬度): public void SaveLocation(DataRequest<Location> request, DataResponse< ...

随机推荐

  1. 用JavaScript将数字转换为大写金额(收藏)

    (非原创, 来自网络,仅作收藏) var digitUppercase = function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹 ...

  2. H5 Js图片转base64编码

    <!Doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. 深入分析ReentrantLock公平锁和非公平锁的区别 (转)

    在ReentrantLock中包含了公平锁和非公平锁两种锁,通过查看源码可以看到这两种锁都是继承自Sync,而Sync又继承自AbstractQueuedSynchronizer,而AbstractQ ...

  4. PoPo数据可视化周刊第4期

    PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容.不想错过可视化领域的精彩内容, 就快快关注我们吧 :) 微信号:popodv_com   由于国庆节的原因,累计 ...

  5. 20个实用便捷的CSS3工具、库及实例

    编者按:坊间传闻,有本CSS的高手炼成秘籍在江湖失传已久,书中所载,多为最新的惊人技术与实例示范,是为集大成者,一旦学成,代码效率猛增,功力提升数倍,今日偶获,不敢怠慢,赶紧发到优设,望人人受益.说人 ...

  6. 使用laravel框架与phantomjs实现截屏功能

    在网上看到的关于phantomjs实现截屏功能很多都是与node结合在一起使用,并需要输入命令才能执行.因此我想要实现输入网址即可截屏并输出图片的功能.示例:http://120.77.171.182 ...

  7. MySQL5.5登陆

    通过cmd登陆 mysql -h localhost -P 3306 -u root -p123456 h后面跟的是域名或IP地址:大写的P后面跟的是端口号:u后面跟的是用户名:小写的p后面跟的是密码 ...

  8. 整理一下最近Android面试的提问

    java相关: 1. public protect private default关键字有什么区别? public:表示可以在任何一个类中被访问: protect:表示可以在自身.子类以及同一包下的类 ...

  9. 毕向东_Java基础视频教程第20天_IO流(1~4)

    第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件 ...

  10. Linux常用命令(二)————压缩+解压

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...