使用ogr2​​ogr将svg转换为geojson失败

时间:2015-12-09 19:08:45

标签: svg geojson ogr2ogr

我从http://www.amcharts.com/svg-maps/?map=finland

下载了芬兰的.svg地图

我想将它转换为topojson以将其与d3.js一起使用。我首先从svg转向geojson转换,但它失败了。

我试过了:

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时,它看起来很好并且拥有所有元素。

1 个答案:

答案 0 :(得分:4)

实际上在大多数情况下,您可以按原样使用SVG图像,无需将其转换为topojson或GeoJSON,但有一些问题需要考虑:

  1. 原始SVG文件大小是否适合您的应用程序?如果是,那么您可以优化SVG文件(例如,使用:http://petercollingridge.appspot.com/svg-editor)。如果这还不够,那么您可以从其他来源获取shapefile(例如:http://www.naturalearthdata.com/downloads/)并将其转换为GeoJSON(使用ogr2​​ogr,通过他们在http://ogre.adc4gis.com/的网络界面或者您使用GDAL下载它http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries)。如果生成的文件仍然太大,您可以使用mapshaper(http://www.mapshaper.org/进行压缩 - 它需要shapefile和GeoJSON格式!)并且如果需要(如果您的文件大小仍然存在问题)将结果地图从GeoJSON转换为topojson (见:http://github.com/mbostock/topojson/wiki)。

  2. 您是否需要在地图中使用位置数据? (例如,您可能需要标记某个城市在您的地图中的位置,但城市未在原始SVG上绘制)然后更容易获得shapefile并将其转换为GeoJSON(使用ogr2​​ogr),因为您很可能没有关于下载的SVG文件的地理位置信息。

  3. 如果您正在创建一个等值区并且没有地理定位要求,那么您只需将SVG directy添加到您的页面并使用D3将数据映射到您的图像!一旦在页面中安装了SVG,您甚至可以手动编辑所有路径数据,以包含使您的D3工作更轻松的类和ID。