A feature layer selection query geometry is distorted when activated at small spatial scales.
上次发布: November 20, 2019Portal for ArcGIS
漏洞 ID 编号
BUG-000126585
已提交
November 7, 2019
上次修改时间
February 14, 2025
适用范围
Portal for ArcGIS
找到的版本
10.7.1
操作系统
Windows OS
操作系统版本
2016 64 Bit
状态
Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
附加信息
This is by design and is expected. When using hosted feature services, a “quantizationParameters” object is passed in when performing the query. This can be seen this by opening up a browser’s developer tools and inspect the network traffic. When zooming in, there is a query call made similar to this:
https://tmerhige1.esri.com/server/rest/services/SampleWorldCities/MapServer/1/query?f=json&returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry=%7B%22xmin%22%3A-10018754.171396945%2C%22ymin%22%3A0.000004984438419342041%2C%22xmax%22%3A-5009377.085700965%2C%22ymax%22%3A5009377.085700965%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*&outSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A9783.939620499961%2C%22extent%22%3A%7B%22xmin%22%3A-180%2C%22ymin%22%3A-89.9000244140625%2C%22xmax%22%3A180.0001220703125%2C%22ymax%22%3A83.62371826171875%2C%22spatialReference%22%3A%7B%22wkid%22%3A4326%2C%22latestWkid%22%3A4326%7D%7D%7D
When decoded, it comes across as:
https://tmerhige1.esri.com/server/rest/services/SampleWorldCities/MapServer/1/query?f=json&returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry={"xmin":-10018754.171396945,"ymin":0.000004984438419342041,"xmax":-5009377.085700965,"ymax":5009377.085700965,"spatialReference":{"wkid":102100,"latestWkid":3857}}&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*&outSR=102100&quantizationParameters={"mode":"view","originPosition":"upperLeft","tolerance":9783.939620499961,"extent":{"xmin":-180,"ymin":-89.9000244140625,"xmax":180.0001220703125,"ymax":83.62371826171875,"spatialReference":{"wkid":4326,"latestWkid":4326}}}
The quantizationParameters object is sent as
{
"mode": "view",
"originPosition": "upperLeft",
"tolerance": 9783.939620499961,
"extent": {
"xmin": -180,
"ymin": -89.9000244140625,
"xmax": 180.0001220703125,
"ymax": 83.62371826171875,
"spatialReference": {
"wkid": 4326,
"latestWkid": 4326
}
}
}
This is documented at https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm
In addition to https://developers.arcgis.com/javascript/3/jsapi/query-amd.html#quantizationparameters
The reason for this extra parameter is to help performance. Places with many detailed vertices, such as a coastline, would take longer to render to add every single one of its vertices. The query “generalizes” the geometry by adding this quantizationParamaters. The tolerance can be overwritten manually.
To get around this, set FeatureLayer.autoGeneralize = false.
By default this is true to help with rendering and performance. If this is not a concern, this can be turned off and the more detailed geometries is displayed. Here is an updated sample showing this,
https://jsbin.com/kusokitegi/1/edit?html,output