Страница 1 из 1

Получение объекта shape файла по id

Добавлено: 27 апр 2010, 11:49
Salex
Использую mapserver и слои карты, хранящиеся в shape-файлах. Насколько я понимаю каждый объект в этом файле имеет свой идентификатор, вопрос такой: как по этому идентификатору получить информацию об объекте? На данный момент я сделал дополнительный атрибут ID для объектов и запрос делаю примерно так:

Код: Выделить всё

http://server/cgi-bin/mapserv.exe?map=/ms4w/apps/example/MyMap.map&MODE=itemnquery&QLAYER=buildings&QSTRING=([ID]==25128)
но это строго хуже, ибо необходимо самому заносить значения ID и следить за их уникальностью. Соответственно хотелось бы узнать, можно ли как-то составить запрос, чтобы поиск шел именно по уникальным идентификаторам самого shape-файла?

Re: Получение объекта shape файла по id

Добавлено: 27 апр 2010, 19:39
taskmgr
А я вот вообще не могу понять, как определяется соответствие между объектами shape-файла и записями в DBF-файле (если для атрибутов используется DBF)?
Для работы MapServer в качестве WFS вроде есть такой параметр wfs_featureid:

Код: Выделить всё

LAYER
  ...
  DUMP true
  METADATA
    ...
   "wfs_featureid"   "_Id"
    ...
  END
  ...
END
В документации сказано:
gml_featureid
• Description: (Required for MapServer 4.10) Field to be used for the ID of the feature in the output GML.
wfs_featureid or ows_feature_id can be specified instead.
То есть вроде как этим параметром определяется, какое из полей ответственно за связь с shape-файлом.
Но непонятно, почему он обязателен только для версии 4.10?
И как работает, скажем QGIS, без такого указания?