def _process_element(self, element):
if element.interface.datatype == 'geodataframe':
geoms = element.split(datatype='geom')
projected = [self.p.projection.project_geometry(geom, element.crs)
for geom in geoms]
new_data = element.data.copy()
new_data['geometry'] = projected
return element.clone(new_data, crs=self.p.projection)
geom_type = Polygon if isinstance(element, Polygons) else LineString
xdim, ydim = element.kdims[:2]
projected = []
for geom in element.split(datatype='columns'):
xs, ys = geom[xdim.name], geom[ydim.name]
path = geom_type(np.column_stack([xs, ys]))
proj = self.p.projection.project_geometry(path, element.crs)
proj_arr = geom_to_array(proj)
geom[xdim.name] = proj_arr[:, 0]
geom[ydim.name] = proj_arr[:, 1]
projected.append(geom)
return element.clone(projected, crs=self.p.projection)
评论列表
文章目录