arcgis api for flex 开发入门(九)webservices 的使用
上一篇 / 下一篇 2008-10-18 12:03:45 / 个人分类:mushup
3sNews.Net——3S社区&资讯平台#A%p-t!_Vq+Z
arcgis api for flex 开发入门(九)webservices 的使用3sNews.Net——3S社区&资讯平台+B,`;mj/V0l
flex 本身对webservices有着良好的支持,我们可以调用互联网上的各种
webservices来结合esri 的map 做出自己想要的东西
xE"\4P
jw z$l2c2Gf0我们就拿现在比较流行的天气预报来做例子,我们要实现的目标就是通过
webservices查询到武汉的天气情况,然后使用infowindow 显示到esri 的map上
,在讲解过程中,我们会重点解释infowindow 的用法。3sNews.Net——3S社区&资讯平台ivbF}z
现在提供天气预报的webservices很多,我们选用
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?3sNews.Net——3S社区&资讯平台2H d_
}o:~*pP q
来进行天气的查询。
VCLxP"}O ^6d5`0那么,在flex中如何使用webservices呢?
$]%[{K^'W0N0只要使用 <mx:WebService>标签创建一个WebService就可以了,id唯一标识这个
webservice,wsdl指向提供webservice的地址。3sNews.Net——3S社区&资讯平台8m3Kj\"c d
<mx:WebService id="weatherWS"
wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL"
showBusyCursor="true"/>
nP.C?CO-_5Cu'S+K0我们直接在application 创建完成的时候调用这个 webservice,得到结果后直接
显示到map上 。3sNews.Net——3S社区&资讯平台V3UqtJf4D|$~[
private function Init():void3sNews.Net——3S社区&资讯平台*k-G+D_FO6i^
{
2\3jg)jU3vB0 weatherWS.addEventListener(ResultEvent.RESULT,
WSGetWeatherResult);3sNews.Net——3S社区&资讯平台0mn/U_i9GB
weatherWS.getWeatherbyCityName("武汉");
e8lvHn4G$Z7u0}3sNews.Net——3S社区&资讯平台q)j[~[)m Vp
private function WSGetWeatherResult(event:ResultEvent):void3sNews.Net——3S社区&资讯平台'xQfX.\qiq0@-K
{3sNews.Net——3S社区&资讯平台&II?@.T
weatherWS.removeEventListener
(ResultEvent.RESULT,WSGetWeatherResult);
L!zf
B2L%I Q|$N0 var arrC:ArrayCollection =event.result as
ArrayCollection;
r"pt&^k)lXW0 if(arrC.length > 0)
m"Q5ed3m:K'N0 {3sNews.Net——3S社区&资讯平台"J7bEjz
BR3k)k
var str:String = arrC.getItemAt(0).toString();
8F9T%A+rH%FEO0 // var infWd :InfoWindow = new InfoWindow(EsriMap);
.myQG-jIr0 var str2:String = arrC.getItemAt(1).toString();3sNews.Net——3S社区&资讯平台5KvH
pI
myMap.infoWindow.title= str+"."+str2;
m_'[+EpJ^0b0 var vbox :VBox = new VBox();
K*U#H&^;OD0 var vbox2 :VBox = new VBox();3sNews.Net——3S社区&资讯平台}&}9~k8Dkm
var hbox :HBox = new HBox();
$l?A:rhO!V
cL0 var canvas:Canvas = new Canvas();
;}N Bd:M][*f h/T&r0 var path:String = "assets\\weather\\";
g9W
k3Cp:Sbd:k8[,k0 var img1 :Image = new Image;3sNews.Net——3S社区&资讯平台#vnl%k;] N#nh6P
img1.load(path+arrC.getItemAt(8).toString());
,bkt5P DJC0 hbox.addChild(img1);
~R5y7xF0 var img2 :Image = new Image;
5d?0H*ki^&{T0 img2.load(path+arrC.getItemAt(9).toString());3sNews.Net——3S社区&资讯平台k.^"LSD$R3bs]N
hbox.addChild(img2);
R?*F3w!Q-F6R0 3sNews.Net——3S社区&资讯平台0l1Pn_5]
{fux
3sNews.Net——3S社区&资讯平台Gf3\Xah@2V
var txtTem :Text = new Text();
2l0cB w,w/|0t;c^0 txtTem.text = arrC.getItemAt(5).toString();3sNews.Net——3S社区&资讯平台%zFe(vni S
var txtWea :Text = new Text();3sNews.Net——3S社区&资讯平台Qw,L0A;I0t
txtWea.text = arrC.getItemAt(6).toString();
ybkj:F;b!L|0 var txtWind :Text = new Text();3sNews.Net——3S社区&资讯平台t.js P0O*t.Z:v
txtWind.text = arrC.getItemAt(7).toString();
4F9|r]aF0 vbox.addChild(txtTem);3sNews.Net——3S社区&资讯平台 |iQ5i[0D{7Oi#`8}u
vbox.addChild(txtWea);
GzS5OL%p(]
u6O0 vbox.addChild(txtWind);
:Nu#er2WTd0 vbox2.addChild(hbox);