Example #1
0
    def renderTile(self, width, height, srs, coord):
        """ Render a single tile, return a VectorResponse instance.
        """
        layer, ds = _open_layer(self.driver, self.parameters, self.layer.config.dirpath)
        features = _get_features(
            coord,
            self.properties,
            self.layer.projection,
            layer,
            self.clipped,
            self.projected,
            self.spacing,
            self.id_property,
        )
        response = {"type": "FeatureCollection", "features": features}

        if self.projected:
            sref = osr.SpatialReference()
            sref.ImportFromProj4(self.layer.projection.srs)
            response["crs"] = {"wkt": sref.ExportToWkt()}

            if srs == getProjectionByName("spherical mercator").srs:
                response["crs"]["wkid"] = 102113
        else:
            response["crs"] = {"srid": 4326, "wkid": 4326}

        return VectorResponse(response, self.verbose, self.precision)
Example #2
0
    def __init__(self, layer, type, query, **kwargs):

        self.mercator = getProjectionByName('spherical mercator')
        self.layer = layer
        self.type = type
        self. query = query
        self.table = kwargs.get('table', 'planet_osm_line')
        self.fill = kwargs.get('fill', '#000000')
        self.zoom_factor = kwargs.get('zoom_factor', 2)
        self.datasource = kwargs.get('datasource', 'xapi')

        self.xapi = None
        self.pgis = None

        # Hey look! You're reading the source code and have found an
        # Easter egg!! This is pretty much exactly what it looks like:
        # Instead of querying the Mapquest XAPI endpoint you can also
        # query a PostGIS database that has a copy of the rendering
        # database (the thing that osm2pgsql creates). Please note that
        # by querying a copy of the rendering database instead of a
        # tagging database that the results returned may be incomplete
        # and/or weird.

        if self.datasource == 'postgis':
            self.pgis = _connect(kwargs.get('dbdsn', '')).cursor(cursor_factory=RealDictCursor)
        else:
            self.xapi = mapquest.xapi.xapi()
Example #3
0
    def __init__(self, layer, type, query, **kwargs):

        self.mercator = getProjectionByName('spherical mercator')
        self.layer = layer
        self.type = type
        self.query = query
        self.table = kwargs.get('table', 'planet_osm_line')
        self.fill = kwargs.get('fill', '#000000')
        self.zoom_factor = kwargs.get('zoom_factor', 2)
        self.datasource = kwargs.get('datasource', 'xapi')

        self.xapi = None
        self.pgis = None

        # Hey look! You're reading the source code and have found an
        # Easter egg!! This is pretty much exactly what it looks like:
        # Instead of querying the Mapquest XAPI endpoint you can also
        # query a PostGIS database that has a copy of the rendering
        # database (the thing that osm2pgsql creates). Please note that
        # by querying a copy of the rendering database instead of a
        # tagging database that the results returned may be incomplete
        # and/or weird.

        if self.datasource == 'postgis':
            self.pgis = _connect(kwargs.get(
                'dbdsn', '')).cursor(cursor_factory=RealDictCursor)
        else:
            self.xapi = mapquest.xapi.xapi()
Example #4
0
    def __init__(self,
                 layer,
                 mapfile,
                 fields,
                 layer_index=0,
                 wrapper=None,
                 scale=4,
                 buffer=0):
        """
        """
        self.mapnik = None
        self.layer = layer

        maphref = urljoin(layer.config.dirpath, mapfile)
        scheme, h, path, q, p, f = urlparse(maphref)

        if scheme in ('file', ''):
            self.mapfile = path
        else:
            self.mapfile = maphref

        self.layer_index = layer_index
        self.wrapper = wrapper
        self.scale = scale
        self.buffer = buffer
        #De-Unicode the strings or mapnik gets upset
        self.fields = list(str(x) for x in fields)

        self.mercator = getProjectionByName('spherical mercator')
Example #5
0
def _sref_4326():
    """
    """
    sref = osr.SpatialReference()
    proj = getProjectionByName('WGS84')
    sref.ImportFromProj4(proj.srs)
    
    return sref
Example #6
0
def _sref_4326():
    """
    """
    sref = osr.SpatialReference()
    proj = getProjectionByName('WGS84')
    sref.ImportFromProj4(proj.srs)
    
    return sref
 def __init__(self, layer, dsn, query, clipping=False, id_column='id', geometry_column='geometry', indent=2, precision=6):
     self.layer = layer
     self.dbdsn = dsn
     self.query = query
     self.mercator = getProjectionByName('spherical mercator')
     self.geometry_field = geometry_column
     self.id_field = id_column
     self.indent = indent
     self.precision = precision
     self.clipping = clipping
Example #8
0
    def __init__(self, layer, mapfile, fields, layer_index=0, wrapper=None, scale=4):
        """
        """
        self.mapnik = None
        self.layer = layer
        self.mapfile = mapfile
        self.layer_index = layer_index
        self.wrapper = wrapper
        self.scale = scale
        #De-Unicode the strings or mapnik gets upset
        self.fields = list(str(x) for x in fields)

        self.mercator = getProjectionByName('spherical mercator')
Example #9
0
    def __init__(self, layer, es_endpoint, es_index, es_size, es_record, **kwargs):
        self.projection = getProjectionByName('spherical mercator')
        self.layer = layer

        self.endpoint = str(es_endpoint)
        self.index = str(es_index)
        self.record = str(es_record)
        self.size = int(es_size);

        self.es = Elasticsearch([self.endpoint])

        self.lat_field = kwargs.get('latitude_column', 'latitude')
        self.lon_field = kwargs.get('longitude_column', 'longitude')
        self.id_field = kwargs.get('id_column', '')
