GraphicLayer查询功能和更新详解

来源:互联网 发布:画面好的大型网络手游 编辑:程序博客网 时间:2024/06/06 18:51

上次讲到过更新和添加,这次我们单独的将查询,删除和添加基本一样,非常简单,这里我不做解答。

一:GraphicLayer查询功能

先上图:

这里我们可以看到,这是我OnSingTapListener的回调方法里面查询到的结果,我知道可能很多朋友会添加和更新,却不会查询GraphicLayer。这里我查询到的ints大小是4,表明我得到了四条符合的数据,这个数据距离由近到远去排列好的。比如你点击的这个点,距离你GraphicLayer层某两个点,其中一个距离为5另一个为10,那么ints[0]肯定是距离为5的这个要素。如果是不同的Geometry呢,顺序是面、线、点(我记得好像是这么说的)。这里的getGraphicIDs()需要注意的是,x和y是屏幕坐标,第三个参数表示的是这个范围,单位是手机的dp值,一开始我认为是实际距离,后来发现方法没有坐标系这个参数,认为可能不是实际距离,查过api才发现这是屏幕坐标。屏幕坐标可以直接拿回调方法的x和y值。有人说不是应该通过mapview.toScreenPoint()方法去转成屏幕坐标吗,怎么可以直接使用回调的x,y值。事实上我也很郁闷,因为我发现使用toScreenPoint()拿到的根本不对。大家也少走些弯路。事实上GraphicLayer类似于GeodatabaseTable一样,也一样可以存储Attributes这些属性,因为我们add的是Graphic,他就可以setAttributes,但是遗憾的是查询的时候无法像查询Geodatabase一样使用排序和where语句等。

二:GraphicLayer更新详解

GraphicLayer更新我们只做一些方法的介绍,作为补充。看图:

这里我们看一下这些更新的方法。

方法一:可以通过id更新他的属性

方法二:我没用过,不知道有什么用,如果知道的在下方留言

方法三:Geometry事实上就是代表了属性和坐标这两大块,所以可以同时更新

方法四:symbol,如果可以更新他的话,那么意味着你的要素样式是可以改变的方法五:更新Graphic属性,Graphic本身有很多属性,比如说可以旋转角度,这个在定位的时候有很大作用。

下面的方法不做一一介绍,因为上面几个是单个更新,下面的是多个更新,基本原理差不多。

1 0