【地图功能开发系列:二】根据地址名称通过百度地图API查询出坐标
根据地址名称通过百度地图API查询出坐标
百度地图ApiUrl
`string url = "http://api.map.baidu.com/geocoder?address={0}&output=json&key=这里用自己申请的key" ` ``` //查询出门店列表 string sql = "select shopid, shopName,shopadress, lat ,lng as lon from Shop"; //单个门店的情况 if (shopid!=0) { sql += " where shopid=" + shopid; } DataTable PlaceDt = kis_web.DBHelper.GetTable(sql);
foreach (DataRow row in PlaceDt.Rows)
{
//请求
var request = (HttpWebRequest)WebRequest.Create(string.Format(url, row["shopadress"]));
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
//请求结果
JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
//有些地址是查询不出来result的,因此要做个判断
if (string.Equals(jo["status"].ToString(), "OK") && jo["result"].ToString() != "[]")
{
string lat = jo["result"]["location"]["lat"].ToString();
string lng = jo["result"]["location"]["lng"].ToString();
//修改数据库中的门店坐标地址
string updateSql = "UPDATE Shop SET lat = '{0}',lng = '{1}' WHERE shopid ='{2}'";
int result = kis_web.DBHelper.ExeSQLs(string.Format(updateSql, lat, lng, row["shopid"]));
}
}
#测试DEMO可以直接赋值使用
string url = "http://api.map.baidu.com/geocoder?address={0}&output=json&key=key";
var request = (HttpWebRequest)WebRequest.Create(string.Format(url, "广州"));
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
string lng = jo["result"]["location"]["lng"].ToString();
string lat = jo["result"]["location"]["lat"].ToString();
Response.Write(lng + "|" + lat);
---
*相关命名空间*
using Newtonsoft.Json;
using System.Net;
using Newtonsoft.Json.Linq;
*通过上诉的操作,这样就可以将数据库中拥有地址的门店赋值坐标*
分类:
每天十篇博文系列计划
, C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构