/// <summary>
/// 高德地图调用帮助类
/// 更多详情请参考 高德api
/// </summary>
public class GaodeHelper
{
//高德平台申请的秘钥
public static string SecretKey = "申请的秘钥"; /// <summary>
/// 获取经纬度
/// </summary>
/// <param name="address"></param>
/// <param name="city"></param>
/// <returns></returns>
public static string GetGeocode(string address,string city)
{
string geocodeUrl = "http://restapi.amap.com/v3/geocode/geo?address={Address}&city={City}&output=json&key={SecretKey}"
.Replace("{SecretKey}", SecretKey)
.Replace("{Address}", address)
.Replace("{City}", city); string geocode = WebClientDownloadInfoToString(geocodeUrl);
geocode = GetLatitudeAndLongitude(geocode);
return geocode;
} /// <summary>
/// 获取城市之间的距离
/// </summary>
/// <param name="begin"></param>
/// <param name="beginCity"></param>
/// <param name="end"></param>
/// <param name="endCity"></param>
/// <returns></returns>
public static string GetDistance(string begin,string beginCity, string end, string endCity)
{
string origin = GetGeocode(begin,beginCity);
string destination = GetGeocode(end, endCity);
string driveUri = "http://restapi.amap.com/v3/direction/driving?key={SecretKey}&origin={Origin}&destination={Destination}"
.Replace("{SecretKey}", SecretKey)
.Replace("{Origin}", origin)
.Replace("{Destination}", destination); string result= WebClientDownloadInfo(driveUri);
//var gd = Newtonsoft.Json.JsonConvert.DeserializeObject<GaodeReturn>(result);
return result;
} private static string WebClientDownloadInfo(string uri)
{
string result = string.Empty;
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/xml;charset=UTF-8";
result = wc.DownloadString(uri);
}
return result;
} /// <summary>
/// 模拟请求
/// </summary>
/// <param name="uri"></param>
/// <returns></returns>
private static string WebClientDownloadInfoToString(string uri)
{
string result = string.Empty;
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/xml;charset=UTF-8";
result = wc.DownloadString(uri);
}
return result;
} /// <summary>
/// 解析返回的经纬度信息
/// </summary>
/// <param name="GeocodeJsonFormat"></param>
/// <returns></returns>
private static string GetLatitudeAndLongitude(string GeocodeJsonFormat)
{
JObject o = JObject.Parse(GeocodeJsonFormat);
string geocodes = (string)o["geocodes"][]["location"];
return geocodes;
}
}

C# 高德地图调用帮助类 GaodeHelper的更多相关文章

  1. objective-c高德地图时时定位

    这篇随笔是对上一遍servlet接口的实现. 一.项目集成高德地图 应为我这个项目使用了cocopods这个第三方库管理工具,所以只需要很简单的步骤,就能将高德地图集成到项目中,如果你没使用过这工具, ...

  2. Java 通过地址获取经纬度 - 高德地图

    一.添加依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-v ...

  3. 【原创】web端高德地图javascript API的调用

    关于第三放地图的使用,腾讯.百度.高德 具体怎么选择看你自己怎么选择了. 高德地图开放平台:http://lbs.amap.com/ 本次使用的是高德的javascript API http://lb ...

  4. java调用高德地图api实现通过ip定位访问者的城市

    所需东西:高德地图的key 注意:这个key是 web服务的key  和js的key不是一个key(若没有则自行创建,创建教程在文末) 高德地图的api文档:https://lbs.amap.com/ ...

  5. Android编程 高德地图 AMapLocationClientOption 类中 setWifiActiveScan过时

    高德地图中   定位包中有以下方法: AMapLocationClientOption  类中  setWifiActiveScan  过时 isWifiActiveScan public boole ...

  6. web端高德地图javascript API的调用

    [转载https://www.cnblogs.com/zimuzimu/p/6202244.html]web端高德地图javascript API的调用 关于第三放地图的使用,腾讯.百度.高德 具体怎 ...

  7. vue 调用高德地图

    一. vue-amap,一个基于 Vue 2.x 和高德地图的地图组件 https://elemefe.github.io/vue-amap/#/ 这个就不细说了,按照其文档,就能够安装下来. 二. ...

  8. 高德地图web端笔记;发送http请求的工具类

    1.查询所有电子围栏 package com.skjd.util; import java.io.BufferedReader; import java.io.InputStream; import ...

  9. Android 编程 AMapLocationClientOption 类中的 setNeedAddress 方法用处 (高德地图 com.amap.api.location.AMapLocationClientOption 中的类)

    最近在用高德地图来写Android App, 其中有一些 方法是不太理解的,这里写一下 对  高德地图  com.amap.api.location.AMapLocationClientOption ...

随机推荐

  1. 【Android XML】Android XML 转 Java Code 系列之 介绍(1)

    最近在公司做一个项目,需要把Android界面打包进jar包给客户使用.对绝大部分开发者来说,Android界面的布局以XML文件为主,并辅以少量Java代码进行动态调整.而打包进jar包的代码,意味 ...

  2. appium===使用weditor代替ui automator viewer

    weditor 一个元素定位工具,并可实现通过wifi连接移动端进行定位. https://github.com/openatx/uiautomator2 python安装方式: pip instal ...

  3. 10:django 模板语言

    Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个 ...

  4. linux命令(44):date命令

    1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间. 3.命令参数: 必要参数: %H 小时(以00-23来表示). %I 小时(以01 ...

  5. EF框架的优点是什么?

    在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品.用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储 ...

  6. mysql-表完整性约束

    阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 总结     一 介绍 回到顶 ...

  7. hdu 5023

    A Corrupt Mayor's Performance Art Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 100000/100 ...

  8. .net core web api 获取request body的纯文本

    本文代码 https://github.com/wuhaibo/readPlainTextDotNetCoreWepApi 总有些时候我们希望获得Request body 的纯文本 那么怎么做呢?很简 ...

  9. echarts画k线图

    var charset = echarts.init(document.getElementById("k_line")) $.get(k_line.url_A).done(fun ...

  10. 五十八 数据库访问使用SQLite

    SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成. Python就 ...