Beispiel #1
0
def convOSM(wkt):
    """ Converts standard merkartor 
        to osm projection as tuple 
    """
    obj = OGRGeometry(wkt)
    obj.srs = 'EPSG:4326'
    obj.transform_to(SpatialReference('EPSG:900913'))
    #obj.transform_to(SpatialReference('EPSG:4326'))
    return (obj.x, obj.y)
Beispiel #2
0
def street_location(request):
    if request.method == 'GET':
        params = request.GET        
        points = []
        if params.has_key('str'):
            if params.has_key('int'):
                points += (get_locations_by_intersection(params['str'],params['int']))
                
            elif params.has_key('door'):
                loc = get_location_by_door(params['str'],params['door'])
                if loc:
                    points.append(loc[0].wkt)
            else:
                raise Http404

            if params.has_key('out'):
                out = params['out']
                if out == 'layer' and points:
                    lpoints = []
                    for p in points: 
                        pgeom = OGRGeometry(p)
                        pgeom.srs = 'EPSG:4326'
                        pgeom.transform_to(SpatialReference('EPSG:900913'))
                        pcoord = simplejson.loads(pgeom.json)
                        lpoints.append({
                          "type": "point",
                          "id": 'point', 
                          "name": "pipin",
                          "geojson": pcoord, 
                          "icon": {
                            "url": "/media/icons/info.png", 
                            "width": 32, 
                            "height": 37
                            }
                        })
                    
                    layer = {
                        'type': 'layer',
                        'id': 'layer-location',
                        'elements': lpoints,
                        'box_size': None
                    }                    
                    return HttpResponse(simplejson.dumps(layer), mimetype='text/json')  
                else:
                    raise Http404
            
            else:
                path = request.get_full_path() + '&out=layer'
                context = RequestContext(request, {'params': params, 'layerpath':path})
                return render_to_response('maap/street_location.html', context_instance=context)               
                
        else:
            raise Http404        
    else:
        raise Http404
Beispiel #3
0
def Get_PointGeom(d):
    if d['g']:
        X = d['X']
        Y = d['Y']
        Z = d['Z']
        wkt = 'POINT(%f %f)'%(X,Y) # z niet ondersteund in geometry kennelijk...
        oPoint = OGRGeometry(wkt, SpatialReference('EPSG:28992'))
        oPoint.transform_to(SpatialReference('WGS84')) # transform van RD_NEW naar WGS84
        PointGeom = oPoint.wkt
        return PointGeom
    else:
        return None
def transform_geom(wkt, srid_in, srid_out):

    proj_in = SpatialReference(int(srid_in))
    proj_out = SpatialReference(int(srid_out))
    ogr = OGRGeometry(wkt)
    if hasattr(ogr, 'srs'):
        ogr.srs = proj_in
    else:
        ogr.set_srs(proj_in)

    ogr.transform_to(proj_out)

    return ogr.wkt
Beispiel #5
0
def transform_geom(wkt, srid_in, srid_out):

    proj_in = SpatialReference(int(srid_in))
    proj_out = SpatialReference(int(srid_out))
    ogr = OGRGeometry(wkt)
    if hasattr(ogr, 'srs'):
        ogr.srs = proj_in
    else:
        ogr.set_srs(proj_in)

    ogr.transform_to(proj_out)

    return ogr.wkt
Beispiel #6
0
	def save(self):
		import geopy
		#Override default save to convert lat/lon in DMS to the right SRID
		#example input ''' 31°30'33"N   34°27'43"E '''

		self.latitude.replace(u'\xc2\xb0',' ') #clear strange characters
		self.longitude.replace(u'\xc2\xb0',' ')
		point = geopy.Point("%s %s" % (self.latitude,self.longitude)) #convert to decimal degrees
		wkt = 'POINT (%s %s)' % (point.longitude,point.latitude)
		gsm = OGRGeometry(wkt,4326) #create OGR geometry
		gsm.transform_to(SpatialReference('EPSG:%s' % theSRID)) #convert to the db srid
		self.coords = str(gsm)

		self.save_base(force_insert=False, force_update=False)
def get_extent_from_text(points, srid_in, srid_out):
    """Transform an extent from srid_in to srid_out."""
    proj_in = SpatialReference(srid_in)

    proj_out = SpatialReference(srid_out)

    if srid_out == 900913:
        if int(float(points[0])) == -180:
            points[0] = -179
        if int(float(points[1])) == -90:
            points[1] = -89
        if int(float(points[2])) == 180:
            points[2] = 179
        if int(float(points[3])) == 90:
            points[3] = 89

    wkt = 'POINT(%f %f)' % (float(points[0]), float(points[1]))
    wkt2 = 'POINT(%f %f)' % (float(points[2]), float(points[3]))

    ogr = OGRGeometry(wkt)
    ogr2 = OGRGeometry(wkt2)

    if hasattr(ogr, 'srs'):
        ogr.srs = proj_in
        ogr2.srs = proj_in
    else:
        ogr.set_srs(proj_in)
        ogr2.set_srs(proj_in)

    ogr.transform_to(proj_out)
    ogr2.transform_to(proj_out)

    wkt = ogr.wkt
    wkt2 = ogr2.wkt

    mins = wkt.replace('POINT (', '').replace(')', '').split(' ')
    maxs = wkt2.replace('POINT (', '').replace(')', '').split(' ')
    mins.append(maxs[0])
    mins.append(maxs[1])

    return mins
Beispiel #8
0
def get_extent_from_text(points, srid_in, srid_out):
    """Transform an extent from srid_in to srid_out."""
    proj_in = SpatialReference(srid_in)

    proj_out = SpatialReference(srid_out)

    if srid_out == 900913:
        if int(float(points[0])) == -180:
            points[0] = -179
        if int(float(points[1])) == -90:
            points[1] = -89
        if int(float(points[2])) == 180:
            points[2] = 179
        if int(float(points[3])) == 90:
            points[3] = 89

    wkt = 'POINT(%f %f)' % (float(points[0]), float(points[1]))
    wkt2 = 'POINT(%f %f)' % (float(points[2]), float(points[3]))

    ogr = OGRGeometry(wkt)
    ogr2 = OGRGeometry(wkt2)

    if hasattr(ogr, 'srs'):
        ogr.srs = proj_in
        ogr2.srs = proj_in
    else:
        ogr.set_srs(proj_in)
        ogr2.set_srs(proj_in)

    ogr.transform_to(proj_out)
    ogr2.transform_to(proj_out)

    wkt = ogr.wkt
    wkt2 = ogr2.wkt

    mins = wkt.replace('POINT (', '').replace(')', '').split(' ')
    maxs = wkt2.replace('POINT (', '').replace(')', '').split(' ')
    mins.append(maxs[0])
    mins.append(maxs[1])

    return mins
Beispiel #9
0
def osm_change_srid(geom, srid):
    """ Converts standard merkartor to desired projection """
    obj = OGRGeometry(geom.wkt)
    obj.srs = OSM_SRID
    obj.transform_to(SpatialReference(srid))
    return obj.geos
Beispiel #10
0
def osm_change_srid(geom, srid):
    """ Converts standard merkartor to desired projection """
    obj = OGRGeometry(geom.wkt)
    obj.srs = OSM_SRID
    obj.transform_to(SpatialReference(srid))
    return obj.geos