C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)

直接上代码:解释都在代码中

ak 要自己去百度地图申请.

其中申请ak的时候,有个属性render直接填*就行.

namespace HampWebControl 是我的空间命名!

namespace HampWebControl 是我的空间命名!

namespace HampWebControl 是我的空间命名!

using Newtonsoft.Json;
using System;
using System.IO;
using System.Net;
using System.Security.Policy;
using System.Text;

namespace HampWebControl
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var a = ReturnXY();
            #region 这里弹出窗口来查看xy的值,实际业务中应该是要保存这个xy的值的
            string X = a.x.ToString();
            string Y = a.y.ToString();
            string alert = "x值:"+X+",y值: "+Y;
            Response.Write("<script>alert(‘"+ alert + "‘);</script>");
            #endregion
        }
        public static Point ReturnXY() {
            string strBuff = "";
            Url url = new Url("http://api.map.baidu.com/location/ip?ak=" + "自己申请的百度AK"
                + "&coor=bd09ll");
            ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法 建立,并进行强制的类型转换   
            HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(url.Value);
            ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换   
            HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
            ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容   
            ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理   
            Stream respStream = httpResp.GetResponseStream();
            ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以   
            ///StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)   
            StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
            strBuff = respStreamReader.ReadToEnd();
            Models models = JsonConvert.DeserializeObject<Models>(strBuff);
            var xy=models.content.point;
            return xy;
        }
    }

    public class Models{
        public string address { get; set; }
        public Content content { get; set; }
        public int status { get; set; }
    }

    public class Content {
        public string address { get; set; }
        public AddressDetail address_detail { get; set; }
        public Point point { get; set; }
    }

    public class AddressDetail {
        public string city { get; set; }
        public int city_code { get; set; }
        public string district { get; set; }
        public string province { get; set; }
        public string street { get; set; }
        public string street_number { get; set; }

    }

    public class Point {
        public Decimal x { get; set; }
        public Decimal y { get; set; }
    }

}
时间: 2024-08-26 20:24:08

C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)的相关文章

java之后台返回json格式字符串,前台接受并转为json文件

作为一个菜鸟,做项目真的好困难呀,这两天被一个问题困了两天,终于解决了,但是也不算太完美.首先,先说一下问题吧,根据后台返回的值,前台接受并作出一个折线图. 最初,在后台根据从数据库中的值,强制拼成了json格式的字符串,利用model返回给前台,前台Ajax  success:function(data)data接收数据,这是应该接收的是字符串,由于折线图中series中的data为非字符串,(这个是后来百度才知道的),就没有成功.然后就想后台直接将数据转换成json,然后返回前台,利用里JS

c#后台一般处理程序中把变量的值拼成json格式字符串

//一般处理程序代码string login_name = context.Request["login_name"].Trim(); BLLS data = new BLLS(); string select_id = "select use_id from sq_sgxhcom.fru_users where [email protected]"; int use_id = Convert.ToInt32(data.Select(select_id, login

关于WebBrowser访问百度地图

前段时间遇到一个困惑用WebBrowser访问百度地图的时候,百度会自动转至让下载sdk的页面,经过一个仁兄的点拨,可以改变WebBrowser的agent来骗过网站.经过试验成功.贴源码如下: string ua = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)"; Uri uri = new Uri("http://map.b

arcgis访问百度地图

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>访问百度地图</title> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css"> <style> html, body, #map

GPS坐标转百度地图并且加载地图示例.支持微信端访问

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Wx_VehicleLocation.aspx.cs" Inherits="DTMS.WeiXin.wxmgr.govmgr.Wx_VehicleLocation" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999

百度地图云麻点之批量上传、实时显示数据篇

上篇博文你可能用到的百度地图效果(付源码)介绍了几个比较实用的百度地图特效,其中重点介绍了海量数据上传及响应的问题,前端展示可以通过LBS云麻点来展示,通过这个可以解决批量数据Marker响应特慢的性能问题.首先在百度云服务器上建完表之后,我们可以通过后台的管理平台直接把数据传上去,作为我们的初始数据.这部分数据有了之后,接下来要做的就是想办法手动同步数据,更智能一点就是实时同步数据,接下来就带你一步步实现这个过程. 这次在正文开始之前,我想先做一次吐槽君.最近压力有点儿大,先来发一下牢骚.三人

百度地图用ip获取当前位置的经纬度(高精度)

步骤比较简单先上百度地图API官网,申请一个应用AK(访问凭据):查看一下高进度定位的API,看看是否都符合要求下面直接上代码 /** * 根据ip获取地理坐标 * @param ip * @return */ public JSONObject getCoorsByIp(String ip){ if (null == ip) { ip = ""; } try { URL url = new URL("http://api.map.baidu.com/highacciploc

百度地图API和高德地图API资料集锦

[高德地图API]从零开始学高德JS API(五)路线规划--驾车|公交|步行 [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 [高德地图API]从零开始学高德JS API(三)覆盖物--标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 [高德地图API]从零开始学高德JS API(二)地图控件与插件--测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 [高德地图API]从零开始学高德JS API

百度LBS开放平台个性化地图 制作一款独一无二的地图

百度LBS开放平台个性化地图  制作一款独一无二的地图 天天用百度地图的亲们是否已不再满足只看如下的地图样式了呢? 默认百度地图样式 是否特别渴望看特别不一样的地图呢,如带京城81号气息的午夜蓝风格.绿灯侠风格的青春绿地图及红色警戒风格的地图? 午夜蓝地图风格 青春绿风格地图 警戒红地图风格 如果你以为上述酷炫的地图只是PS出来的,那么你就out了,因为百度LBS开放平台已经对广大的开发者提供了定制如上个性化样式的地图功能啦~ 开发者可以从http://developer.baidu.com/m