地理坐标转换到指定范围 (python code)
通过shapely.affinit 的affine_transform 将坐标转换到预期范围(shape_x, shape_y)内, 如(100,100),代码如下:
from shapely.affinity import affine_transform
scale_x = (shape_x - 0) / (maxx - minx)
scale_y = (shape_y - 0) / (maxy - miny)
matrix = [scale_x, 0, 0, scale_y, 0 - scale_x * minx, 0 - scale_y * miny]
new_geoms = []
for _ in geom:
new_g = affine_transform(_, matrix)
new_geoms.append(new_g)
gdfh = gpd.GeoDataFrame(geometry=new_geoms)
gdfh = gdfh.explode() // split multilines or polygons
geom = gdfh.geometry
参考:
affine
python-affine-transforms
shapely.affinity.affine_transform