Harita Servisleri 6 dk okuma

WFS: Web Feature Service ile Vektör Veri Erişimi

WFS (Web Feature Service), OGC tarafından standartlaştırılan ve web üzerinden vektör coğrafi özellik (feature) verisi sorgulamayı ve almayı sağlayan bir protokoldür.

Son güncelleme: 20 Haziran 2026

WFS Nedir?

Web Feature Service (WFS), Open Geospatial Consortium (OGC) tarafından standartlaştırılan bir web servisi protokolüdür. WMS'in harita görüntüsü döndürmesinin aksine WFS, vektör coğrafi özellik (feature) verilerini GML, GeoJSON veya Shapefile gibi formatlarda döndürür. Bu sayede istemci tarafında veri manipülasyonu ve analizi mümkün olur.

WFS ve WMS Karşılaştırması

ÖzellikWMSWFS
DöndürdüğüHarita görüntüsü (PNG/JPEG)Vektör veri (GML/GeoJSON)
İstemci kontrolüSınırlı (bbox, boyut)Tam (filtre, öznitelik)
Bant genişliğiDeğişken (görüntü boyutu)Veri miktarına bağlı
Analizİstemcide imkansızİstemcide mümkün
GüncellemeHayırWFS-T ile evet

WFS Sürümleri

  • WFS 1.0.0 (2002): Temel özellik alma ve filtreleme.
  • WFS 1.1.0 (2005): GML 3 desteği, koordinat sistemi dönüşümü.
  • WFS 2.0.0 (2010): Stored queries, paging desteği, gelişmiş sorgulama.

Temel WFS İstekleri

GetCapabilities

Sunucunun yeteneklerini ve mevcut feature tiplerini listeler:

https://example.com/geoserver/wfs?
  SERVICE=WFS
  &VERSION=2.0.0
  &REQUEST=GetCapabilities

DescribeFeatureType

Bir feature tipinin öznitelik şemasını (XSD formatında) döndürür:

https://example.com/geoserver/wfs?
  SERVICE=WFS&VERSION=2.0.0
  &REQUEST=DescribeFeatureType
  &TYPENAMES=cbs:iller

GetFeature

Özellikleri sorgular ve döndürür:

# Tüm nüfusu 1 milyonun üzerindeki iller
https://example.com/geoserver/wfs?
  SERVICE=WFS&VERSION=2.0.0
  &REQUEST=GetFeature
  &TYPENAMES=cbs:iller
  &OUTPUTFORMAT=application/json
  &CQL_FILTER=nufus>1000000

WFS-T: Transactional WFS

WFS'in transactional versiyonu (WFS-T), sadece veri okumakla kalmaz; aynı zamanda veri ekleme, güncelleme ve silme işlemlerine de izin verir. Bu sayede web tabanlı GIS editörleri oluşturmak mümkündür.

<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs">
  <wfs:Insert>
    <cbs:iller>
      <cbs:il_adi>Test İl</cbs:il_adi>
      <cbs:geom>
        <gml:Point srsName="EPSG:4326">
          <gml:pos>32.85 39.93</gml:pos>
        </gml:Point>
      </cbs:geom>
    </cbs:iller>
  </wfs:Insert>
</wfs:Transaction>

CQL ve OGC Filtre Dili

WFS sorgulamalarında iki filtre dili kullanılır:

  • CQL (Common Query Language): Daha basit ve okunabilir sözdizimi. GeoServer tarafından desteklenir.
  • OGC Filter Encoding: XML tabanlı resmi OGC standardı. Tüm WFS sunucuları destekler.
# CQL örnekleri
nufus > 1000000 AND il_adi LIKE 'İ%'
BBOX(geom, 28.0, 36.0, 45.0, 42.0)
DWITHIN(geom, POINT(32.86 39.93), 100, kilometers)

WFS'i JavaScript'te Kullanma

// OpenLayers ile WFS katmanı
import VectorSource from 'ol/source/Vector';
import GeoJSON from 'ol/format/GeoJSON';

const wfsSource = new VectorSource({
  url: 'https://example.com/geoserver/wfs?service=WFS&version=2.0.0' +
       '&request=GetFeature&typenames=cbs:iller&outputFormat=application/json',
  format: new GeoJSON()
});

Performans İpuçları

  • Büyük veri setlerinde count parametresiyle sonuç sayısını sınırlayın.
  • Sadece ihtiyaç duyulan öznitelikleri PROPERTYNAME ile belirtin.
  • Mekansal filtre (BBOX) kullanarak gereksiz veri transferini önleyin.
  • Sunucu tarafında mekansal indeks (PostGIS'te GIST indeksi) oluşturun.