json序列化获取高德Api实现路径查询
前端:
<div> 起点:<input id="adress" type="text" runat="server" /> <br /> 终点:<input id="Address" type="text" runat="server" /> <br /> 天气:<input id="weather" type="text" runat="server" /> <br /> <asp:RadioButtonList ID="radlRoule" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"> <asp:ListItem value="0" >步行</asp:ListItem> <asp:ListItem Value="1">驾车</asp:ListItem> <asp:ListItem Value="2">公交</asp:ListItem> </asp:RadioButtonList> <br /> <asp:Button ID="Button1" runat="server" Text="开始导航" OnClick="Button1_Click" /><br /> </div>
后台:
public JObject GetObj(string url) { WebClient client = new WebClient(); byte[] byteArray = client.DownloadData(url); string html = Encoding.UTF8.GetString(byteArray); return (JObject)JsonConvert.DeserializeObject(html); }
protected void Button1_Click(object sender, EventArgs e)
{
WebClient client = new WebClient();
//天气
string WeatherUrl = "http://restapi.amap.com/v3/weather/weatherInfo?key=自己的&city="+weather.Value+"";
JObject objweather = GetObj(WeatherUrl);
Response.Write(objweather["lives"][0]["city"].ToString()+":" + objweather["lives"][0]["weather"].ToString()+"," + objweather["lives"][0]["temperature"].ToString()+"摄氏度" + "<br/>");
//起点经纬度
string StartPoint= GetLatitude(adress.Value);
//终点经纬度
string EndPoint= GetLatitude(Address.Value);
//请求连接https://restapi.amap.com/v3/direction/driving?origin=116.45925,39.910031&destination=116.587922,40.081577&output=json&key=自己的
string LinkUrl = "";
if (radlRoule.Text=="0")
{
//步行
LinkUrl = "https://restapi.amap.com/v3/direction/walking?origin=" + StartPoint + "&destination=" + EndPoint + "&output=json&key=自己的";
byte[] byteArray = client.DownloadData(LinkUrl);
string html = Encoding.UTF8.GetString(byteArray);
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
string m = obj["route"]["paths"][0]["steps"].ToString();
JArray array = (JArray)JsonConvert.DeserializeObject(m);
for (int i = 0; i < array.Count; i++)
{
Response.Write(obj["route"]["paths"][0]["steps"][i]["instruction"].ToString() + "<br/>");
}
}
else if(radlRoule.Text == "1")//驾车
{
LinkUrl = "https://restapi.amap.com/v3/direction/driving?origin=" + StartPoint + "&destination=" + EndPoint + "&output=json&key=自己的";
byte[] byteArray = client.DownloadData(LinkUrl);
string html = Encoding.UTF8.GetString(byteArray);
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
string m = obj["route"]["paths"][0]["steps"].ToString();
JArray array = (JArray)JsonConvert.DeserializeObject(m);
for (int i = 0; i < array.Count; i++)
{
Response.Write(obj["route"]["paths"][0]["steps"][i]["instruction"].ToString() + "<br/>");
}
}
else//公交
{
LinkUrl = "https://restapi.amap.com/v3/direction/transit/integrated?origin=" + StartPoint + "&destination=" + EndPoint + "&city=010&output=json&key=自己的";
byte[] byteArray = client.DownloadData(LinkUrl);
string html = Encoding.UTF8.GetString(byteArray);
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
string m = obj["route"]["transits"][0]["segments"][0]["bus"]["buslines"][0]["via_stops"].ToString();//每站的路线
string n = obj["route"]["transits"][0]["segments"][0]["bus"]["buslines"].ToString();
JArray array = (JArray)JsonConvert.DeserializeObject(m);
JArray arrayn = (JArray)JsonConvert.DeserializeObject(n);
for (int j=0;j< arrayn.Count; j++)
{
Response.Write(obj["route"]["transits"][0]["segments"][0]["bus"]["buslines"][j]["name"]);
for (int i = 0; i < array.Count; i++)
{
Response.Write(obj["route"]["transits"][0]["segments"][0]["bus"]["buslines"][0]["via_stops"][i]["name"].ToString() + "<br/>");
}
}
}
//Response.Write(StartPoint);
//Response.Write(EndPoint);
}
public string GetLatitude(string Address)
{
WebClient client = new WebClient();
string address = Address;// "洛阳河南科技大学";
string dts = "https://restapi.amap.com/v3/geocode/geo?address=" + address + "&key=自己的";
byte[] byteArray = client.DownloadData(dts);
string html = Encoding.UTF8.GetString(byteArray);
//反序列化
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
return obj["geocodes"][0]["location"].ToString();
}
原文地址:https://www.cnblogs.com/shuicai/p/14943303.html
- 机器学习实践:用 Spark 和 DBSCAN 对地理定位数据进行聚类
- 【Golang语言社区】H5游戏开发从零开始开发一款H5小游戏(三) 攻守阵营,赋予粒子新的生命
- 【H5游戏实例】JS+canvas实现人机大战之五子棋
- Go包管理的探索与实践
- 机器学习优化算法之爬山算法小结
- 机器学习之最小二乘法
- Go中的同步与锁
- 机器学习之KNN算法思想及其实现
- 机器学习之决策树熵&信息增量求解算法实现
- 朴素贝叶斯分类器(离散型)算法实现(一)
- spring设置全局异常处理器
- discuz论坛apache日志hadoop大数据分析项目:hive以及hbase是如何入库以及代码实现
- 【Golang语言社区】前端编程- 从零开始开发一款H5小游戏(一) 重温canvas的基础用法
- 今天聊聊分布式锁 No.86
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法