Существует ли готовый к использованию подключаемый модуль Javascript, который преобразует строку GeoJSON в строку SVG? Механизм рендеринга, такой как Tempo, или проект JsonT было бы полезно, но мне нужен шаблон, чтобы заставить их работать.
Преобразование GeoJSON в SVG с помощью Javascript
Ответы (3)
Вы можете использовать библиотеку d3.js. Следующий фрагмент кода выполнит эту работу:
Включите d3.js в свой html-файл.
<script src="files/d3.v3.min.js"></script>
Предполагая, что у вас есть div с картой идентификаторов в вашем html-файле:
<div id="map"></div>
Следующий код js добавит карту на вашу карту div. geoJsonObj — это ваш геоджсон.
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);
Чтобы увидеть рабочий пример, перейдите здесь. Обратите внимание, что в примере используется topojson в качестве входных данных для атрибута .data().
path
в последней строке?
- person user56reinstatemonica8; 24.07.2016
.attr("d", path);
— это переменная Javascript с именем path, используемая для применения атрибутов d
к путям SVG, которые рисует D3. Глядя на другие примеры D3, я бы предположил, что это Объект генератора геопути D3 определен чем-то вроде var path = d3.geo.path().projection( someProjectionObject );
- person user56reinstatemonica8; 26.07.2016
Существует базовый инструмент для преобразования geojson в svg geojson2svg и как модуль npm также. Выводом geojson2svg является строка svg, поэтому этот инструмент можно использовать как в браузере, так и с node.js.
Очень легко преобразовать строку svg в элемент dom. Это было объяснено bobince здесь очень хорошо с кодом JavaScript. Для удобства я сделал модуль npm.
geojson2svg дает вам больше гибкости, но для быстрого решения лучше всего подходит d3.
Отказ от ответственности: я являюсь автором geojson2svg.
Вы можете заглянуть в GDAL, не уверен, что он полностью поддерживает создание SVG, но GDAL обычно может конвертировать все геоформаты в другие геоформаты.
См.: http://www.gdal.org/ogr/ogr_formats.html.