是否有即可使用 Javascript插件是如何將GeoJSON字符串轉換爲SVG字符串的?渲染引擎,如Tempo或項目JsonT會很有用,但我需要模板才能使它們起作用。使用Javascript將GeoJSON轉換爲SVG
回答
你可以看看GDAL,不確定它是否完全支持SVG創建,但GDAL通常可以將所有geo格式轉換爲其他geoformat。
可以使用d3.js庫。下面的代碼片段將做的工作:
在HTML文件d3.js
<script src="files/d3.v3.min.js"></script>
假設,你已經與ID映射在HTML文件中的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()屬性的輸入。
最後一行代碼中的變量'path'來自哪裏? – user568458
Nevermind,我發現(和更新)一個完整的例子在這裏:http://stackoverflow.com/questions/18425440/displaying-map-using-d3-js-and-geojson/38552478#38552478 – user568458
@ user568458路徑不是一個變量,它是一個svg元素,就像html中的div一樣。 https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths –
有一個基本的工具可用於將geojson轉換爲svg geojson2svg,也可以使用npm module。 geojson2svg的輸出是svg字符串,因此該工具可以在瀏覽器中使用,也可以在node.js中使用。
它很容易隱蔽svg字符串到DOM元素。這已由bobincehere與JavaScript代碼很好地解釋。爲了方便,我製作了一個npm module。
geojson2svg給你更多的靈活性,但對於快速解決方案d3是最好的。
聲明:我是geojson2svg的作者。
- 1. 使用javascript/jquery將html轉換爲svg
- 2. 使用Groovy將XML轉換爲GeoJson
- 3. 將KML轉換爲GeoJson
- 4. 將數據轉換爲GeoJson
- 5. 將GeoJSON轉換爲MySQL
- 6. 如何將一個svg文件從inkscape轉換爲geoJson格式
- 7. 在mxGraph中將XML轉換爲SVG javascript
- 8. 使用PHP將SVG轉換爲PNG
- 9. 使用C將SVG轉換爲PNG#
- 10. 使用C#將圖像轉換爲SVG
- 11. .CDR轉換爲.SVG使用ImageMagick轉換
- 12. 將collection屬性轉換爲geojson對象
- 13. 將Oracle Spatial LineString轉換爲Leaflet GeoJSON
- 14. 將數據轉換爲geojson錯誤
- 15. 如何將GeoJSON轉換爲vector.pbf(Protobuf)?
- 16. 將Postgis MultiPoligon對象轉換爲GeoJson
- 17. 將JSON轉換爲GeoJSON的困難
- 18. 將webGL html轉換爲SVG
- 19. 將SVG/PDF轉換爲EMF
- 20. 將SVG轉換爲javafx.Image
- 21. 將VectorDrawable轉換爲SVG
- 22. 將SVG轉換爲ggPlot
- 23. XSL將SVG轉換爲VML
- 24. 將SVG轉換爲XAML
- 25. Silverlight:將UIElement轉換爲SVG
- 26. 將SVG dataUrl轉換爲base64
- 27. 如何將JavaScript數組轉換爲geojson數據?
- 28. 如何使用Gson將oracle SDO_GEOMETRY對象轉換爲geoJson?
- 29. 將shapefile和geoJson轉換爲TopoJson和/或使用geo2topo
- 30. 將SVG路徑轉換爲用於Javascript Clipper的多邊形
謝謝,但我需要一個Javascript庫或插件和GDAL/OGR是C++。 – camilokawerin