Example #10
0
    def __init__(self, layer, es_endpoint, es_index, es_size, es_record,
                 **kwargs):
        self.projection = getProjectionByName('spherical mercator')
        self.layer = layer

        self.endpoint = str(es_endpoint)
        self.index = str(es_index)
        self.record = str(es_record)
        self.size = int(es_size)

        self.es = Elasticsearch([self.endpoint])

        self.lat_field = kwargs.get('latitude_column', 'latitude')
        self.lon_field = kwargs.get('longitude_column', 'longitude')
        self.id_field = kwargs.get('id_column', '')
Example #11
0
    def __init__(self, layer, solr_endpoint, solr_query, **kwargs):
        self.projection = getProjectionByName('spherical mercator')
        self.layer = layer

        self.endpoint = str(solr_endpoint)
        self.query = solr_query

        self.solr = pysolr.Solr(self.endpoint)

        self.query_parser = kwargs.get('query_parser', 'spatial')
        self.lat_field = kwargs.get('latitude_column', 'latitude')
        self.lon_field = kwargs.get('longitude_column', 'longitude')
        self.id_field = kwargs.get('id_column', '')

        self.solr_radius = kwargs.get('radius', None)
        self.solr_fields = kwargs.get('response_fields', None)
Example #12
0
    def __init__(self, layer, solr_endpoint, solr_query, **kwargs):
        self.projection = getProjectionByName('spherical mercator')
        self.layer = layer

        self.endpoint = str(solr_endpoint)
        self.query = solr_query

        self.solr = pysolr.Solr(self.endpoint)

        self.query_parser = kwargs.get('query_parser', 'spatial')
        self.lat_field = kwargs.get('latitude_column', 'latitude')
        self.lon_field = kwargs.get('longitude_column', 'longitude')
        self.id_field = kwargs.get('id_column', '')

        self.solr_radius = kwargs.get('radius', None)
        self.solr_fields = kwargs.get('response_fields', None)
Example #13
0
 def __init__(self,
              layer,
              dsn,
              query,
              clipping=False,
              id_column='id',
              geometry_column='geometry',
              indent=2,
              precision=6):
     self.layer = layer
     self.dbdsn = dsn
     self.query = query
     self.mercator = getProjectionByName('spherical mercator')
     self.geometry_field = geometry_column
     self.id_field = id_column
     self.indent = indent
     self.precision = precision
     self.clipping = clipping
Example #14
0
    def renderTile(self, width, height, srs, coord):
        """ Render a single tile, return a VectorResponse instance.
        """
        layer, ds = _open_layer(self.driver, self.parameters, self.layer.config.dirpath)
        features = _get_features(coord, self.properties, self.layer.projection, layer, self.clipped, self.projected)
        response = {'type': 'FeatureCollection', 'features': features}
        
        if self.projected:
            sref = osr.SpatialReference()
            sref.ImportFromProj4(self.layer.projection.srs)
            response['crs'] = {'wkt': sref.ExportToWkt()}
            
            if srs == getProjectionByName('spherical mercator').srs:
                response['crs']['wkid'] = 102113
        else:
            response['crs'] = {'srid': 4326, 'wkid': 4326}

        return VectorResponse(response, self.verbose)
    def renderTile(self, width, height, srs, coord):
        """ Render a single tile, return a VectorResponse instance.
        """
        layer, ds = _open_layer(self.driver, self.parameters, self.layer.config.dirpath)
        features = _get_features(coord, self.properties, self.layer.projection, layer, self.clipped, self.projected, self.spacing, self.id_property, self.skip_empty_fields)
        response = {'type': 'FeatureCollection', 'features': features}
        
        if self.projected:
            sref = osr.SpatialReference()
            sref.ImportFromProj4(self.layer.projection.srs)
            response['crs'] = {'wkt': sref.ExportToWkt()}
            
            if srs == getProjectionByName('spherical mercator').srs:
                response['crs']['wkid'] = 102113
        else:
            response['crs'] = {'srid': 4326, 'wkid': 4326}

        return VectorResponse(response, self.verbose, self.precision)
Example #16
0
    def __init__(self,
                 layer,
                 mapfile,
                 fields,
                 layer_index=0,
                 wrapper=None,
                 scale=4):
        """
        """
        self.mapnik = None
        self.layer = layer
        self.mapfile = mapfile
        self.layer_index = layer_index
        self.wrapper = wrapper
        self.scale = scale
        #De-Unicode the strings or mapnik gets upset
        self.fields = list(str(x) for x in fields)

        self.mercator = getProjectionByName('spherical mercator')
Example #17
0
    def __init__(self, layer, mapfile, fields, layer_index=0, wrapper=None, scale=4, buffer=0):
        """
        """
        self.mapnik = None
        self.layer = layer

        maphref = urljoin(layer.config.dirpath, mapfile)
        scheme, h, path, q, p, f = urlparse(maphref)

        if scheme in ("file", ""):
            self.mapfile = path
        else:
            self.mapfile = maphref

        self.layer_index = layer_index
        self.wrapper = wrapper
        self.scale = scale
        self.buffer = buffer
        # De-Unicode the strings or mapnik gets upset
        self.fields = list(str(x) for x in fields)

        self.mercator = getProjectionByName("spherical mercator")