使用Javascript将GeoJSON转换为SVG

时间:2011-11-22 22:39:10

标签: javascript svg rendering geojson

是否有随时可用的 Javascript插件,可将GeoJSON字符串转换为SVG字符串?渲染引擎Tempo或项目JsonT会很有用,但我需要模板才能使它们正常工作。

3 个答案:

答案 0 :(得分:9)

您可以使用d3.js库。以下代码段将完成此任务:

在你的html文件中加入d3.js

<script src="files/d3.v3.min.js"></script>

假设你的html文件中有id id的div:

<div id="map"></div>

以下js代码会将地图添加到div地图中。 geoJsonObj是你的geojson。

var svg = d3.select("#map").append("svg")
            .attr("width", width)
            .attr("height", height);

svg.append("g")
            .selectAll("path")
            .data(geoJsonObj.features)
            .enter().append("path")
            .attr("d", path);

要查看实际示例,请转到here。请注意,该示例使用topojson作为.data()属性的输入。

答案 1 :(得分:4)

有一些基本工具可用于将geojson转换为svg geojson2svgnpm module。 geojson2svg的输出是svg string,因此该工具既可以在浏览器中使用,也可以在node.js中使用。

很容易将svg字符串转换为dom元素。 bobince here很好地解释了JavaScript代码。为方便起见,我制作了npm module

geojson2svg为您提供了更大的灵活性,但为了快速解决方案,d3是最好的。

免责声明:我是geojson2svg的作者。

答案 2 :(得分:-1)

您可以查看GDAL,不确定它是否完全支持SVG创建,但GDAL通常可以将所有地理格式转换为其他地理格式。

请参阅:http://www.gdal.org/ogr/ogr_formats.html