Có thể sử dụng ký tự dấu hai chấm (trực tiếp: hung) trong tên trường shapefile không?


16

Tôi đang cố gắng tìm hiểu xem :nhân vật có được cho phép trong tên của trường shapefile của ESRI không.

Tôi googled, nhưng tôi không thể tìm thấy một câu trả lời. Đây là một trích dẫn thú vị từ bài viết từ ESRI FAQ nêu rõ:

Loại bỏ bất kỳ ký tự nào không phải là ký tự chữ và số hoặc dấu gạch dưới.

Điều này có nghĩa là :nhân vật không được phép? Hoặc nó được phép sử dụng nó, nhưng không nên sử dụng nó? Nếu có thì tại sao?

Câu trả lời:


22

Giới hạn tên trường trong shapefile được xác định bởi các giới hạn dBase. Có bốn quy tắc duy nhất:

  1. Tối đa 10 ký tự.
  2. Ký tự đầu tiên trong tên trường phải bắt đầu bằng một chữ cái.
  3. Tên trường là duy nhất.
  4. Và, từ việc hiểu các yếu tố cần thiết của DBF

(...) Chúng có thể chứa bất kỳ sự kết hợp nào của các chữ cái từ A đến Z, các chữ số 0 đến 9, dấu hai chấm (:) (chỉ trong tên trường dBASE II) và dấu gạch dưới (_).

ESRI Shapefile hoạt động với dBase III +.


1
Bạn có thể tải lên một phần của .omstập tin của bạn ? Tôi muốn kiểm tra xem điều gì xảy ra hoặc nếu là một cách khác để xuất loại dữ liệu đó
aldo_tapia

1
Tôi đã thử Rsử dụng osmarrgdalkhông có vấn đề, hoạt động hoàn hảo. Tôi kiểm tra tên trường trong QGIS và đúng. Một mã cơ bản và đơn giản . Và kết quả , kiểm tra chúng.
aldo_tapia

1
Bởi vì shapefiles có cùng trường với tệp gốc : <node id="32633413" visible="true" version="6" changeset="13406299" timestamp="2012-10-07T23:36:07Z" user="Davlak" uid="217070" lat="41.8994226" lon="12.4969449"/>. Ký tự cột không phải là một trường, là một thẻ, chẳng hạn như : <tag k="bus" v="yes"/> <tag k="highway" v="bus_stop"/> <tag k="internet_access" v="wlan"/> <tag k="internet_access:name" v="AtacWiFi"/> <tag k="internet_access:operator" v="RomaWireless"/> <tag k="name" v="Nazionale/Quattro Fontane"/> <tag k="operator" v="ATAC"/> ..., phải không?
aldo_tapia

1
Thẻ giống như mô tả trên .kmlcác tệp, trong một trường bạn có thể có rất nhiều thẻ, thậm chí .osmcác tệp có cấu trúc tương tự .kml. Nếu bạn muốn trích xuất các thẻ, hãy sử dụng thẩm thấu , không phải GDAL để tạo các trường mới dựa trên các thẻ đó. Bạn đang cố gắng để có được một cái gì đó như thế này ?
aldo_tapia

1
Một tên trường không thể giữ dấu hai chấm. Giải pháp: mở .osmtệp của bạn bằng bất kỳ trình soạn thảo văn bản nào và thay thế dấu hai chấm bằng gạch chân, lưu nó và xuất thành shapefile. .osmtệp là một XML, bạn có thể quản lý nội dung một cách dễ dàng.
aldo_tapia

5

Theo cùng một bài báo Esri mà bạn trích dẫn:

Các giới hạn này được áp đặt để ArcGIS có thể hoạt động với số lượng dữ liệu tối đa.

Do đó, ngay cả khi bạn không bị ngăn sử dụng dấu hai chấm trong tên trường bằng bất kỳ phần mềm nào bạn đang sử dụng để tạo shapefile, bạn sẽ không khôn ngoan khi sử dụng chúng với ArcGIS.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.