I'm trying to join a points GeoPandas GeoDataFrame with a polygon GeoDataFrame, but I'm getting an empty results (inner join).
The points GeoDataFrame
I'm loading it by using latitude and longitude. epsg=4326
. If I execute a points.explore()
it is shown correctly in the map.
Puerta del Sol A POINT (40.41721 -3.70183)
Puerta del Sol B POINT (40.41731 -3.70160)
Miguel Moya POINT (40.42059 -3.70584)
The polygon GeoDataFrame (districts)
This GeoDataFrame is loaded by reading a .shp file. automatically epsg=25830
is loaded.
When printing this GeoDataFrame after changing CRS, it is inverted
districts_4326 = districts_25830.to_crs(df.crs)
CENTRO POLYGON ((-3.69316 40.40735, -3.69320 40.40720...
LATINA POLYGON ((-3.72261 40.41138, -3.72182 40.40851...
CARABANCHEL POLYGON ((-3.71932 40.39984, -3.71901 40.39983...
USERA POLYGON ((-3.68315 40.36474, -3.68314 40.36449...
However, even that the points of the polygons are inverted, if I execute a districts_4326.explore()
regions are shown correctly.
The join
The problem comes when I try a spatial join, I always get empty result:
points.sjoin(districts_4326, how="inner", predicate = 'overlaps')
I have tried with all kinds of predicate, but still empty results.
I suppose that the problem is because the transformation of districts is returning inverted coordinates, but I don't understand why it's shown correctly in the map.
Any ideas?
intersects
predicate?