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;
            }
        }
  • 相关阅读:
    Python批量获取京东商品列表信息
    AxureRP8.1(注册码)破解汉化教程
    sp_getAppLock使用[转]
    rebar3 escriptize
    三层次解析模型(其二):是何、为何、如何
    三层次解析模型(其一):无限、绝对、完美
    wpf项目引入System.Windows.Forms报错
    idea 批量修改
    Android studio 模拟器无法联网问题
    git
  • 原文地址:https://www.cnblogs.com/benbenfishfish/p/9680479.html
Copyright © 2011-2022 走看看