Ejemplo n.º 1
0
    def test_vector__get_bounds_local(self):
        """"""
        def makegdf(lats, lngs):
            """make a geodataframe from coords"""
            from shapely.geometry import Point
            df = pd.DataFrame({'Latitude': lats, 'Longitude': lngs})
            df['Coordinates'] = list(zip(df.Longitude, df.Latitude))
            df['Coordinates'] = df['Coordinates'].apply(Point)
            return gpd.GeoDataFrame(df, geometry='Coordinates')

        # normal usage
        llayer1 = vector.LocalLayer(makegdf([-10, 0], [-10, 0]))
        llayer2 = vector.LocalLayer(makegdf([0, 10], [0, 10]))
        self.assertDictEqual(vector._get_bounds_local([llayer1, llayer2]), {
            'west': -10,
            'south': -10,
            'east': 10,
            'north': 10
        },
                             msg='local bounding boxes combine')

        # single layer
        llayer1 = vector.LocalLayer(makegdf([-10, 10], [-10, 10]))
        self.assertDictEqual(vector._get_bounds_local([
            llayer1,
        ]), {
            'west': -10,
            'south': -10,
            'east': 10,
            'north': 10
        },
                             msg='local bounding boxes combine')

        # no layers
        self.assertDictEqual(vector._get_bounds_local([]), {
            'west': None,
            'south': None,
            'east': None,
            'north': None
        })
Ejemplo n.º 2
0
 def test_vector_local(self):
     """contrib.vector local with"""
     cc = cartoframes.CartoContext(base_url=self.baseurl,
                                   api_key=self.apikey)
     with self.assertRaises(ValueError):
         df = cc.query('''
                 select the_geom, the_geom_webmercator, cartodb_id
                 from {}
             '''.format(self.local),
             decode_geom=True)
         layers = [
             vector.Layer(self.points, color='red', size=10, strokeColor='blue'),
             vector.QueryLayer(
                 'SELECT * FROM {}'.format(self.polys),
                 time='torque($cartodb_id, 10)', strokeWidth=2),
             vector.LocalLayer(df)
         ]
         self.assertIsInstance(vector.vmap(layers, cc), HTML)
Ejemplo n.º 3
0
    def test_vector__get_super_bounds(self):
        """"""
        cc = cartoframes.CartoContext(base_url=self.baseurl,
                                      api_key=self.apikey)

        qlayer = cartoframes.QueryLayer('''
            SELECT
                the_geom,
                ST_Transform(the_geom, 3857) as the_geom_webmercator,
                1 as cartodb_id
            FROM (
                SELECT ST_MakeEnvelope(-10, -10, 0, 0, 4326) as the_geom
            ) _w
        ''')

        ans = '[[-10.0, -10.0], [0.0, 0.0]]'
        self.assertEqual(ans,
                         vector._get_super_bounds([
                             qlayer,
                         ], cc),
                         msg='super bounds are equal')

        if HAS_GEOPANDAS:
            ldata = gpd.GeoDataFrame(
                cc.query('''
                    SELECT
                        the_geom,
                        ST_Transform(the_geom, 3857) as the_geom_webmercator,
                        1 as cartodb_id
                    FROM (
                        SELECT ST_MakeEnvelope(0, 0, 10, 10, 4326) as the_geom
                    ) _w
                    ''',
                         decode_geom=True))
            llayer = vector.LocalLayer(ldata)
            ans = '[[-10.0, -10.0], [10.0, 10.0]]'
            self.assertEqual(ans,
                             vector._get_super_bounds([qlayer, llayer], cc),
                             msg='super bounds are equal')