您链接到的教程是一个很好的起点。我希望在尝试自己解决所有问题之前看到它。 :)
据我了解,您可能错过了安装gdal 的步骤。如果您发现其他错误,请将它们发布在您的问题中。
你可以通过运行让 ogr2ogr 工作:
brew install gdal
这里有一些背景信息,以便您更好地了解那里发生的事情。
topojson 和 ogr2ogr 是两个不同的实用程序。 ogr2ogr 是 gdal 包的一部分,在我们的例子中用于从 shapefile 生成 GeoJSON。
GDAL 是一个栅格地理空间数据格式的转换器库,
由 Open 在 X/MIT 风格的开源许可下发布
来源地理空间基金会。作为一个图书馆,它提供了一个单一的
为所有支持的调用应用程序抽象数据模型
格式。它还带有各种有用的命令行实用程序
用于数据翻译和处理。
TopoJSON 用于压缩之前 GDAL 转换的相当大的 GeoJSON 输出。它通过指定带有弧线而不是离散点的路径来减少冗余。实际上,它非常整洁:
TopoJSON 是对拓扑进行编码的 GeoJSON 的扩展。而不是
离散地表示几何,TopoJSON 文件中的几何是
由称为弧的共享线段缝合在一起。拓扑JSON
消除冗余,提供更紧凑的表示
几何而不是 GeoJSON;典型的 TopoJSON 文件小 80%
比他们的 GeoJSON 等价物。此外,TopoJSON 便于
使用拓扑的应用程序,例如保留拓扑的形状
简化、自动地图着色和制图。
这两个步骤的输出(shapefile -> GeoJSON -> TopoJSON)将是一个 JSON 字符串,它很容易被 JavaScript 解释。您需要在绘图代码中使用 topojson 转换回 GeoJSON 以实际绘制地图。
回想一下前面两个密切相关的 JSON 地理数据
格式:GeoJSON 和 TopoJSON。虽然我们的数据可以存储更多
在 TopoJSON 中,我们必须转换回 GeoJSON 才能显示。
打破这一步使其明确:
var subunits = topojson.object(uk, uk.objects.subunits);