Eu recomendo usar o OGR / GDAL , que faz parte da biblioteca GDAL . OGR suporta um formato virtual que permite a especificação através de um arquivo XML. Se você converter sua planilha do Excel em um CSV, poderá gerar um VRT para acessar os dados.
Supondo que você tenha algo parecido com isto example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Você pode criar um VRT da example.vrt
seguinte maneira:
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
A partir do GDAL 1.7, é possível especificar adicionalmente os tipos de dados dos campos de atributos usando o <Field>
elemento dentro de <OGRVRTLayer>
, da seguinte forma:
<Field name="date" src="Year" type="Date" />
Lembre-se de que os shapefiles armazenam atributos no formato DBASE IV , com menos flexibilidade nos tipos de dados que o Excel. Depois de especificar seu arquivo VRT, você pode usar a cadeia de ferramentas OGR normal para converter os dados em um Shapefile:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Infelizmente, o nº 4 não é possível - a especificação do shapefile permite uma única projeção (visível aqui example.prj
após a última etapa).