OpenLayersのWMSGetFeatureInfoを使用するとクリックした位置にある地物(Obejct)の情報を照会できる。
OpenLayers.Mapにコントロ-ル「WMSGetFeatureInfo」を追加してeventListenersのコールバック関数「getfeatureinfo」で
クリックした位置にある地物の情報を取得。
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();
シンボル、ポイントのように領域を持たない地物を選択する時は、vendorParamsのbufferまたはradiusでバッファ範囲を指定する。(単位はピクセル)
vendorParamsの詳細
上記の設定ではWMSGetFeatureInfoは表示されている全てのレイヤを照会の対象とする。
照会対象の項目はGeoServerで指定(以下はSQLViewで作成したLayersの時)
注意点
GeoServerのLayersでGeometryのSRIDが正しく指定されていないとエラーになる