实现地图天气预报的显示

概述:很多时候,会用到地图与天气预报的相结合显示,本文结合web天气插件,实现地图天气预报的结合现实。

1、天气预报插件

搜了半天,终于找到了比较好的天气预报插件,网址为:http://www.tianqi.com/dingzhi/,调用形式为:

<iframe width="1000"
        scrolling="no"
        height="500"
        frameborder="0"
        src="http://i.tianqi.com/index.php?c=code&id=22&icon=1&py=haerbin">

参数说明:

width:宽度

scrolling:是否出现滚动条

height:高度

frameborder:是否显示边框

src:网址,其中,id为样式,icon为图标样式,py为城市代码。

2、发布服务

在发布服务之前,需要对图层做一定的处理,在上一篇博文中讲解了通过汉字提取拼音的方法,提取各城市的拼音,并添加到shp文件的字段中,具体操作:

a、将shp属性表导出

b、提取拼音

c、给shp数据添加py字段,字段类型为text,长度为100

d、在arcmap中加载excel;

e、水平与excel做join连接,并给py字段赋值

3、调用,并实现,

在地图中添加featurelayer,并添加click事件,代码如下:

            var pro = new FeatureLayer("http://localhost:6080/arcgis/rest/services/city/MapServer/0",{
                outFields: ["*"]
            });
            map.addLayer(pro);

            pro.on("click",function(evt){
                console.log(evt);
                var url = "http://i.tianqi.com/index.php?c=code&id=19&color=%23&bgc=%23&icon=2&py="+evt.graphic.attributes.pinyin+"&temp=1&num=1";
                var title = evt.graphic.attributes.name;
                var content = $("<div />");
                var weatherIframe = $("<iframe />").attr("width","320")
                    .attr("height","120")
                    .attr("frameborder","0")
                    .attr("scrolling","no")
                    .attr("src",url);
                content.append(weatherIframe);
                map.infoWindow.setTitle(title);
                map.infoWindow.setContent(content[0]);
                map.infoWindow.resize(340,125);
                map.infoWindow.show(evt.graphic.geometry);
            });

实现后,效果如下:

转载自:https://blog.csdn.net/GISShiXiSheng/article/details/44566531

You may also like...