@@ -186,19 +186,23 @@ def _render_shapes(
186
186
if method == "datashader" :
187
187
_geometry = shapes ["geometry" ]
188
188
is_point = _geometry .type == "Point"
189
+ filtered_shapes_element = sdata_filt .shapes [element ]
189
190
190
191
# Handle circles encoded as points with radius
191
192
if is_point .any ():
193
+ filtered_shapes_element = sd .deepcopy (filtered_shapes_element )
192
194
scale = shapes [is_point ]["radius" ] * render_params .scale
193
- sdata_filt . shapes [ element ] .loc [is_point , "geometry" ] = _geometry [is_point ].buffer (scale .to_numpy ())
195
+ filtered_shapes_element .loc [is_point , "geometry" ] = _geometry [is_point ].buffer (scale .to_numpy ())
194
196
195
197
# apply transformations to the individual points
196
- element_trans = get_transformation (sdata_filt . shapes [ element ] , to_coordinate_system = coordinate_system )
198
+ element_trans = get_transformation (filtered_shapes_element , to_coordinate_system = coordinate_system )
197
199
tm = _get_transformation_matrix_for_datashader (element_trans )
198
- transformed_element = shapes .transform (lambda x : (np .hstack ([x , np .ones ((x .shape [0 ], 1 ))]) @ tm )[:, :2 ])
200
+ transformed_element = filtered_shapes_element .transform (
201
+ lambda x : (np .hstack ([x , np .ones ((x .shape [0 ], 1 ))]) @ tm )[:, :2 ]
202
+ )
199
203
transformed_element = ShapesModel .parse (
200
204
gpd .GeoDataFrame (
201
- data = sdata_filt . shapes [ element ] .drop ("geometry" , axis = 1 ),
205
+ data = filtered_shapes_element .drop ("geometry" , axis = 1 ),
202
206
geometry = transformed_element ,
203
207
)
204
208
)
0 commit comments