OpenLayersのWMSGetFeatureInfoを使用するとクリックした位置にある地物(Obejct)の情報を照会できる。
OpenLayers.Mapにコントロ-ル「WMSGetFeatureInfo」を追加してeventListenersのコールバック関数「getfeatureinfo」で
クリックした位置にある地物の情報を取得。
[code]
var selectControl = new OpenLayers.Control.WMSGetFeatureInfo({
url: "../geoserver/ワークスペース/wms",
title: "",
maxFeatures: 50,
queryVisible: true,
vendorParams: {
buffer: 100
},
infoFormat: "application/json",
eventListeners: {
getfeatureinfo: function(event){
var j = JSON.parse(event.text);
console.log(j, j.features, event);
}
}
});
map.addControl(selectControl);
selectControl.activate();
[/code]
シンボル、ポイントのように領域を持たない地物を選択する時は、vendorParamsのbufferまたはradiusでバッファ範囲を指定する。(単位はピクセル)
vendorParamsの詳細
上記の設定ではWMSGetFeatureInfoは表示されている全てのレイヤを照会の対象とする。
照会対象の項目はGeoServerで指定(以下はSQLViewで作成したLayersの時)
注意点
GeoServerのLayersでGeometryのSRIDが正しく指定されていないとエラーになる