【地图功能开发系列:二】根据地址名称通过百度地图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;

通过上诉的操作,这样就可以将数据库中拥有地址的门店赋值坐标

转载于:https://www.cnblogs.com/ncellit/p/10763703.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值