首页 > 解决方案 > Altair:全球地图居中

问题描述

我正在学习通过 Altair 绘制地图,这里的示例如下Example Gallery - World Projections

如何在我想要的 latlong 点设置 Globe 地图的中心?

下面是我尝试将地图居中在纬度 = 40 和经度 = 140 左右的失败代码:

import altair as alt
from vega_datasets import data

countries = alt.topo_feature(data.world_110m.url, 'countries')

alt.Chart(countries).mark_geoshape(
    fill='#666666',
    stroke='white'
).project(
    type= 'orthographic'
).properties(
    title='Orthographic'
).configure_projection(
    center= [140,40]
)

如您所见,地图仍以大西洋为中心,可能位于 [Long, Lat] = [0, 0]。

在此处输入图像描述

标签: pythonaltair

解决方案


对于正交投影,决定投影如何居中的是rotate属性而不是属性。centerrotate属性由围绕三个主轴的旋转度数组成。例如,要构建围绕 long=140, lat=40 的投影,您可以这样做:

import altair as alt
from vega_datasets import data

countries = alt.topo_feature(data.world_110m.url, 'countries')

alt.Chart(countries).mark_geoshape(
    fill='#666666',
    stroke='white'
).project(
    type= 'orthographic',
    rotate=[-140, -40 ,0]
).properties(
    title='Orthographic'
)

在此处输入图像描述

您可以在此站点上动态探索一些可用的投影及其配置:https ://vega.github.io/vega/docs/projections/


推荐阅读