我对地图和牛郎星/织女星都很陌生。有一个an example in the Altair documentation for how to make a map starting with an outline of US states,它基本上是用以下方法创建的:
states = alt.topo_feature(data.us_10m.url, feature='states')
# US states background
background = alt.Chart(states).mark_geoshape(
fill='lightgray',
stroke='white'
)
但我想在不列颠群岛上画点。由于vega数据集合中只有美国和世界地图,所以我必须创建自己的GeoJSON,不是吗?在
所以我试着从世界地图上获取不列颠群岛的GeoJSON,通过运行一些命令行命令from this blog post,即
^{pr2}$这似乎创建了一个GeoJSON文件,子单元.json可能代表了不列颠群岛。但我怎么才能把这个带进牛郎星呢?或者有没有其他方法可以用牛郎星绘制不列颠群岛的地图?在
在本例中,
data.us_10m.url
是一个字符串变量,其中字符串指定指向state
功能中包含美国州边界的geojson file的URL。如果您想使用不同的geojson文件,可以在该示例中替换其URL。在您引用的示例是使用
topojson
结构化数据,而您有geojson
结构化数据。所以你可能需要:欲了解更多详情,请继续阅读
解释
中的使用 ^{pr2}$geojson
和topojson
结构化json
文件之间的区别及其在Altair内联GeoJSON
我们首先创建一个包含两个特征的集合,即两个相邻的多边形。在
我们将以GeoJSON数据格式创建的两个多边形示例:
通过漂亮地打印变量
var_geojson
检查创建的GeoJSON可以看出,这两个}的一部分。在
Polygon
Features
嵌套在features
对象中,geometry
是每个{Altair能够使用
format
中的property
键解析嵌套的json
对象。以下是这样一个例子:内联拓扑JSON
TopoJSON是GeoJSON的一个扩展,其中
features
的geometry
是从一个名为arcs
的顶级对象引用的。这使得在几何体上应用散列函数成为可能,因此每个共享的arc
应该只存储一次。在我们可以将
var_geojson
变量转换为topojson
文件格式结构:现在嵌套的
geometry
对象被arcs
替换,并通过索引引用顶层的arcs
对象。我们现在可以使用多个FeatureCollection
,而不是一个objects
,其中转换后的FeatureCollection
作为GeometryCollection
存储在键data
中。在注意:键名
data
是任意的,并且在每个数据集中都是不同的。在Altair能够使用
format
中的feature
键解析topojson
格式结构中的嵌套data
对象,同时声明它是topojson
type
。以下是这样一个例子:来自URL
如果可以通过URL访问
topojson
文件,还可以使用速记从topojson
文件中提取对象:Altair示例,其中URL引用
topojson
文件来自URL
但是对于可通过URL访问的
geojson
文件,没有这样的速记,应该按如下方式链接:Altair示例,其中URL引用
geojson
文件相关问题 更多 >
编程相关推荐