- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
地理定位FLEX实现
地理定位(Locator)
概述
地理定位(Locator)即地理编码(Geocode)又称地址匹配(address-matching), 是指建立地理位置坐标与给定地址一致性的过程。也是指在地图上找到并标明每 条地址所对应的位置。地理编码是 GIS 中比较重要的一个功能。
地理编码(GeoCode)
在ArcGIS API for Flex中使用地理编码和执行查询任务类似,首先使用esri:Locator标签定义一个 Locator 对象:
esri:Locator id=locateTask url=/ArcGIS/rest/services/Locators/ESRI_Geocode_N A/GeocodeServer/
id 唯一标识 Locator,url指向提供 Locator服务的地址。
Locator定义之后,在界面上定义一组文本输入框和一个执行按钮来调用这个 Locator:
mx:Panel title=Find an address top=5 horizontalCenter=0
mx:Form
mx:FormItem label=Street
mx:TextInput width=100% id=address text=380 New York St/
/mx:FormItem
mx:FormItem label=City
mx:TextInput width=100% id=city text=Redlands/
/mx:FormItem
mx:FormItem label=Zip Code or postal code
mx:TextInput width=100 id=zip text=92373/
/mx:FormItem
mx:FormItem label=State/Province
mx:TextInput width=100 id=state text=CA/
/mx:FormItem
mx:FormItem label=Country
mx:ComboBox id=country selectedIndex=1
mx:ArrayCollection
mx:StringCanada/mx:String
mx:StringUSA/mx:String
/mx:ArrayCollection
/mx:ComboBox
/mx:FormItem
mx:FormItem
mx:Button label=Find Address click=doQuery()/
/mx:FormItem
/mx:Form
mx:Text id=myInfo width=100% color=0x00FF00 textAlign=center /
/mx:Panel
文本输入框用来输入地址的详细信息,button用来执行查询的动作。 实现地理编码的功能:
首先,定义一个 Object 来存储地址的详细信息,包括 Address,City,State,
Zip,Country 等信息。
然后,定义一个 Array 来存储输出字段的名称。
最后,把myAddress和myOutFields作为输入参数调用locateTask对象的
addressToLocations方法。具体代请参考下面的代码:
private function doGeoCode() : void
{
var myAddress:Object = { Address: address.text, City: city.text,State: state.text, Zip: zip.text,Country: country.text};
var myOutFields:Array = [Loc_name];
locateTask.addressToLocations(myAddress, myOutFields, new AsyncResponder(onResult, onFault));
function onResult( candidates : Array, token : Object = null ) : void
{
if (candidates.length 0)
{
var addressCandidate : AddressCandidate = candidates[0]; var myGraphic : Graphic = new Graphic(); myGraphic.geometry = addressCandidate.location; myGraphic.symbol = mySymbol;
myGraphic.toolTip = addressCandi
文档评论(0)