作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有办法将 geopandas 世界地图置于特定经度点的中心。基本上,只是想将其移动大约 ~5-10 度左右。
上一个问题是几个月前发布的,但没有得到答复。想知道是否有人知道解决方案。 (关于 stackoverflow 的原始问题的链接是 here )
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
fig, ax = plt.subplots()
world.plot(ax=ax, color=(0.8,0.5,0.5))
如果有人能提供帮助,将不胜感激。
提前致谢
最佳答案
我知道怎么做了:
from shapely.geometry import LineString
from shapely.ops import split
from shapely.affinity import translate
import geopandas
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
def shift_map(shift):
shift -= 180
moved_map = []
splitted_map = []
border = LineString([(shift,90),(shift,-90)])
for row in world["geometry"]:
splitted_map.append(split(row, border))
for element in splitted_map:
items = list(element)
for item in items:
minx, miny, maxx, maxy = item.bounds
if minx >= shift:
moved_map.append(translate(item, xoff=-180-shift))
else:
moved_map.append(translate(item, xoff=180-shift))
gdf = geopandas.GeoDataFrame({"geometry":moved_map})
fig, ax = plt.subplots()
gdf.plot(ax=ax)
plt.show()
在第一步中,您创建自己的世界并将其拆分到您的预定义边界上。然后你得到所有元素的边界并检查边界是否与你想要的转变相匹配。之后,您将每个大于边界的元素平移到 map 的左侧,并将所有其他元素移动到右侧,以便它们与 +180° 对齐。
map 偏移了 120°
关于python - 是否可以在 x 轴(经度)上移动 geopandas 世界地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64004110/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!