Revision 628 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/resources-plugin/scripting/lib/geom.py

View differences:

geom.py
93 93
        return None
94 94
    return geometry
95 95

  
96
def createPoint(x=0, y=0, subtype=D2):
97
    """
98
    Returns a new point with a subtype and sets the value for the X and the Y
99
    coordinates (default 0,0) or None if can't create point
100
    :param x: X coordinate value
101
    :param y: Y coordinate value
102
    :type x: double
103
    :type y: double
104
    :return: Point
105
    :rtype: Point
106
    """
107
    try:
108
        geometryManager = GeometryLocator.getGeometryManager()
109
        point = geometryManager.createPoint(x, y, subtype)
110
    except:
96
def createPoint2D(x=None, y=None):
97
    if x==None and y==None:
98
        return createPoint(D2)
99
    elif x==None or y==None:
111 100
        return None
101
    else:
102
        return createPoint(D2, x, y)
112 103

  
113
    return point
104
def createLine2D(vertexes=None):
105
    if vertexes==None:
106
        return createLine(D2)
107
    else:
108
        return createLine(D2, vertexes)
114 109

  
115
def createNewPoint(subtype=D2,*coords):
110
def createPolygon2D(vertexes=None):
111
    if vertexes==None:
112
        return createPolygon(D2)
113
    else:
114
        return createPolygon(D2, vertexes)
115

  
116

  
117
def createPoint(subtype=D2,*coords):
116 118
    """
117 119
    Returns a new point with a subtype and sets the value for the X, Y, Z and M
118 120
    coordinates (default 0,0,0,0) or None if can't create point
......
130 132
    try:
131 133
        #If is geometry, transform to a new point type.
132 134
        if len(coords)==0:
133
            print "--out"
134 135
            return point
135 136
        else:
136 137
            # Coords with one parameter
137 138
            # Check if is a Geometry
138 139

  
139
            if isinstance(coords[0], Point):
140
                return coords[0]
140
            if len(coords)==1: #FIXME
141
                coords = coords[0]
141 142

  
143
            if isinstance(coords, Point):
144
                return coords
145

  
142 146
            #Check if object have GET attribute
143 147
            get = getattr(coords,"__getitem__",None)
144 148
            if get != None and len(coords)>=2:
......
174 178
                    except:
175 179
                        m = 0
176 180
                    point.setCoordinateAt(point.getDimension()-1, m)
177

  
178 181
        return point
179 182
    except:
180 183
        return None
......
204 207
                if isinstance(point, Geometry):
205 208
                    pgeom = point
206 209
                else:
207
                    pgeom = createNewPoint(subtype, point)
210
                    pgeom = createPoint(subtype, point)
208 211
                multipoint.addPrimitive(pgeom)
209 212
        except:
210 213
            return None
......
221 224
    if vertexes!= None:
222 225
        try:
223 226
            for vertex in vertexes:
224
                vgeom = createNewPoint(subtype, vertex)
227
                vgeom = createPoint(subtype, vertex)
225 228
                polygon.addVertex(vgeom)
226 229

  
227 230
        except:
......
258 261
    if vertexes!=None:
259 262
        try:
260 263
            for vertex in vertexes:
261
                #if isinstance(vertex, Point):
262
                #    pass
263
                #else:
264
                vertex= createNewPoint(subtype, vertex)
265
                line.addVertex(vertex)
264
                v = createPoint(subtype, vertex)
265
                line.addVertex(v)
266 266
        except:
267 267
            return None
268 268

  
......
293 293
    Returns envelope as a minimum bounding box or rectangle. This envelope is
294 294
    equivalent to the GM_Envelope specified in ISO 19107.
295 295
    :param pointMax:
296
    :type pointMax: geometry POINT or Tuple or List
296
    :type pointMax: geometry POINT
297 297
    :param pointMin:
298
    :type pointMin: geometry POINT or Tuple or List
298
    :type pointMin: geometry POINT
299 299
    :return: envelope
300 300
    :rtype Geometry
301 301
    """
302
    
303
    geometryManager = GeometryLocator.getGeometryManager()
304
    if pointMin==None and pointMax==None:
305
	envelope = geometryManager.createEnvelope(dimension)
306
	return envelope
307
		
308 302
    # Coord min point
309 303
    get=getattr(pointMin,"__getitem__",None)
310 304
    if get != None:
311 305
        xmin = get(0)
312 306
        ymin = get(1)
313
    elif isinstance(pointMin, Point):
307
    else:
314 308
        xmin = pointMin.getX()
315 309
        ymin = pointMin.getY()
316
    else:
317
	return None
318 310

  
319 311
    # Coord max point
320 312
    get=getattr(pointMax,"__getitem__",None)
321 313
    if get != None:
322 314
        xmax = get(0)
323 315
        ymax = get(1)
324
    elif isinstance(pointMax, Point):
316
    else:
325 317
        xmax = pointMax.getX()
326 318
        ymax = pointMax.getY()
327
    else:
328
	return None
329 319

  
330
    try:
320
    geometryManager = GeometryLocator.getGeometryManager()
321
    if pointMax!=None and pointMin!=None:
331 322
        envelope = geometryManager.createEnvelope(xmin, ymin, xmax, ymax, dimension)
332
    except:
333
	return None
334
		
323
    else:
324
        envelope = geometryManager.createEnvelope()
325

  
335 326
    return envelope
336 327

  
337 328

  

Also available in: Unified diff