Recomiendo usar OGR / GDAL , que forma parte de biblioteca GDAL . OGR es compatible con un formato virtual que permite la especificación a través de un archivo XML. Si convierte su hoja de cálculo de Excel en un CSV, puede generar un VRT para acceder a los datos.
Suponiendo que tienes algo como esto example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Puede crear un VRT example.vrt
de la siguiente manera:
<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 de GDAL 1.7, puede especificar adicionalmente los tipos de datos de los campos de atributo utilizando el elemento <Field>
dentro de <OGRVRTLayer>
, de este modo:
<Field name="date" src="Year" type="Date" />
Tenga en cuenta que los shapefiles almacenan atributos en el formato DBASE IV que tiene menos flexibilidad en los tipos de datos que Excel. Una vez que haya especificado su archivo VRT, puede usar la cadena de herramientas OGR normal para convertir los datos en un Shapefile:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Lamentablemente, el # 4 no es posible: la especificación de shapefile permite una única proyección (que se puede ver aquí en example.prj
después del último paso).