public class LSScheduler extends Object
Modifier and Type | Class and Description |
---|---|
static class |
LSScheduler.GeometryType |
static class |
LSScheduler.MatrixSolver |
Modifier and Type | Field and Description |
---|---|
LSScheduler.MatrixSolver |
solver |
protected EquationsSystem |
systemeGlobal |
protected int |
tailleVecteurs |
Constructor and Description |
---|
LSScheduler(MapspecsLS ms) |
Modifier and Type | Method and Description |
---|---|
protected void |
assembleSystemesEquation()
Assemble les systèmes d'équation calculés pour chaque LSPoint de chaque
objet ajusté.
|
void |
clearScheduler() |
protected LSPoint |
construirePoint(IFeature obj,
IDirectPosition pt,
int position,
LSScheduler.GeometryType type,
boolean pointExtr,
double symbolWidth,
Set<LSPoint> points)
Construit et renvoie un LSPoint Java à partir d'un objet géographique et
des coordonnées d'un point.
|
protected IPoint |
construitNouveauPoint(IFeature obj,
IPoint geomIni,
Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie ponctuelle de l'objet obj suite à
l'ajustement par moindres carrés.
|
protected ILineString |
construitNouvelleLigne(IFeature obj,
Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie linéaire de l'objet obj suite à
l'ajustement par moindres carrés.
|
protected IPolygon |
construitNouvelleSurface(IFeature obj,
IPolygon geomIni,
Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie surfacique de l'objet obj suite à
l'ajustement par moindres carrés.
|
protected int |
countObjs() |
protected int |
countPoints()
Compte le nombre de LSPoints de la zone ajustée par le scheduler.
|
HashSet<LSSpatialConflict> |
getConflits() |
IEnvelope |
getEnvelope() |
Map<IFeature,IGeometry> |
getMapObjGeom() |
Map<IFeature,ArrayList<LSPoint>> |
getMapObjPts() |
MapspecsLS |
getMapspec() |
Set<IFeature> |
getObjsFixes() |
Set<IFeature> |
getObjsMalleables() |
Set<IFeature> |
getObjsRigides() |
LSPoint |
getPointFromCoord(IDirectPosition pt)
Get the
LSPoint corresponding initially to a position. |
LSPoint |
getPointFromCoord(IDirectPosition pt,
IFeature obj)
Get the
LSPoint of a given feature, initially corresponding to a
position. |
IFeatureCollection<IFeature> |
getPoints()
Get all the
LSPoint elements of the scheduler in a feature
collection to allow spatial queries. |
LSScheduler.MatrixSolver |
getSolver() |
protected double |
getSymbolWidth(IFeature obj)
Get the symbol width according to the object class in m.
|
EquationsSystem |
getSystemeGlobal() |
Triangulation |
getTriangulation() |
protected void |
initialiserContraintesExternes()
Initialise les contraintes externes choisies dans les mapspecs pour les
objets à ajuster.
|
protected void |
initialiserLSPoints()
Crée un LSPoint par vertex des objets à ajuster et remplit la map des
objets avec leurs LSPoints.
|
EquationsSystem |
initSystemeLocal()
Crée un système d'équation vide en fonction du solver choisi
|
protected void |
majGeometries(boolean commit)
Met à jour la géométrie des objets dont les points ont été modifiés.
|
void |
setConflits(HashSet<LSSpatialConflict> conflits) |
protected Map<LSPoint,IDirectPosition> |
setMapInconnues()
Associate
LSPoint objects with the corresponding solutions for the
unknowns of the equations system. |
void |
setMapObjGeom(Map<IFeature,IGeometry> mapObjGeom) |
void |
setMapObjPts(Map<IFeature,ArrayList<LSPoint>> mapObjPts) |
void |
setMapspec(MapspecsLS mapspec) |
void |
setObjs()
Récupère les objets à ajuster en fonction de la sélection et de l'option de
sélection choisie dans les mapspecs.
|
void |
setObjsFixes(Set<IFeature> objsFixes) |
void |
setObjsMalleables(Set<IFeature> objsMalleables) |
void |
setObjsRigides(Set<IFeature> objsRigides) |
void |
setSolver(LSScheduler.MatrixSolver solver) |
void |
setSystemeGlobal(EquationsSystem systemeGlobal) |
void |
setTriangulation(Triangulation triangulation) |
void |
triggerAdjustment(boolean diffusion,
boolean commit)
Lance l'ajustement par moindres carrés pour ce scheduler en enchaînant les
précédentes méthodes.
|
public LSScheduler.MatrixSolver solver
protected EquationsSystem systemeGlobal
protected int tailleVecteurs
public LSScheduler(MapspecsLS ms)
public void setObjs() throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException, ClassNotFoundException
Récupère les objets à ajuster en fonction de la sélection et de l'option de sélection choisie dans les mapspecs.
protected void initialiserLSPoints() throws SecurityException, IllegalArgumentException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException
Crée un LSPoint par vertex des objets à ajuster et remplit la map des objets avec leurs LSPoints. Crée pour chaque LSPoint les contraintes internes Java qui le concernent. Pour l'initialisation des contraintes externes de chaque LSPoint, lancer la méthode initialiserContraintesExternes().
protected LSPoint construirePoint(IFeature obj, IDirectPosition pt, int position, LSScheduler.GeometryType type, boolean pointExtr, double symbolWidth, Set<LSPoint> points)
Construit et renvoie un LSPoint Java à partir d'un objet géographique et des coordonnées d'un point.
protected void initialiserContraintesExternes() throws Exception
Initialise les contraintes externes choisies dans les mapspecs pour les objets à ajuster. On crée un objet contrainte que l'on lie à chaque objet à ajuster pour chaque contrainte. Crée également les contraintes externes java sur chaque LSPoint des objets concernés. Cette fonction s'appuie sur un calcul de triangulation de Delaunay pour déterminer les voisinages.
Exception
protected void assembleSystemesEquation()
Assemble les systèmes d'équation calculés pour chaque LSPoint de chaque objet ajusté.
protected void majGeometries(boolean commit)
Met à jour la géométrie des objets dont les points ont été modifiés. Une nouvelle géométrie est en fait créée et stockée dans le scheduler. Elle est appliquée à l'objet sur le paramètre commit est à true.
commit
- : true si on souhaite appliquer la nouvelle géométrie à
l'objetprotected IPoint construitNouveauPoint(IFeature obj, IPoint geomIni, Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie ponctuelle de l'objet obj suite à l'ajustement par moindres carrés.
protected ILineString construitNouvelleLigne(IFeature obj, Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie linéaire de l'objet obj suite à l'ajustement par moindres carrés.
protected IPolygon construitNouvelleSurface(IFeature obj, IPolygon geomIni, Map<LSPoint,IDirectPosition> mapInconnues)
Construit la nouvelle géométrie surfacique de l'objet obj suite à l'ajustement par moindres carrés.
protected Map<LSPoint,IDirectPosition> setMapInconnues()
LSPoint
objects with the corresponding solutions for the
unknowns of the equations system.public LSPoint getPointFromCoord(IDirectPosition pt, IFeature obj)
LSPoint
of a given feature, initially corresponding to a
position.pt
- public LSPoint getPointFromCoord(IDirectPosition pt)
LSPoint
corresponding initially to a position.pt
- public void triggerAdjustment(boolean diffusion, boolean commit)
Lance l'ajustement par moindres carrés pour ce scheduler en enchaînant les précédentes méthodes.
diffusion:
- true si on veut utiliser la diffusion sur les éléments de
réseau au bord et false si on veut fixer ces pointscommit:
- true si on veut appliquer le changement de geom sur les
objets et false si on veut juste mettre la nouvelle géométrie dans
la map attitréeprotected double getSymbolWidth(IFeature obj)
obj
- protected int countPoints()
public IFeatureCollection<IFeature> getPoints()
LSPoint
elements of the scheduler in a feature
collection to allow spatial queries.protected int countObjs()
public EquationsSystem initSystemeLocal()
public void clearScheduler()
public void setConflits(HashSet<LSSpatialConflict> conflits)
public HashSet<LSSpatialConflict> getConflits()
public MapspecsLS getMapspec()
public void setMapspec(MapspecsLS mapspec)
public LSScheduler.MatrixSolver getSolver()
public void setSolver(LSScheduler.MatrixSolver solver)
public IEnvelope getEnvelope()
public EquationsSystem getSystemeGlobal()
public void setSystemeGlobal(EquationsSystem systemeGlobal)
public Triangulation getTriangulation()
public void setTriangulation(Triangulation triangulation)
Copyright © 2016 Laboratoire COGIT, IGN. All rights reserved.