Выделение цветом объекта

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
daler
Интересующийся
Сообщения: 39
Зарегистрирован: 14 ноя 2011, 17:15
Репутация: 0
Контактная информация:

Выделение цветом объекта

Сообщение daler » 28 май 2012, 18:28

Здравствуйте. Как реализовать выделение растрового объекта цветом,

Используются mapsever, openlayers, tilecache, postgis

На карте указаны параметры

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

  
  METADATA
        gml_include_items "all"
        # wms_encoding  "windows-1251"
		 #gml_encoding "windows-1251"
        wms_title "Название района" 
        wms_group_title "Район" 
    GML_GEOMETRY_TYPE "point"
       GML_GEOMETRIES "geometry"
    END
изображение передается через tilecache

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

layer = new OpenLayers.Layer.WMS( "WMS", "/cgi-bin/tilecache.cgi?", {layers: 'basic', format: 'image/png'} );
wmsGetFeatureinfo подключается через невидимый слой wms

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

layer2 = new OpenLayers.Layer.WMS( "WMS", "http://plazoom.ru/cgi-bin/mapserv?", {map:'/var/www/daler/data/www/plazoom.ru/ufakarta/ufa_all.map', layers: 'granicy_region,rayeny_region_ontitle,teritoria_kvartalov_region, format: 'image/png'}, {singleTile: true, visibility: true} );
Ответ сервера на GML запрос

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

<rayeny_region_ontitle_layer>
		<rayeny_region_ontitle_feature>
			<gml:boundedBy>
				<gml:Box srsName="EPSG:900913">
					<gml:coordinates>-935.823433,-405.978723 7602.576050,6458.941924</gml:coordinates>
				</gml:Box>
			</gml:boundedBy>
<!-- Warning: Cannot write geometry- no polygon/multipolygon geometry defined. -->
			<gid>6</gid>
			<style>Терр_я Октябрьского р-на</style>
			<nazvan>Октябрьский</nazvan>
		</rayeny_region_ontitle_feature>
как можно используя эти данные выделить объект цветом?

Здесь смотрел примеры решения. Теория ясна в приницпе, не понятно откуда берутся параметры:

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

function highlightFeatures(typename,attribute,value) {
   var wfsurl = wfs_url + '&REQUEST=getfeature&typename=' + typename +
           '&Filter=<Filter><PropertyIsEqualTo><PropertyName>'+attribute+'</PropertyName><Literal>'+value+'</Literal></PropertyIsEqualTo></Filter>';
   OpenLayers.loadURL(wfsurl,'',null,highlight_them);
  }
А здесь необходимо указать карту как layer2?

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

  var wfs_url        = '/cgi-bin/mapserv?map=/maps/spraywatch2/wms/mapfile.map&SERVICE=WFS&VERSION=1.0.0';

daler
Интересующийся
Сообщения: 39
Зарегистрирован: 14 ноя 2011, 17:15
Репутация: 0
Контактная информация:

Re: Выделение цветом объекта

Сообщение daler » 15 июн 2012, 23:04

Решение помогли найти здесь

http://openlayers.org/dev/examples/getfeature-wfs.html

select = new OpenLayers.Layer.Vector("Selection", {styleMap:
new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
});
Отвечает за выделение при нажатии.
map.addLayers(select); добавляет слой выделения на карту

select.addFeatures([e.feature]); это по которому слою определиться

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей