사용자 입력 및 지오메트리 서비스를 사용하여 버퍼링하려는 기능 레이어가 있습니다.ESRI JS API - 버퍼 FeatureLayer
FeatureLayer :
var texasPipeline = new FeatureLayer(pipeURL, {
mode: FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
definitionExpression:texasPipeQuery
});
BufferParameters :
var params = new BufferParameters();
params.distances = [distance];
params.unit = units;
params.outSpatialReference = map.spatialReference;
params.geometries = texasPipeline;
map.graphics.clear();
geomSvc.buffer(params, showBuffer);
이 서버는 Geometry가 제공해야한다는 오류를 반환합니다. 내 생각 엔 FeatureLayer 자체와 반대로 FeatureLayer의 지오메트리를 전달해야한다는 것입니다. 어떻게 필자는 FeatureLayer의 기하학에 도달하고 그것을 적절하게 BufferParameters에 전달합니까 ??
편집 : 또한 코드에서 볼 수 있듯이 루프를 통과하려고했습니다. Geometry h 열을 BufferParameters에 전달해도 여전히 성공적으로 리턴하지 못합니다.
var texasPipelineGeom = [];
var graphics = texasPipeline.graphics;
for (var G in graphics) {
var g = graphics[G]["geometry"];
console.log(g);
texasPipelineGeom.push(g);
}
해당 오류는 400 오류입니다. 작업을 완료 할 수 없습니다. – LCaraway
Esri의 유용한 오류 메시지가 필요합니다. (나를 위해 작동하는 예제를 추가했습니다. 가능한 한 최선을 다해 시도하십시오. 400 오류가 발생하고 stlil이 발생하면, 도형에 문제가있을 수 있습니다. 귀하의 피지컬 레이어를 대신 간단한 포인트로 보내거나 지오메트리 서비스로 먼저 단순화하여 메소드를 간소화하십시오.이 함수에서는 ArcGIS Point와 내 반지름을 50으로 전달합니다. –