提问人:Eduardo B. 提问时间:11/11/2023 更新时间:11/11/2023 访问量:14
从 esri geometry api 获取几何对象的 2d 坐标
Get 2d coordinates of a geometry object from esri geometry api
问:
我有一个服务器客户端架构,后端使用 java 和 spring boot,前端使用 javascript 使用 react。我使用 ArcGis 框架在地图中绘制表单。
在前端,我只绘制了一个 poligon,而在后端,它正在进行计算。 它将一个 Geometry 对象返回到前端,该对象被解析为 json,然后获取坐标以制作多边形。
这是后端逻辑。
public FinalBufferModel getBuffers(BufferModel pointsModel){
Point point[] = new Point[pointsModel.getGeometries().size()];
var distances = new double[pointsModel.getGeometries().size()];
var cautionAreaLength = pointsModel.getCautionAreaLength();
var warningAreaLength = pointsModel.getWarningAreaLength();
for (int i = 0; i < pointsModel.getGeometries().size(); i++) {
point[i] = new Point(pointsModel.getGeometries().get(i).getX(), pointsModel.getGeometries().get(i).getY());
distances[i] = 1.0;
}
var spatialReference = SpatialReference.create(pointsModel.getSpatialReference().getWkid().intValue());
var finalBuffers = GeometryEngine.buffer(point, spatialReference, distances, true);
var finalBuffer = GeometryEngine.union(finalBuffers, spatialReference);
var finalBufferYellow = GeometryEngine.buffer(finalBuffer, spatialReference, cautionAreaLength);
var finalBufferRed = GeometryEngine.buffer(finalBufferYellow, spatialReference, warningAreaLength);
var finalBufferBlack = GeometryEngine.buffer(finalBufferRed, spatialReference, 200);
var finalBufferBlack1 = GeometryEngine.difference(finalBufferBlack, finalBufferRed, spatialReference);
var finalBufferRed1 = GeometryEngine.difference(finalBufferRed, finalBufferYellow, spatialReference);
var finalBufferYellow1 = GeometryEngine.difference(finalBufferYellow, finalBuffer, spatialReference);
//finalBufferBlack1 = GeometryEngine.union(fin, spatialReference);
return new FinalBufferModel(
GeometryEngine.geometryToGeoJson(finalBufferBlack1),
GeometryEngine.geometryToGeoJson(finalBufferRed1),
GeometryEngine.geometryToGeoJson(finalBufferYellow1
)
);
对象 finalBufferBlack1、finalBufferRed1、finalBufferYellow1 将在前端解析,然后我就可以得到 2d 坐标了。但是在地图中,我绘制了几个多边形,当有 1 个以上的多边形时,它会返回到前端一个“Multipoligon”对象,该对象具有一系列坐标。我想在后端合并这个坐标,以删除前端的任何逻辑,因为我不愿意在后端获取这个坐标数组。
感谢您的任何帮助
答: 暂无答案
评论