ArcGIS 要素图层超出限制
ArcGIS Feature Layer exceeds limit
我是 ArcGIS 新手。
我一直在使用它在我们的 ArcGIS 服务器上发布道路图层服务。
每当我上传一个小区域的功能 Class 作为服务时,一切似乎都在工作。道路出现在我的网络应用程序上,每个人都很高兴。
现在,该服务应该支持整个世界。因此,对于初学者,我尝试将加利福尼亚的一项功能 class 作为服务上传。
问题是道路是随机加载的,而不是我目前认为的任何内容。这样一来,我就超出了服务器的功能限制returns,并且有大片区域没有道路。
经过大量研究,我找到了如何查询要加载的特定区域。 Esri 的文档在这方面不是很有帮助。不幸的是,除了请求的区域之外,道路仍然是随机加载的。如何只加载我查询的区域?
我正在使用通过 ArcMap 10.6 上传到 ArcGIS Server 的服务。
这是Javascript中的相关代码:
this.layer = new FeatureLayer({
url: this.featureServiceUrl,
renderer: renderer,
outFields: ["*"],
elevationInfo: {
mode: "on-the-ground"
},
refreshInterval: 0.1
});
正在为距离 1000 创建查询:
this.props.map.add(this.layer);
// Get a query object for the layer's current configuration
const queryParams = this.layer.createQuery();
queryParams.geometryType = "point";
// set a geometry for filtering features by a region of interest
queryParams.geometry = new Point({
x: -117.19477,
y: 32.81452,
z: 0
});
queryParams.distance = 1000;
let results = await this.layer.queryFeatures(queryParams);
await this.layer.applyEdits({
updateFeatures: results.features
});
this.layer.refresh();
我想我遗漏了一些微小但至关重要的东西。
如果您需要任何其他信息来回答这个问题,请告诉我。
谢谢!
我找到了解决办法:
在 ArcGIS Javascript v4.9 中,创建 FeatureLayer 对象时,应添加此 属性:
definitionExpression: [query object]
例如:
this.layer = new FeatureLayer({
url: this.featureServiceUrl,
renderer: renderer,
outFields: ["*"],
elevationInfo: {
mode: "on-the-ground"
},
definitionExpression: this.props.features_query
});
这是对 API 的引用:ArcGIS API Documentation。
我是 ArcGIS 新手。 我一直在使用它在我们的 ArcGIS 服务器上发布道路图层服务。 每当我上传一个小区域的功能 Class 作为服务时,一切似乎都在工作。道路出现在我的网络应用程序上,每个人都很高兴。 现在,该服务应该支持整个世界。因此,对于初学者,我尝试将加利福尼亚的一项功能 class 作为服务上传。 问题是道路是随机加载的,而不是我目前认为的任何内容。这样一来,我就超出了服务器的功能限制returns,并且有大片区域没有道路。
经过大量研究,我找到了如何查询要加载的特定区域。 Esri 的文档在这方面不是很有帮助。不幸的是,除了请求的区域之外,道路仍然是随机加载的。如何只加载我查询的区域? 我正在使用通过 ArcMap 10.6 上传到 ArcGIS Server 的服务。 这是Javascript中的相关代码:
this.layer = new FeatureLayer({
url: this.featureServiceUrl,
renderer: renderer,
outFields: ["*"],
elevationInfo: {
mode: "on-the-ground"
},
refreshInterval: 0.1
});
正在为距离 1000 创建查询:
this.props.map.add(this.layer);
// Get a query object for the layer's current configuration
const queryParams = this.layer.createQuery();
queryParams.geometryType = "point";
// set a geometry for filtering features by a region of interest
queryParams.geometry = new Point({
x: -117.19477,
y: 32.81452,
z: 0
});
queryParams.distance = 1000;
let results = await this.layer.queryFeatures(queryParams);
await this.layer.applyEdits({
updateFeatures: results.features
});
this.layer.refresh();
我想我遗漏了一些微小但至关重要的东西。 如果您需要任何其他信息来回答这个问题,请告诉我。
谢谢!
我找到了解决办法: 在 ArcGIS Javascript v4.9 中,创建 FeatureLayer 对象时,应添加此 属性:
definitionExpression: [query object]
例如:
this.layer = new FeatureLayer({
url: this.featureServiceUrl,
renderer: renderer,
outFields: ["*"],
elevationInfo: {
mode: "on-the-ground"
},
definitionExpression: this.props.features_query
});
这是对 API 的引用:ArcGIS API Documentation。