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