我正在关注this指南,以创建威尼斯(意大利)的地图可视化。有没有办法生成这样的几何?我需要的是一个表示岛屿线条的GeoJson文件(类似于this)。
我看了Natural Earth,但我不明白如何导出威尼斯的GeoJson(或任何其他自定义区域)。
修改:
按照Stefanski的回答我生成了json,然后使用以下命令将其转换为topojson:
topojson \
-o venice.topojson \
venice.json \
然后我从指南中复制html代码:
<!DOCTYPE html>
<meta charset="utf-8">
<style>
/* CSS goes here. */
</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script>
var width = 960,
height = 1160;
var projection = d3.geo.albers()
.center([0, 55.4])
.rotate([4.4, 0])
.parallels([50, 60])
.scale(1200 * 5)
.translate([width / 2, height / 2]);
var path = d3.geo.path()
.projection(projection);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("venice.topojson", function(error, ve) {
svg.append("path")
.datum(topojson.feature(ve, ve.objects.venice))
.attr("d", path);
});
</script>
此代码不会出现任何javascript错误,但不显示威尼斯地图,而它适用于英国地图。
答案 0 :(得分:1)
我认为您可以使用来自Natural Earth的数据,使用“州和省”。从那里,使用ogr2ogr以GeoJSON格式过滤数据:
ogr2ogr \
-f GeoJSON \
-where "NAME = 'Venezia'" \
venice.json \
ne_10m_admin_1_states_provinces.shp
我很善良,实际上是为you做的。然后,您可以将此文件用作英国的文件并构建地图。