代码高亮以及仙林PM2.5

日志中的代码一直都是截图的,一是因为上面贴的代码本来就少;二是因为有时会把文章贴到别的地方,这就只有图片才能保持同样的效果了;三是因为懒得折腾吧。

在StackExchange帮助中看到他们用的代码高亮脚本Google Code Prettify,感觉效果不错,就直接找个Wordpress插件安上了。

下面是一段获取仙林大学城PM2.5值的代码:

using System.IO;
using System.Net;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var request = (HttpWebRequest)WebRequest.Create("http://218.94.78.75/pm25services/Service.asmx");
            request.Headers.Add("Action", "http://218.94.78.75/pm25services/Service.asmx?op=getSurvyValue");
            request.Method = "POST";
            request.ContentType = "text/xml;charset=\"utf-8\"";
            request.Accept = "text/xml";

            XmlDocument soapEnvelop = new XmlDocument();
            XNamespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/";
            XNamespace tns = "http://tempuri.org/";
            var xml =
                new XElement(soapenv+"Envelope", new XAttribute(XNamespace.Xmlns +"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/"), new XAttribute(XNamespace.Xmlns +"s", "http://www.w3.org/2001/XMLSchema"), new XAttribute(XNamespace.Xmlns +"xsi", "http://www.w3.org/2001/XMLSchema-instance"),
                    new XElement(soapenv + "Body",
                        new XElement(tns + "getSurvyValue", new XAttribute(XNamespace.Xmlns + "tns", "http://tempuri.org/"),
                            new XElement(tns + "elemname", "PM25"),
                            new XElement(tns + "scode", "AQMS02500104")))).ToString();            
            soapEnvelop.LoadXml(xml);

            Stream requestStream = request.GetRequestStream();
            soapEnvelop.Save(requestStream);
            requestStream.Close();

            WebResponse response = request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            var sr = new StreamReader(responseStream);
            string result = sr.ReadToEnd();
        }
    }
}

代码当然是能运行的,有图有真相:

政府公开信息是好事,既能树立公信力也能让普通人获益,虽然按理说这些早就是我们纳税人应得的服务。

这个网站(http://218.94.78.75/airwebsite/),大致看了下是ArcGIS Server+REST Service+Flex API+天地图底图。目前尚在测试中,且建议IE浏览。其实这是个很普通的应用吧,后台的服务写好了,前面用商业地图API,不管是Google Maps还是国产地图,都能很好的满足需求。再看看GIS服务(http://218.94.78.75/ArcGIS/rest/services),四个MapServer和一个GeometryServer。MapServer只是提供底图、测站和注记而已,GeometryServer也没从Fiddler中看出用在哪了。其实这是挺简单的活,不需要这样的排场,而且整个整出来的效果像是实习生作品。

不过话说回来,这些东西都用商业地图、开源软件做了,那还让GIS厂商活吗,还让我们过日子不?

所以,各取所需,和谐社会。

分享到:
  1. 你好,请问你是怎么分析出http://218.94.78.75/pm25services/Service.asmx?op=getSurvyValue 这个后台pm2.5服务的地址的,现在这个地址好像不能用了啊,我是小菜鸟一个,想自己编个android程序实时更新江苏的pm2.5数据,但对这种gis程序一窍不通,请赐教,谢谢啦

      • 谢谢指点!地址我找到了,但貌似环保局把获取数据的方式改成post了,而且返回的数据不是明文,不知道是什么方式编码的,哎