Пример #1
0
    def __init__(self,
                 title=None,
                 geometry=None,
                 zoom=None,
                 geojson_url=None,
                 author=None):
        self.title = title
        self.status = 1
        self.geometry = geometry
        self.short_description = u''
        self.description = u''
        self.workflow = u''
        self.zoom = zoom
        self.geojson_url = geojson_url
        self.author = author

        tiles = []

        if geojson_url:

            def build_wkt(polygon):
                wkt = ''
                for c in polygon:
                    if wkt != '':
                        wkt = wkt + ','
                    wkt = wkt + str(c[0]) + " " + str(c[1])
                return '(' + wkt + ')'

            jsonurl = urllib.urlopen(geojson_url)
            data = json.loads(jsonurl.read())

            x = 0
            for f in data['features']:
                wkt_string = []
                try:
                    import_url = f['properties']['import_url']
                except KeyError:
                    import_url = None
                for p in f['geometry']['coordinates']:
                    if f['geometry']['type'] == "MultiPolygon":
                        wkt_string = []
                        for subp in p:
                            wkt_string.append(build_wkt(subp))
                        t = Tile(x, 0, 0,
                                 'POLYGON(' + ','.join(wkt_string) + ')',
                                 import_url)
                        x = x + 1
                        tiles.append(t)
                    else:
                        wkt_string.append(build_wkt(p))
                if f['geometry']['type'] != "MultiPolygon":
                    t = Tile(x, 0, 0, 'POLYGON(' + ','.join(wkt_string) + ')',
                             import_url)
                    x = x + 1
                    tiles.append(t)
        else:
            for i in get_tiles_in_geom(loads(geometry), int(zoom)):
                tiles.append(Tile(i[0], i[1], int(zoom)))

        self.tiles = tiles
Пример #2
0
    def __init__(self, title=None,
                 geometry=None, zoom=None, geojson_url=None, author=None):
        self.title = title
        self.status = 1
        self.geometry = geometry
        self.short_description = u''
        self.description = u''
        self.workflow = u''
        self.zoom = zoom
        self.geojson_url = geojson_url
        self.author = author

        tiles = []
        
        if geojson_url:
            def build_wkt(polygon):
                wkt = ''
                for c in polygon:
                    if wkt != '':
                        wkt = wkt + ','
                    wkt = wkt + str(c[0]) + " " + str(c[1])
                return '(' + wkt + ')'
                
            jsonurl = urllib.urlopen(geojson_url)
            data = json.loads(jsonurl.read())
            
            x = 0
            for f in data['features']:
                wkt_string = []
                try:
                    import_url = f['properties']['import_url']
                except KeyError:
                    import_url = None
                for p in f['geometry']['coordinates']:
                    if f['geometry']['type'] == "MultiPolygon":
                        wkt_string = []
                        for subp in p:
                            wkt_string.append(build_wkt(subp))
                        t = Tile(x,0,0,'POLYGON(' + ','.join(wkt_string) + ')',import_url)
                        x = x + 1
                        tiles.append(t)
                    else:
                        wkt_string.append(build_wkt(p))
                if f['geometry']['type'] != "MultiPolygon":
                    t = Tile(x,0,0,'POLYGON(' + ','.join(wkt_string) + ')',import_url)
                    x = x + 1
                    tiles.append(t)
        else:
            for i in get_tiles_in_geom(loads(geometry), int(zoom)):
                tiles.append(Tile(i[0], i[1], int(zoom)))
          
        self.tiles = tiles
Пример #3
0
    def __init__(self, title=None,
                 geometry=None, zoom=None):
        self.title = title
        self.status = 1
        self.geometry = geometry
        self.zoom = zoom
        self.short_description = u''
        self.description = u''
        self.workflow = u''

        tiles = []
        for i in get_tiles_in_geom(loads(geometry), int(zoom)):
            tiles.append(Tile(i[0], i[1]))
        self.tiles = tiles
Пример #4
0
    def __init__(self, title=None, geometry=None, zoom=None, author=None):
        self.title = title
        self.status = 1
        self.geometry = geometry
        self.short_description = u''
        self.description = u''
        self.workflow = u''
        self.zoom = zoom
        self.author = author

        tiles = []
        for i in get_tiles_in_geom(loads(geometry), int(zoom)):
            tiles.append(Tile(i[0], i[1], int(zoom)))
        self.tiles = tiles
Пример #5
0
    def __init__(self, title=None,
                 short_description='', description=None, workflow=None,
                 geometry=None, zoom=None, is_private=False, imagery=None,
                 requires_nextview=False, status=1):
        self.title = title
        self.status = status
        self.description = description
        self.short_description = short_description
        self.geometry = geometry
        self.workflow = workflow
        self.imagery = imagery
        self.zoom = zoom
        self.is_private = is_private
        self.requires_nextview = requires_nextview

        tiles = []
        for i in get_tiles_in_geom(loads(geometry), int(zoom)):
            tiles.append(Tile(i[0], i[1]))
        self.tiles = tiles
Пример #6
0
def job_new(request):
    if "form.submitted" in request.params:
        session = DBSession()
        job = Job()
        job.title = request.params["title"]
        job.description = request.params["description"]
        job.geometry = request.params["geometry"]
        job.workflow = request.params["workflow"]
        job.imagery = request.params["imagery"]
        job.zoom = request.params["zoom"]
        job.is_private = request.params.get("is_private", 0)
        job.requires_nextview = request.params.get("requires_nextview", 0)

        tiles = []
        for i in get_tiles_in_geom(loads(job.geometry), int(job.zoom)):
            tiles.append(Tile(i[0], i[1]))
        job.tiles = tiles

        session.add(job)
        session.flush()
        return HTTPFound(location=route_url("job", request, job=job.id))
    return {}
Пример #7
0
def job_new(request):
    if 'form.submitted' in request.params:
        session = DBSession()
        job = Job()
        job.title = request.params['title']
        job.description = request.params['description']
        job.geometry = request.params['geometry']
        job.workflow = request.params['workflow']
        job.imagery = request.params['imagery']
        job.zoom = request.params['zoom']
        job.is_private = request.params.get('is_private', 0)
        job.requires_nextview = request.params.get('requires_nextview', 0)

        tiles = []
        for i in get_tiles_in_geom(loads(job.geometry), int(job.zoom)):
            tiles.append(Tile(i[0], i[1]))
        job.tiles = tiles

        session.add(job)
        session.flush()
        return HTTPFound(location = route_url('job', request, job=job.id))
    return {}