Changes between Version 1 and Version 2 of ru_selectfeature

Show
Ignore:
Timestamp:
06/19/09 01:30:31 (4 years ago)
Author:
mavka
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ru_selectfeature

    v1 v2  
     1TODO: программно выделить объект 
     2 
    13= SelectFeature = 
    24[http://dev.openlayers.org/apidocs/files/OpenLayers/Control/SelectFeature-js.html OpenLayers.Control.SelectFeature] 
     
    46''Внимание, для правильного функционирования может понадобиться настроить [wiki:ru_proxyhost ProxyHost].'' 
    57 
     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 
     13function wfs_info(e) { 
     14     alert(e.id + "\n" + e.attributes.name); 
     15} 
     16}}} 
     17При создании контроллера указываем на обработчик и слой для взаимодействия: 
     18{{{ 
     19#!javascript 
     20wfs_ctrl = new OpenLayers.Control.SelectFeature( 
     21    wfs_layer, 
     22    {onSelect: wfs_info} 
     23); 
     24}}} 
     25И, наконец, добавляем контроллер на карту и активируем его: 
     26{{{ 
     27#!javascript 
     28map.addLayer(wfs_layer); 
     29map.addControl(wfs_ctrl); 
     30wfs_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()`