Tôi khuyên bạn nên sử dụng OGR / GDAL , một phần của thư viện GDAL . OGR hỗ trợ định dạng ảo cho phép đặc tả thông qua tệp XML. Nếu bạn chuyển đổi bảng tính Excel của mình thành CSV, bạn có thể tạo VRT để truy cập dữ liệu.
Giả sử bạn có một cái gì đó như thế này example.csv
:
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
Bạn có thể tạo VRT example.vrt
như sau:
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
Bắt đầu trong GDAL 1.7, bạn có thể chỉ định thêm các kiểu dữ liệu của các trường thuộc tính bằng cách sử dụng <Field>
phần tử bên trong <OGRVRTLayer>
, như vậy:
<Field name="date" src="Year" type="Date" />
Hãy nhớ rằng shapefiles lưu trữ các thuộc tính ở định dạng DBASE IV có độ linh hoạt thấp hơn trong các loại dữ liệu so với Excel. Khi bạn đã chỉ định tệp VRT của mình, bạn có thể sử dụng chuỗi công cụ OGR thông thường để chuyển đổi dữ liệu thành Shapefile:
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
Thật không may, # 4 là không thể - đặc tả shapefile cho phép một phép chiếu duy nhất (có thể xem ở đây example.prj
sau bước cuối cùng).