/// <summary>
/// 百度API从经纬度坐标到地址的转换服务
/// </summary>
/// <param name="lng"></param>
/// <param name="lat"></param>
/// <returns></returns>
public string GetAddress(string lng, string lat)
{

string strUrl = @"http://api.map.baidu.com/geocoder/v2/?ak=ELYtYXEH1WmDrK1wDsEWRNkGviRL0ZEo&callback=renderReverse&location=" + lat + "," + lng + @"&output=json&pois=0";
//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, 0, byteArray.Length);
//dataStream.Close();

//WebResponse response = request.GetResponse();
//dataStream = response.GetResponseStream();
//StreamReader reader = new StreamReader(dataStream, System.Text.Encoding.GetEncoding("utf-8"));

string strResult;
try
{
WebRequest request = WebRequest.Create(strUrl);
request.Timeout = 12000;
request.Method = "POST";

HttpWebResponse HttpWResp = (HttpWebResponse)request.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader reader = new StreamReader(myStream,System.Text.Encoding.GetEncoding("utf-8"));
strResult = reader.ReadToEnd();

//StringBuilder strBuilder = new StringBuilder();
//while (-1 != reader.Peek())
//{
// strBuilder.Append(reader.ReadLine());
//}
//strResult = strBuilder.ToString();
}
catch (Exception exp)
{
strResult = "错误:" + exp.Message;
}
return strResult;
}

解析百度API返回的Json串方法如下:

#region 解析Json
//调用百度API接口
string strJosn = GetAddress(reservation.Longitude.ToString(), reservation.Latitude.ToString());
strJosn = strJosn.Remove(strJosn.Length - 1).Remove(0, 29);
JObject jo = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(strJosn);
string Status = jo["status"].ToString();
if (Status == "0")
{
//地址拼接
strJosn = jo["result"]["formatted_address"].ToString() + jo["result"]["sematic_description"].ToString();
}
else if (Status == "1")
{
result.IsSuccess = false;
result.MsgCode = "0";
result.Message = "服务器内部错误!";
}
else if (Status == "2")
{
result.IsSuccess = false;
result.MsgCode = "0";
result.Message = "请求参数非法!";
}
else if (Status == "101")
{
result.IsSuccess = false;
result.MsgCode = "0";
result.Message = "服务禁用!";
}

#endregion

百度API从经纬度坐标到地址的转换服务的更多相关文章

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

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

  2. 百度api:根据经纬度获取地理位置信息

    调用百度api,根据经度和纬度获取地理位置信息,返回Json. C#代码: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Syste ...

  3. 利用百度API(js),怎样通过地址获取经纬度

    根据经纬度找到具体地址:http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥如:http:// ...

  4. 调用百度API返回经纬度

    后台调用百度API接口生成: import java.io.BufferedReader; import java.io.IOException;import java.io.InputStreamR ...

  5. 地图经纬度坐标与屏幕坐标的转换(android版)

    我们在开发GIS系统的时候,首先要解决的就是地图的可视化问题,这个问题的关键就在于如何把地图的坐标转换成屏幕坐标,然后才到渲染着色.标注等.以下以wgs84经纬度坐标为基准,介绍一下地图经纬度坐标与屏 ...

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

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

  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获取经纬度使用

    首先通过百度地图,注册账号,然后申请密钥 http://lbsyun.baidu.com/apiconsole/key 搜索某个关键字 http://api.map.baidu.com/place/v ...

随机推荐

  1. vs code theme Seti monokai

    http://www.jianshu.com/p/80e983201f86 Seti-UI主题是一款极具传奇色彩的主题

  2. iOS Framework: Introducing MKNetworkKit (MKNetworkKit介绍,入门,翻译)

    这片文章也有塞尔维亚-克罗地亚语(由Jovana Milutinovich翻译)和日语(由@noradaiko翻译) 如果有个一个网络库能够自动的为你处理cache该有多好啊. 如果有一个网络库能够在 ...

  3. IOS 开发推荐经常使用lib

    1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说.程序中常常要进行网络请求,请求到得通常是 json 字符串.我们通常会建一个 ...

  4. flexible.js + makegrid.js 自适应布局

    一,flexible.js 的使用方式: (一),引用方式 1,引用cdn地址 <script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3. ...

  5. PCIE、UART、HDA、I2C、SMBUS、SPI、eSPI、USB、PS2、CAN、SDIO等数据传输协议简介

    M.2 wife一般支持USB.SDIO.PCIE三种传输 1.摄像头 (1)MIPI CSI (2)USB mipi摄像头模组IC简单便宜(小),应为一般把ADC解码在CPU端. MIPI摄像头简介 ...

  6. Linux 中如何查询和卸载已安装的软件

    Linux 中如何查询和卸载已安装的软件 Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序” 来实现.与其相 ...

  7. Java爬虫快速开发工具uncs的部署攻略

    写在前面 uncs是java快速开发爬虫的工具,简单便捷,经过大量版本迭代和生产验证,可以适用大多数网站,推荐使用. 一.基本用法 1.1 开发包获取 目前只能在公司内网maven服务器获取到 < ...

  8. (转载)JavaScript递归查询 json 树 父子节点

    在Json中知道某个属性名,想要确定该属性在Json树具体的节点,然后进行操作还是很麻烦的 可以用以下方法找到该属性所在的节点,和父节点 <!DOCTYPE html> <html ...

  9. ZeroClipboard—ZeroClipboard的使用

    1.ZeroClipboard的作用: 借助Zero Clipboard能够简单高速地将内容拷贝到剪贴板,相似点击某些网页中"复制"按钮后复制对应区域的内容. 2.ZeroClip ...

  10. 搭建React Native开发环境

    搭建React Native开发环境 本文档是Mac下搭建的环境,针对的目标平台不同,以及开发 iOS 和 Android 的不同,环境搭建也有差异. Github地址:https://github. ...