javascript - 缩放到选定的功能
问题描述
我正在尝试选择一个要素并使用 ArcGIS javascript api 将地图缩放到该选定要素。
我已经检查以确保查询返回实际结果,因此应该检索数据。我将脚本基于 FeatureLayer - 4.11 简介。代码如下。
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer"
], function(Map, MapView, FeatureLayer) {
var map = new Map({
basemap: "hybrid"
});
var view = new MapView({
container: "viewDiv",
map: map,
extent: {
// autocasts as new Extent()
xmin: -9177811,
ymin: 4247000,
xmax: -9176791,
ymax: 4247784,
spatialReference: 102100
}
});
/********************
* Add feature layer
********************/
// Carbon storage of trees in Warren Wilson College.
var featureLayer = new FeatureLayer({
url:
"http://someURL/FeatureServer/45"
});
map.add(featureLayer);
const query = new Query();
query.where = "LASTNAME = 'GLOVER'";
query.outSpatialReference = { wkid: 102100 };
query.returnGeometry = true;
query.outFields = [ "LASTNAME" ];
featureLayer.queryFeatures(query).then(function(results){
var newextent = esri.graphicsExtent(results.features);
map.setExtent(newextent,true);
});
});
</script>
我原以为地图会缩放到所选多边形的范围,但事实并非如此。不会出现错误消息 - 地图仅显示原始范围。
希望有人能指出我正确的方向。
解决方案
将您的行替换const query = new Query();
为const query = featureLayer.createQuery();
因为您没有声明Query
in require
,例如:
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/tasks/support/Query"
], function(Map, MapView, FeatureLayer, Query) {
从 ArcGIS Javascript API 4.* 版本开始,您可以从以下位置创建查询featureLayer
:https ://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#createQuery并使用以下方式控制视图MapView
https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo:
featureLayer.queryFeatures(query).then(function(results){
const features = results.features;
view.goTo(features[0].geometry);
});
推荐阅读
- javascript - iframe 未在按钮单击时加载
- php - 如何使用外键自定义 Auth::user() 列?拉拉维尔
- assembly - 使用十六进制在汇编代码中编写指令
- javascript - 悬停时的下拉菜单
- maven - 在不创建插件的情况下构建自定义 Maven 生命周期
- java - SAX Parser 是否将所有数据保存在内存中?
- cmake - 更改为 CMake - 一个源,48 个 DLL
- javascript - 打印出数组中的所有重复项 - Javascript - 还需要函数的时间/空间复杂度
- android - 与 io.grpc:grpc-auth:1.13.1 相关的 Google Cloud Android Firestore 依赖项失败
- python - 如何使用工作或学校帐户将 SharePoint Online (Office365) Excel 文件读入 Python,特别是 pandas?