Java 如何动态修改特征(如直线)的坐标?

Java 如何动态修改特征(如直线)的坐标?,java,geotools,Java,Geotools,我想改变一条线的坐标,并在飞行中用新坐标绘制它。虽然这些值可以更改,但我没有成功地使用新坐标重新绘制。 我的示例代码和跟踪输出在这里 TRACE-1:SimpleFeatureImpl:OSB_Line=[SimpleFeatureImpl.Attribute:the_geom=Multilinering((32.56891053280672 39.98170079260158,32.5619576563663 39.98391357917568)), TRACE-2:SimpleFeature

我想改变一条线的坐标,并在飞行中用新坐标绘制它。虽然这些值可以更改,但我没有成功地使用新坐标重新绘制。
我的示例代码和跟踪输出在这里

TRACE-1:SimpleFeatureImpl:OSB_Line=[SimpleFeatureImpl.Attribute:the_geom=Multilinering((32.56891053280672 39.98170079260158,32.5619576563663 39.98391357917568)),

TRACE-2:SimpleFeatureImpl:OSB_Line=[SimpleFeatureImpl.Attribute:the_geom=多行((132.5689105328067 39.98170079260158,

public void modifySelectedFeatures(Set<FeatureId> idSet) {
    FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
    MapContent mapContent = mapFrame.getMapContent();
    FeatureLayer layer = (FeatureLayer) mapContent.layers().get(0);
    Filter filter = ff.id(idSet);
    try {
        SimpleFeatureCollection fColl = (SimpleFeatureCollection) layer.getFeatureSource().getFeatures(filter);
        if (!fColl.isEmpty()) {
            SimpleFeatureIterator iterator = fColl.features();
            while (iterator.hasNext()) {
                SimpleFeature simpleFeature = iterator.next();
                System.out.println("TRACE-1:" + simpleFeature);
                Geometry geom = (MultiLineString) simpleFeature.getDefaultGeometry();
                Coordinate c = geom.getCoordinates()[0];
                c.setCoordinate(new Coordinate(c.x + 100.0, c.y, c.z));
                simpleFeature.setDefaultGeometry(geom);
                System.out.println("TRACE-2:" + simpleFeature);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();  
    }
    mapFrame.getMapPane().repaint();
}
public void modifySelectedFeatures(Set idSet){
FilterFactory2 ff=CommonFactoryFinder.getFilterFactory2(null);
MapContent MapContent=mapFrame.getMapContent();
FeatureLayer层=(FeatureLayer)mapContent.layers().get(0);
过滤器过滤器=ff.id(idSet);
试一试{
SimpleFeatureCollection fColl=(SimpleFeatureCollection)layer.getFeatureSource().getFeatures(过滤器);
如果(!fColl.isEmpty()){
SimpleFeatureIterator迭代器=fColl.features();
while(iterator.hasNext()){
SimpleFeature SimpleFeature=iterator.next();
System.out.println(“TRACE-1:+simpleFeature”);
几何图形几何图形=(多行线)simpleFeature.getDefaultGeometry();
坐标c=geom.getCoordinates()[0];
c、 设置坐标(新坐标(c.x+100.0,c.y,c.z));
simpleFeature.setDefaultGeometry(geom);
System.out.println(“TRACE-2:+simpleFeature”);
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
mapFrame.getMapPane().repaint();
}