博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcGIS API for JavaScript 4.2学习笔记[18] 搜索小部件
阅读量:4960 次
发布时间:2019-06-12

本文共 1437 字,大约阅读时间需要 4 分钟。

这个例子很简单,作为开学后(暴露出学生党的本质)的开胃菜是再合适不过了。

不过,博主提前警告一下:接下来的例子会相当的长、烦、难。我还会用“引用”-“函数参数骨架”-“逐级分解代码”的模式,从上往下解读一些更难的AJS代码。

现在上课!


空间查询,是GIS的一个重头戏,除了基础定义(坐标系统、投影、符号等)、数据准备外,紧接着就是空间查询和下一章的空间分析。

对于AJS的小部件,我们已经接触了两个了,如2D地图中的指北针和上一章的弹窗(Popup)。这个例子也是小部件的应用,名为:“Search”。

本例是最普通的空间查询,即在3D地图中搜索地物。

举例:

在搜索小部件中输入上海,结果就会以goTo()动画跳转到搜索结果中。

给出引用

require(    [      "esri/Map",      "esri/views/SceneView",      "esri/widgets/Search",      "dojo/domReady!"    ],     function(Map, SceneView, Search) {    });

可以看到,使用了widgets/Search引用。

函数参数骨架

function(Map, SceneView, Search){    var map = Map({...});    var view = SceneView({...});    var searchWidget = new Search({...});    view.ui.add(searchWidget, {...});}

是不是很简单?

在常规的map和view实例化后,实例化一个Search对象,名为searchWidget,然后在view.ui属性中添加即可,空间搜索原来这么容易?

我们展开Search({...})和add()中的内容。

var searchWidget = new Search({    view: view});view.ui.add(searchWidget, {    position: "top-left",    index: 0});

要不要太简单?

Search()中是把view属性绑定到上方的view对象,add()中是确定搜索小部件的位置信息。

于是这个例子就完了。


 

查阅API:

Search是个类,继承自Accessor类。

它提供了为地图搜索地物的功能,对于要素图层,用空间查询更佳。

它显示为:

它的属性和方法很多,列举几个:

属性:view、popupTemplate、sources、viewModel、container,等等。

方法:on()、search()、clear()、destroy(),等等。

可以看出,Search类支持定义弹窗模板。

 

view.ui

ui是DefaultUI类的属性,在MapView的帮助文档中,查阅得到常用的方法是:

add()、remove()、move()、empty()。

而DefaultUI类继承自UI类,UI类继承自Accessor类。

add()方法接受两个参数,前一个参数是html元素(组),这里是searchWidget;后一个参数是小部件的位置,有两个可选参数:position和index。

转载于:https://www.cnblogs.com/onsummer/p/6421297.html

你可能感兴趣的文章
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>