我从以下位置下载了芬兰的 .svg 地图http://www.amcharts.com/svg-maps/?map=finland http://www.amcharts.com/svg-maps/?map=finland
我想将其转换为 topojson 以便与 d3.js 一起使用。我首先从 svg 到 geojson 转换开始,但失败了。
I tried:
ogr2ogr -f "GeoJSON" finland_kunta.json finlandHigh.svg
我得到的错误:
FAILURE:
Unable to open datasource `finlandHigh.svg' with the following drivers.
-> ESRI Shapefile
-> MapInfo File
-> UK .NTF
-> SDTS
-> TIGER
-> S57
-> DGN
-> VRT
-> REC
-> Memory
-> BNA
-> CSV
-> GML
-> GPX
-> KML
-> GeoJSON
-> GMT
-> GPKG
-> SQLite
-> WAsP
-> PCIDSK
-> OpenFileGDB
-> XPlane
-> AVCBin
-> AVCE00
-> DXF
-> Geoconcept
-> GeoRSS
-> GPSTrackMaker
-> VFK
-> PGDump
-> OSM
-> GPSBabel
-> SUA
-> OpenAir
-> PDS
-> WFS
-> HTF
-> AeronavFAA
-> EDIGEO
-> GFT
-> GME
-> SVG
-> CouchDB
-> Idrisi
-> ARCGEN
-> SEGUKOOA
-> SEGY
-> XLS
-> ODS
-> XLSX
-> ElasticSearch
-> PDF
-> CartoDB
-> SXF
我才刚刚开始弄清楚这些工具,所以我不确定到底是什么导致了错误。当我打开 svg 时,它看起来看起来不错并且拥有所有元素。
实际上,在大多数情况下,您可以按原样使用 SVG 图像,无需将其转换为 topojson 或 GeoJSON,但有一些问题需要考虑:
原始 SVG 文件大小对于您的应用程序来说是否太大?如果是,那么您可以优化 SVG 文件(例如,使用:http://petercollingridge.appspot.com/svg-editor http://petercollingridge.appspot.com/svg-editor)。如果这还不够,那么您可以从其他来源获取 shapefile(例如:http://www.naturalearthdata.com/downloads/ http://www.naturalearthdata.com/downloads/)并将其转换为 GeoJSON(使用 ogr2ogr,可以通过其 Web 界面http://ogre.adc4gis.com/ http://ogre.adc4gis.com/或者您可以使用 GDAL 下载它:http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries)。如果生成的文件仍然太大,您可以使用 mapshaper 进行压缩(http://www.mapshaper.org/ http://www.mapshaper.org/- 它同时采用 shapefile 和 GeoJSON 格式!)并且如有必要(如果您的文件大小仍然是一个问题)将生成的地图从 GeoJSON 转换为 topojson(请参阅:http://github.com/mbostock/topojson/wiki http://github.com/mbostock/topojson/wiki).
您需要在地图中使用位置数据吗? (例如,您可能需要标记某个城市在地图中的位置,但该城市未绘制在您的原始 SVG 上)那么获取 shapefile 并将其转换为 GeoJSON(使用 ogr2ogr)会更容易,因为您很可能会这样做下载的 SVG 文件上没有地理位置信息。
如果您要创建分区统计图并且没有地理定位要求,那么您可以简单地将 SVG 直接添加到您的页面并使用 D3 将数据映射到您的图像!一旦您的页面中包含 SVG,您甚至可以手动编辑所有路径数据以包含类和 id,这将使您的 D3 工作变得更轻松。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)