点查询点二

在“点查询点”一文中,提到了点无法查询点,只能将查询点转化为面这样间接通过点查询点,这种方式是利用QueryTask对象,对DynamicLayer和FeatureLayer图层数据都有效果,但是它需要根据不同的比例尺级别调整查询精度,事实上如果查询的图层是FeatureLayer,那么这种交互查询的方式有更简单的方式,可以以通过FeatureLayer_MouseLeftButtonDown(object sender, GraphicMouseButtonEventArgs e)参数e.Graphics获取地图上鼠标所在的位置的要素,我觉得,因为要素已经加载到了内存中,所以可能查询速度更快,具体如下:

1、注册事件

 <esri:FeatureLayer ID="People" DisableClientCaching="True" AutoSave="False" Url="http://localhost/arcgis/rest/services/Map/FeatureServer/0" OutFields="*" Mode="OnDemand" Initialized="FeatureLayer_Initialized" MouseLeftButtonDown="FeatureLayer_MouseLeftButtonDown" />

2、通过事件参数获取查询要素

 IDictionary<string, object> info = new Dictionary<string, object>();

 

private void FeatureLayer_MouseLeftButtonDown(object sender, GraphicMouseButtonEventArgs e)
{
  e.Handled = true; //使地图控件默认的漫游事件失效
  Graphic  g = e.Graphic;//获取要素对象,该对象要素不要可供查询,还可被编辑,删除
  g.Selected = true;//使要素处于选中状态

    info.add("Name",g.Attributtes["Name"]);//获取属性

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值