/// <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. python基础===创建大量对象是节省内存方法

    问题: 你的程序要创建大量(可能上百万) 的对象,导致占用很大的内存. 解决方案: 对于主要是用来当成简单的数据结构的类而言,你可以通过给类添加__slots__属性来极大的减少实例所占的内存.比如: ...

  2. pandas+sqlalchemy 保存数据到mysql

    import pandas as pd from sqlalchemy import create_engine data3={"lsit1":[1,2],"lsit2& ...

  3. API(选项/数据 选项/dom)

    选项/数据 data 类型: Object | Function 限制: 组件的定义只接受function var data = { a: 1 } // 直接创建一个实例 var vm = new V ...

  4. signal, sigaction,信号集合操作

    信号是与一定的进程相联系的,而建立其信号和进程的对应关系,这就是信号的安装登记. Linux主要有两个函数实现信号的安装登记:signal和sigaction.其中signal在系统调用的基础上实现, ...

  5. java中的逻辑运算符,以及&与&&的区别,|与||的区别

    原创,转载请留言联系 逻辑运算符: & 与 false&true=false:true&true=true:false&false=false 必须两个都是true才返 ...

  6. List转换为DataTable List<Entity>

    /// <summary> /// 将List转换成DataTable /// </summary> /// <typeparam name="T"& ...

  7. Windows7 + OSG3.6 + VS2017 + Qt5.11

    一.准备工作 下载需要的材料: 1. OSG稳定版源代码, 3.6.3版本 2. 第三方库,选择VS2017对应的版本  https://download.osgvisual.org/3rdParty ...

  8. npm更新包

    方法一手动跟新: 手动修改package.json中依赖包版本,执行npm install --force,强制从远程下载所有包更新本地包 方法二使用第三方插件: npm install -g npm ...

  9. windows 10 的开始菜单里面图标右击弹不出选项菜单了

    组策略的问题 win + r => gpedit.msc 计算机配置->管理模板>“开始”菜单和任务栏>在“开始”菜单中禁用上下文菜单  改为“已禁用”

  10. SVN版本控制软件

    一.版本控制软件 1.为什么需要版本控制软件 问题:① 团队开发 ② 异地协作 ③ 版本回退 2.解决之道 SCM(Software Configuration Management):软件配置管理 ...