Академический Документы
Профессиональный Документы
Культура Документы
Geometras
2013gvSIGAssociation
2013gvSIGAssociation
EstedocumentosedistribuyeconlalicenciaCreativeCommons
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 2
ndice de contenido
1Geometras.Introduccin.................................................................................................3
2Elconceptodetipoysubtipo............................................................................................3
3Creacindegeometras.....................................................................................................4
4GeometradetipoPunto.FuncincreatePoint...............................................................4
5GeometrasdetipoPolygon.FuncincreatePolygon......................................................5
6GeometradetipoLnea.FuncincreateLine.................................................................6
7GeometradetipoMultipunto.FuncincreateMultiPoint.............................................6
8GeometradetipoMultilnea.FuncincreateMultiLine................................................8
9GeometradetipoMultipolgono.FuncincreateMultiPolygon...................................8
10Operacionescongeometras...........................................................................................9
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 3
1 Geometras. Introduccin
EstainterfazesequivalentealaGM_ObjectespecificadoenlanormaISO19107.Eslaclaserazde
lataxonomaobjetogeomtricoysoportainterfaces comunesatodoslosobjetos referenciados
geogrficamentegeomtricas.
Geometra son conjuntos de posiciones directas en un sistema de coordenadas de referencia
particular.Unageometrapuedeserconsideradocomounconjuntoinfinitodepuntosquesatisface
lasinterfacesdeoperacindeajusteparaunconjuntodeposicionesdirectas.
Unobjetogeomtricoserunacombinacindeunageometradecoordenadasyunsistemade
coordenadasdereferencia.Entodaslasoperaciones,todoslosclculosgeomtricossehaceenel
sistemadecoordenadasdereferenciadelprimerobjetogeomtricovisitada,quenormalmenteesel
objeto cuya operacin est siendo invocado. Objetos devueltos debern estar en el sistema de
coordenadasdereferenciaenelquelosclculossehacenamenosqueseespecifiquelocontrario.
LossubtiposdegvSIGseencuentrandefinidosenSUBTYPESyson
D2(GEOM2D):Geometrasde2dimensiones
D2M(GEOM2DM):Geometrasde2dimensionesyconcoordenadaM
D3(GEOM3D):Geometrasde3dimensiones
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 4
D3M(GEOM3DM):Geometrasde3dimensionesyconcoordenadaM
3 Creacin de geometras
DentrodelentornodescriptingengvSIG,sehacreadounmdulo,geom.py,quesimplificaalgunas
delasoperacionesmshabitualesconlasgeometras.
Para crear una geometra debemos importar ennuestro script el mdulo 'geom' einvocar ala
funcincreateGeometryindicandoeltipoyelsubtipodelanuevageometra.
from geom import *
def main():
geometry = createGeometry(POINT, D2)
Lageometraascreadaesunageometradetipopuntoysubtipo2dvaca.
createPoint(x,y,subtype)
x,double(opcional):ValordelacoordenadaXdelpunto.Elvalorpordefectoes0.0
y,double(opcional):ValordelacoordenadaYdelpunto.Elvalorpordefectoes0.0
subtype, int (opcional): Indica las dimensiones de la geometra y si soporta
coordenadaz.ElvalorpordefectoesD2
Losmtodosmshabitualesdeunageometradetipopuntoson:
getCoordinateAt(dimension):Obtineelvalordelacoordenadaenunadimensinconcreta.
dimension,int:Dimensindelaqueobtenerlacoordenada
getX():DevuelveelvalordelacoordenadaX
getY():DevuelveelvalordelacoordenadaY
setCoordinateAt(dimension,value):Estableceelvalordeunadimensinconcreta
dimension,int:Dimensinsobrelaqueseestablecelacoordenada
value,double:Valoraasignaralacoordenada
setX(x):EstableceelvalordelacoordenadaX
x,double:ValoraasignaralacoordenadaX
setY(y):EstableceelvalordelacoordenadaY
y,double:ValoraasignaralacoordenadaY
Supongamosquetenemosunageometradetipopuntoyqueremosobtenersuscoordenadas"x"e
"y"parapodercrearotrageometradetipopntoconesosvalores.
from geom import *
def main():
#
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 5
#codigo ...
x = point.getX()
y = point.getY()
newPoint = createPoint(x,y)
Paraeditarorecuperarelrestodevaloresdelasotrasdimensioneshayqueutilizarlosmtodos
genricossetCoordinateAtygetCoordinateAt.
Porejemplo,paracrearunpuntoen3dimensionescuyascoordenadassean1,1,5hayqueejecutarel
siguientecdigo:
point = createGeometry(POINT, D3)
point.setCoordinateAt(0, 1)
point.setCoordinateAt(1, 1)
point.setCoordinateAt(2, 5)
OtraopcinpodraserhacerloutilizandolosmtodossetX()ysetY()delageometrayelmtodo
setCoordinateAt(dimension,value)yelpuntoobtenidoseraelmismo:
point = createGeometry(POINT, D3)
point.setX(1)
point.setY(1)
point.setCoordinateAt(2, 5)
Paraobtenerinformacinmscompletasobrelosmtodosdeunageometradetipopunto,puede
consultarseladocumentacindelageometradetipoPunto
createPolygon(subtype):Creaunageometradetipopolgono.
subtype, int (opcional): Indica las dimensiones de la geometra y si soporta
coordenadaz.ElvalorpordefectoesD2
Losmtodoscomunesdeestasgeometrasson:
addVertex(point):Aadeunvrticealageometra
point,Point:Geometradetipopuntoaaadiralpolgono
closePrimitive():Cierralageometra
getBounds():RectangleDevuelveellmiterectangulardelageometra.
getCoordinateAt(int index, int dimension): Obtiene el valor de la coordenada de una
dimensinconcreta
getEnvelope():Devuleveelboundingboxmnimodelageometra
getNumVertices():Devuelveelnmerodevrticesdelageometra
getVertex(int index): Devuelve una geometra de tipo punto del vrtice index de la
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 6
geometra
Unejemplo,elsiguientecdigocreaunageometradetipopolgono,alaqueaade4vrtices.
from geom import *
def main():
polygon = createPolygon(D2M)
x = (1, 1, 5, 5)
y = (1, 5, 5, 1)
points = [createPoint(p[0], p[1]) for p in zip(x, y)]
for point in points:
polygon.addVertex(point)
polygon.closePrimitive()
createLine(subtype):Creaunageometradetipolnea(LINE).
subtype, int (opcional): Indica las dimensiones de la geometra y si soporta
coordenadaz.ElvalorpordefectoesD2
Losmtodoscomunesdeestasgeometrasson:
addVertex(point):Aadeunvrticealageometra
point,Point:Geometradetipopuntoaaadiralpolgono
closePrimitive():Cierralageometra
getBounds():RectangleDevuelveellmiterectangulardelageometra.
getCoordinateAt(int index, int dimension): Obtiene el valor de la coordenada de una
dimensinconcreta
getEnvelope():Devuleveelboundingboxmnimodelageometra
getNumVertices():Devuelveelnmerodevrticesdelageometra
getVertex(int index): Devuelve una geometra de tipo punto del vrtice index de la
geometras
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 7
createMultiPoint([subtype])
createMultiPoint(subtype):CreaunageometradetipoMULTIPOINT
subtype,int:Subtipodelageometra
ElsiguientecdigocreaunageometradetipoMULTIPOINTyaade6geometrasdetipoPOINT
from geom import *
def main():
multipoint = createMultiPoint(subtype=D2)
x = (1, 1, 5, 5, 10, 0)
y = (1, 5, 5, 1, 10, 10)
points = [createPoint(p[0], p[1]) for p in zip(x, y)]
for point in points:
multipoint.addPoint(point)
Tambin pueden aadirse puntos a la geometra MULTIPOINT pasando como parmetros dos
listas,unaconlascoordenadasXyotraconlascoordenadasYdelospuntosquevanaformarla
multigeometra.
from geom import *
def main():
multipoint = createMultiPoint(subtype=D2)
x = (1, 1, 5, 5, 10, 0)
y = (1, 5, 5, 1, 10, 10)
multipoint.setPoints(x, y)
LosmtodosdelaclaseMULTIPOINTson:
addPoint(point)
cloneGeometry()
getEnvelope()
getPrimitivesNumber()
setPoints(xCoords,yCoords)
getPointAt(index)
addPoint(Pointpoint):AadeunageometradetipoPOINTalamultigeometra
Pointpoint:puntoaaadirenlageometra
cloneGeometry():Creaunacopiadeestageometra.
getEnvelope():Devulevelamnimaenvolventedelageometra.
getPrimitivesNumber():Devuleveelnmerodegeometrasqueformanlamultigeometra
setPoints(double[] xCoords, double[] yCoords): Inserta en la multigeometra los puntos
correspondientes.
double[]xCoords:ListadecoordenadasXdelospuntos
double[]yCoords:ListadecoordenadasYdelospuntos
getPointAt(intindex):devuelveelpuntodeunaposicinconcretadelamultigeometra
intindex:posicindelpunto
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 8
createMultiLine(subtype):CreaunageometradetipoMULTILINE
subtype,int:Subtipodelageometra
LosmtodosdelaclaseMULTILINEson:
addCurve(line)
getCurveAt(index)
cloneGeometry()
getEnvelope()
getPrimitivesNumber()
addCurve(line):Aadeunanuevalnea(LINE)alamultigeometra
LINEline:Lneaqueseaade
getCurveAt(index):DevuleveunalneaLINEdeunaposicinconcretadelamultigeometra
intindex:Posicindelalneadentrodelamultigeometra
cloneGeometry():Creaunacopiadeestageometra.
getEnvelope():Devulevelamnimaenvolventedelageometra.
getPrimitivesNumber():Devuelveelnmerodegeometrasqueformanlamultigeometra
createMultiPolygon(subtype):CreaunageometradetipoMULTILINE
subtype,int:Subtipodelageometra
LosmtodosdelaclaseMULTIPOLYGONson:
addSurface(polygon)
cloneGeometry()
getSurfaceAt(index)
cloneGeometry()
getEnvelope()
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 9
getPrimitivesNumber()
addSurface(polygon):Aadeunnuevopolgono(POLYGON)alamultigeometra
POLYGONpolygon:Polgonoqueseaade
getSurfaceAt(index):Devuelveunpolgono(POLYGON)deunaposicinconcretadela
multigeometra
intindex:Posicindelalneadentrodelamultigeometra
cloneGeometry():Creaunacopiadeestageometra.
getEnvelope():Devulevelamnimaenvolventedelageometra.
getPrimitivesNumber():Devuelveelnmerodegeometrasqueformanlamultigeometra
ParamsinformacinpuedeconsultarseelAPIdegeometrasdegvSIG
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 10
gvSIGAssociation
PlazaDonJuandeVillarrasa145,
46001,Valencia(Spain)
RegistroNacionaldeAsociaciones:596206
email:info@gvsig.com
Web:www.gvsig.com
Webdelproyecto:http://www.gvsig.org
DocumentacinrealizadaporVctorAcevedo.
ListasdeDistribucin
Existentreslistasdedistribucinconelobjetodefacilitarlacomunicacinentretodoslosinteresadosenelproyecto
gvSIG.Lasdosprimeras,ladeusuariosyladedesarrolladores,estnprincipalmenteorientadasalacomunidadde
habla hispana, siendo el castellano el idioma preferente a utilizar en las mismas. La tercera de ellas, lista
internacional,estorientadaprincipalmentealrestodecomunidadesylalenguapreferenteautilizareslainglesa.
Listadeusuarios.Aqupodishacerllegarvuestraopininsobreelfuncionamiento:qucosasos
gustaraquesedesarrollaran,dudasenelusodegvSIGytodoaquelloquepensisquetienecabidaenunalista
deusuarios.Elenlaceparalasuscripcinalalistadeusuarioses:
http://listserv.gva.es/mailman/listinfo/gvsig_usuarios
Listadedesarrolladores.Estorientadaparatodoslosinteresadosenconocercmoestdesarrollado
elgvSIG.Elenlaceparalasuscripcinaestalistaesa:
http://listserv.gva.es/mailman/listinfo/gvsig_desarrolladores
Listainternacional.Estorientadatantoparausuarioscomoparadesarrolladoresdehablanohispana.
Elidiomaautilizarespreferentementeingls.Elenlaceparalasuscripcinaestalistaes:
http://listserv.gva.es/mailman/listinfo/gvsig_internacional
Todos los nombres propios de programas, sistemas operativos, equipo hardware etc., que
aparecenenestecursosonmarcasregistradasdesusrespectivascompaasuorganizaciones.
2013gvSIGAssociation
2013gvSIGAssociation