zoukankan      html  css  js  c++  java
  • C# 高德地图调用帮助类 GaodeHelper

     /// <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"][0]["location"];
                return geocodes;
            }
        }
  • 相关阅读:
    java:数组操作工具类 java.util.Arrays包 主要方法详解
    java:接口特性 接口与抽象类/普通类的区别
    mybatis教程:入门>>精通>>实战
    Java :内部类基础详解
    Java swing: 实现ActionListener监听器的三种途径
    Java:final、static关键字 详解+两者结合使用
    Java:双括号初始化 /匿名内部类初始化法
    Java:静态内部类的使用目的、使用限制、与非静态内部类的对比
    域名解析>>"记录类型" 说明
    Java:接口继承接口 (多继承机制)
  • 原文地址:https://www.cnblogs.com/benbenfishfish/p/9680479.html
Copyright © 2011-2022 走看看