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)
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
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
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
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