C# 百度API地址坐标互相转换
通过C#代码将地址字符串转为经纬度坐标,或者将经纬度转为具体的地址字符串,在不通外网的项目中是有需求的。
具体步骤:
一、创建BaiduMapHelper,用于定义地址信息和请求。
public static class BaiduMapHelper
{ #region 常量
//百度地图Api Ak
public const string BaiduAk = "你的百度Key"; /// <summary>
/// 经纬度 逆地理编码 Url 需要Format 0.ak 1.经度 2.纬度
/// </summary>
private const string BaiduGeoCoding_ApiUrl = "http://api.map.baidu.com/geocoder/v2/?ak={0}&location={1},{2}&output=json&pois=0"; /// <summary>
/// 0.地址字符串 1.ak
/// </summary>
private const string BaiduGeoCoding_ApiCoord = "http://api.map.baidu.com/geocoder/v2/?ak={0}&address={1}&output=json";
#endregion #region 地址转换器
/// <summary>
/// 根据地址信息 获取 经纬度
/// </summary>
/// <param name="addressStr">地址字符串</param>
/// <returns></returns>
public static BaiDuGeoCoding AddressToCoordinate(string addressStr)
{
string url = string.Format(Baidu_GeoCoding_ApiCoord, addressStr);
var model = HttpClientHelper.GetResponse<BaiDuGeoCoding>(url);
return model;
} /// <summary>
/// 根据经纬度 获取 地址信息
/// </summary>
/// <param name="lat">经度</param>
/// <param name="lng">纬度</param>
/// <returns></returns>
public static BaiDuGeoCoding CoordinateToAddress(object lat, string lng)
{
string url = string.Format(Baidu_GeoCoding_ApiUrl, lat, lng);
var model = HttpClientHelper.GetResponse<BaiDuGeoCoding>(url);
return model;
}
#endregion #region 辅助格式化
/// <summary>
/// /// <summary>
/// 经纬度 逆地理编码 Url 需要Format 0.经度 1.纬度
/// </summary>
/// </summary>
public static string Baidu_GeoCoding_ApiUrl
{
get
{
return string.Format(BaiduGeoCoding_ApiUrl, BaiduAk, "{0}", "{1}");
}
} /// <summary>
/// 地址字符串
/// </summary>
public static string Baidu_GeoCoding_ApiCoord
{
get
{
return string.Format(BaiduGeoCoding_ApiCoord, BaiduAk, "{0}");
}
} #endregion #region model
public class BaiDuGeoCoding
{
public int Status { get; set; }
public Result Result { get; set; }
} public class Result
{
public Location Location { get; set; } public string Formatted_Address { get; set; } public string Business { get; set; } public AddressComponent AddressComponent { get; set; } public string CityCode { get; set; }
} public class AddressComponent
{
/// <summary>
/// 省份
/// </summary>
public string Province { get; set; }
/// <summary>
/// 城市名
/// </summary>
public string City { get; set; } /// <summary>
/// 区县名
/// </summary>
public string District { get; set; } /// <summary>
/// 街道名
/// </summary>
public string Street { get; set; } public string Street_number { get; set; } } public class Location
{
public string Lng { get; set; }
public string Lat { get; set; }
}
#endregion
}
二、创建HttpClientHelper,用于操作具体请求,返回响应数据。
public static class HttpClientHelper
{
/// <summary>
/// GET请求
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <returns></returns>
public static T GetResponse<T>(string url) where T : class, new()
{
string returnValue = string.Empty;
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
webReq.Method = "GET";
webReq.ContentType = "application/json";
using (HttpWebResponse response = (HttpWebResponse)webReq.GetResponse())
{
using (StreamReader streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
returnValue = streamReader.ReadToEnd();
T result = default(T);
result = JsonConvert.DeserializeObject<T>(returnValue);
return result;
}
}
}
}
三 、获取
调用相应的发放获取数据
BaiduMapHelper.AddressToCoordinate(地址串);
BaiduMapHelper.CoordinateToAddress(经纬度);
尊重他人劳动成果,参考原文https://www.cnblogs.com/genesis/p/6644895.html
C# 百度API地址坐标互相转换的更多相关文章
- 百度地图热力图--批量地址转换应用(基于百度api)
需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...
- 百度API从经纬度坐标到地址的转换服务
/// <summary> /// 百度API从经纬度坐标到地址的转换服务 /// </summary> /// <param name="lng"& ...
- .net根据经纬度获取地址(百度api)
private string GetAddress(string lng, string lat) { try { string url = @"http://api.map.baidu.c ...
- GPS坐标(WGS84)转换百度坐标(BD09) python测试
基础知识坐标系说明: WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系. GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统.由WGS84坐标系经加密后的坐标 ...
- java工具类(一)之服务端java实现根据地址从百度API获取经纬度
服务端java实现根据地址从百度API获取经纬度 代码: package com.pb.baiduapi; import java.io.BufferedReader; import java.io. ...
- 百度api查询多个地址的经纬度的问题
在使用百度api查询多个地址的经纬度的时候,由于百度api提供的经纬度查询方法是回调函数,并且后续操作必须等经纬度获取完成才能进行,问题就存在于怎么判断所有地点是否都回调完成了,问了之前的一个前端大佬 ...
- java根据地址获取百度API经纬度
java根据地址获取百度API经纬度(详细文档) public void getLarLng(String address) throws Exception { String ak = " ...
- Python + 百度Api 通过地址关键字获得格式化的地址信息
由于用户输入是千奇百怪的,除了格式语法不合要求之外的,即便是所谓的合法数据也是五花八门.尤其是地址,所有才由此文. 百度Api注册一个账号,创建一个应用后就会有一个`ak`的参数,就够了. Pytho ...
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
腾讯云图片鉴黄集成到C# 官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...
随机推荐
- vue项目启动报错You may use special comments to disable some warnings.
在build/webpack.base.conf.js文件中,注释或者删除掉:...(config.dev.useEslint ? [createLintingRule()] : []),
- Mybatis全部标签与解释说明
一.定义SQL语句 (1)select 标签的使用 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user ...
- Android多种方式实现相机圆形预览
效果图如下: 一.为预览控件设置圆角 为控件设置ViewOutlineProvider public RoundTextureView(Context context, AttributeSet at ...
- kvm虚拟化环境中的时区设置
guest OS时间保持 kvm技术是全虚拟化,guest OS并不需要做修改就可以直接运行,然而在计时方面却存在问题,guest OS计时的一种方式是通过时钟中断计数,进而换算得到,但host产生的 ...
- 阿里巴巴开源性能监控神器Arthas jvm
原文:https://www.cnblogs.com/testfan2019/p/11038791.html 如果问性能测试中最难的是哪部分,相信很多人会说“性能调优”.确实是这样,性能调优是一个非常 ...
- Win10任务栏卡死解决方法
有时,切换输入法,或者点击windows底部菜单,电脑鼠标会变成忙碌转圈圈的状态,无法操作底部菜单功能: 1. ctrl+shift+esc(或者ctrl+alt+delete)的方式调出任务管理器: ...
- [python]赶集网二手房爬虫插件【可用任意扩展】
最近应一个老铁的要求,人家是搞房产的,所以就写了这个二手房的爬虫,因为初版,所以比较简单,有能力的老铁可用进行扩展. import requests import os from bs4 impo ...
- jdk1.6文档官方下载资源
JDK1.6官方下载_JDK6官方下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin- ...
- C#调用一下CMD
C#程序调用CMD执行命令 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统.输入 ...
- Nginx页面图片错误 ERR_CONTENT_LENGTH_MISMATCH
现场:nginx代理的网站有的虚拟目录的图片无法正常显示,提示 ERR_CONTENT_LENGTH_MISMATCH,不断刷新页面图片一条一条的显示出来. 解决方法:找到nginx的缓存文件目录,c ...