| | 8 | Предназначен для работы с векторными [[http://trac.openlayers.org/wiki/ru_layers_overlay#Vector Vector]] слоями. Позволяет выделять объекты [стиль выбранных объектов меняется на [http://trac.openlayers.org/wiki/ru_vector_style#Select 'select']], обрабатывать и изменять связанную с ними информацию. |
| | 9 | |
| | 10 | В общем, нужно зарегистрировать обработчик хотя бы для одного из возможных событий [onSelect, onUnselect]: |
| | 11 | {{{ |
| | 12 | #!javascript |
| | 13 | function wfs_info(e) { |
| | 14 | alert(e.id + "\n" + e.attributes.name); |
| | 15 | } |
| | 16 | }}} |
| | 17 | При создании контроллера указываем на обработчик и слой для взаимодействия: |
| | 18 | {{{ |
| | 19 | #!javascript |
| | 20 | wfs_ctrl = new OpenLayers.Control.SelectFeature( |
| | 21 | wfs_layer, |
| | 22 | {onSelect: wfs_info} |
| | 23 | ); |
| | 24 | }}} |
| | 25 | И, наконец, добавляем контроллер на карту и активируем его: |
| | 26 | {{{ |
| | 27 | #!javascript |
| | 28 | map.addLayer(wfs_layer); |
| | 29 | map.addControl(wfs_ctrl); |
| | 30 | wfs_ctrl.activate(); |
| | 31 | }}} |
| | 32 | Теперь, щелчок мыши на объекте [или просто наведение курсора, если используется 'hover: true'] вызовет функцию wfs_info. В параметре 'e' содержится вся информация об объекте. |
| | 33 | * e.attributes - аттрибутика; например, поле из базы данных: `strName = e.attributes.name` |
| | 34 | * e.geometry - геометрия; в зависимости от типа [[http://dev.openlayers.org/apidocs/files/OpenLayers/Geometry/Point-js.html точка], [http://dev.openlayers.org/apidocs/files/OpenLayers/Geometry/LineString-js.html линия], [http://dev.openlayers.org/apidocs/files/OpenLayers/Geometry/Polygon-js.html полигон]] возможны различные свойства, например, `intArea = e.geometry.getArea()` |