关于基于c#获取高德地图api的poi数据的思路

1.后台http请求获取数据方法(url和参数)

/// <summary>
    /// 请求网站获取数据
    /// </summary>
    /// <param name="url"></param>
    /// <param name="dic"></param>
    /// <returns></returns>
    public string Get(string url, Dictionary<string, string> dic)
    {
        string result = "";
        StringBuilder builder = new StringBuilder();
        builder.Append(url);
        if (dic.Count > 0)
        {
            builder.Append("&");
            int i = 0;
            foreach (var item in dic)
            {
                if (i > 0)
                    builder.Append("&");
                builder.AppendFormat("{0}={1}", item.Key, item.Value);
                i++;
            }
        }
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());

        req.Method = "GET";
        req.ContentType = "application/json";
        //添加参数
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stream = resp.GetResponseStream();
        try
        {
            //获取内容
            using (StreamReader reader = new StreamReader(stream))
            {
                result = reader.ReadToEnd();
            }
        }
        finally
        {
            stream.Close();
        }
        return result;
    }

2.调用高德地图api的获取poi数据

/// <summary>
    /// 获取加油站数据
    /// </summary>
    /// <param name="context"></param>
    /// <returns></returns>
    public string getInfo(HttpContext context)
    {
        for (int i = 1; i < 20; i++)
        {
            string url = "https://restapi.amap.com/v3/place/text?parameters";
            Dictionary<string, string> getparams = new Dictionary<string, string>();
            getparams.Add("key", "key");
            getparams.Add("types", "010100");
            getparams.Add("city", "沈阳");
            getparams.Add("offset", "25");
            getparams.Add("page", i + "");
            string result = Get(url, getparams);
            var poi = JsonConvert.DeserializeObject<JObject>(result);
            var pois = JArray.Parse(poi["pois"].ToString());
            string connStr = DBHelper.CONN_STRING;
            DbConnectionCommon conn = new DbConnectionCommon(connStr); //定义数据库事务及参数
            if (conn.DbConnection.State != ConnectionState.Open)
                conn.DbConnection.Open();
            DbTransaction ort = conn.DbConnection.BeginTransaction();
            try
            {
                foreach (var item in pois)
                {
                    var name = item["name"].ToString();
                    var address = item["address"].ToString();
                    var location = item["location"].ToString();
                    double lng = double.Parse(location.Split(',')[0]);
                    double lat = double.Parse(location.Split(',')[1]);
                    string poi_id = System.Guid.NewGuid().ToString("N").ToUpper();
                    string insertSQL = @"INSERT INTO POIS
      (POI_ID,
       TYPE,
       NAME,
ADDRESS,LNG,LAT,CREATE_DATE
      )
    VALUES
      (:POI_ID,
       :TYPE,
       :NAME,
:ADDRESS,:LNG,:LAT,:CREATE_DATE
)";

                    DbParameterCommon[] insertCmdParm = new DbParameterCommon[]
                    {
                        new DbParameterCommon("POI_ID", poi_id),
                        new DbParameterCommon("TYPE", "加油站"),
                        new DbParameterCommon("NAME", name),
                        new DbParameterCommon("ADDRESS", address),
                        new DbParameterCommon("LNG", lng),
                        new DbParameterCommon("LAT", lat),
                         new DbParameterCommon("CREATE_DATE", DateTime.Now)
                    };

                    DbCommandTextCommon insertSQL_text = new DbCommandTextCommon(insertSQL);
                    DBHelper.ExecuteNonQuery(ort, insertSQL_text, insertCmdParm);
                }
                ort.Commit();
                conn.DbConnection.Close();
            }
            catch (Exception)
            {

                throw;
            }


        }

        return "";

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值