OGC veri ve harita yayını
Proje nesnelerini OGC API Features ile okuyun ve WMS harita katmanlarını kullanın.
Son güncelleme:
Bu sayfada
ErişimOGC API FeaturesWMS 1.3.0Koleksiyon listesini okuyunKoleksiyon nesnelerini süzünWMS haritasını alınErişim
OGC yayını /api/ogc altında salt okunurdur. Erişim anahtarı, Authorization: Bearer başlığında veya HTTP Basic parola alanında verilir; Basic kullanıcı adı serbesttir. Oturum çerezi kabul edilmez. Anahtarın proje kapsamı, kullanıcının güncel kurum ve üyelik izinleri uygulanır. Tasarım dalları yayına açılmaz.
GIS_OGC=kapali yayını kapatır. Sorgu parametresiyle anahtar varsayılan olarak kapalıdır; yalnız GIS_OGC_SORGU_ANAHTAR=1 olduğunda anahtar parametresi kabul edilir. URL’nin başka sistemlerde de kaydedilebilmesi nedeniyle başlıkla veya Basic kimlik kaydıyla bağlanın.
OGC API Features
| Yöntem ve uç | İşlev |
|---|---|
GET /api/ogc/ |
Yayının başlangıç belgesi |
GET /api/ogc/conformance |
Sunucunun bildirdiği uyumluluk sınıfları; kimlik gerektirmez |
GET /api/ogc/api |
OGC uçlarına ait OpenAPI 3.0 şeması |
GET /api/ogc/collections |
Erişilebilir koleksiyonlar |
GET /api/ogc/collections/{cid} |
Koleksiyon, kapsam ve koordinat sistemleri |
GET /api/ogc/collections/{cid}/items |
GeoJSON nesneleri |
GET /api/ogc/collections/{cid}/items/{fid} |
Tek GeoJSON nesnesi |
Koleksiyon kimliği p{proje_id}-{tur} biçimindedir; örneğin p123-cable. Gerçek kimliği koleksiyon listesinden alın. Uyumluluk belgesi dışındaki OGC uçları anahtar ister.
- Koleksiyon listesini okuyun ve izin verilen koleksiyonu seçin.
itemsbağlantısından nesneleri alın.- Dönen
linksiçindekirel: "next"bağlantısını izleyin; bağlantı yoksa son sayfadasınız. - Gerekiyorsa
bbox,bbox-crs,crsvedatetimefiltrelerini ekleyin.
limit sayfa boyu, after son nesne kimliğidir. datetime, kaydın güncellenme zamanını süzer; saat dilimli bir an veya başlangıç/bitiş aralığı alır, açık uç .. ile belirtilir. HTML çıktı sunulmaz.
Koordinat sistemi için koleksiyonun crs listesindeki standart URI’leri kullanın. Varsayılan CRS84 boylam/enlem sırasındadır. EPSG:4326 URI’siyle çıktı ve sınır kutusu enlem/boylam sırasını kullanır. Yanıttaki Content-Crs başlığını okuyun. Projeye özel yerel dönüşüm OGC koordinat sistemi değildir.
WMS 1.3.0
WMS ucu /api/ogc/wms olup aynı kimlik ve proje kapsamını kullanır.
| İstek | Çıktı |
|---|---|
SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities |
Yetkili katmanları ve servis bilgilerini veren XML |
REQUEST=GetMap |
FORMAT=image/png ile harita görseli |
REQUEST=GetFeatureInfo |
INFO_FORMAT=application/json ile seçilen piksele yakın nesneler |
GetMap isteğinde ayrıca SERVICE, VERSION, LAYERS, CRS, BBOX, WIDTH, HEIGHT gerekir. Yalnız varsayılan stil kullanılır; STYLES boş olabilir. Desteklenen sistemler EPSG:4326, EPSG:3857 ve CRS:84 değerleridir. WMS 1.3.0’da EPSG:4326 sınırları enlem, boylam sırasındadır.
GetFeatureInfo, aynı harita parametrelerine ek olarak QUERY_LAYERS, I, J ve INFO_FORMAT ister. Sorgulanan katmanlar LAYERS alt kümesi olmalıdır. WMS parametre/katman hataları XML; kimlik hataları detail, kod, alan içeren JSON dönebilir.
Masaüstü CBS istemcisinde OGC API Features bağlantısı için sunucu adresine /api/ogc/, WMS bağlantısı için /api/ogc/wms ekleyin. Basic kimlik kaydında parola olarak erişim anahtarını kullanın. İstemcinin bağlanması, kurumun bütün projelerini görme yetkisi vermez.
Koleksiyon listesini okuyun
Aşağıdaki örneklerde SOSOMAPS_URL kurumunuzun uygulama adresidir. İstek/yanıt alanları kaynakla karşılaştırılmıştır; burada canlı bir servis bağlantısı veya masaüstü istemci kabulü gösterilmez. Okuma kapsamlı anahtarı güvenli ortam yapılandırmasından alın.
curl --fail-with-body "$SOSOMAPS_URL/api/ogc/collections" \
-H "Authorization: Bearer $ERISIM_ANAHTARI"
import os
import requests
yanit = requests.get(
os.environ["SOSOMAPS_URL"].rstrip("/") + "/api/ogc/collections",
headers={"Authorization": "Bearer " + os.environ["ERISIM_ANAHTARI"]},
timeout=30,
)
yanit.raise_for_status()
print(yanit.json())
const yanit = await fetch(
`${process.env.SOSOMAPS_URL.replace(/\/$/, '')}/api/ogc/collections`,
{ headers: { Authorization: `Bearer ${process.env.ERISIM_ANAHTARI}` } }
);
if (!yanit.ok) throw new Error(`HTTP ${yanit.status}`);
console.log(await yanit.json());
Yanıtta collections dizisini ve her koleksiyonun id, links, extent, crs alanlarını okuyun. collections: [] erişilebilir koleksiyon olmadığı anlamına gelir; bunu bütün kurum verisinin boş olduğu şeklinde yorumlamayın. links içindeki nesne bağlantısını izleyin.
Koleksiyon nesnelerini süzün
Örnek koleksiyon p123-cabinet ve koordinatlar örnektir; gerçek kimliği koleksiyon listesinden alın. Varsayılan CRS84 boylam/enlem sırasını kullanır. --get --data-urlencode parametrelerin URL’ye doğru kodlanmasını sağlar.
curl --fail-with-body --get \
"$SOSOMAPS_URL/api/ogc/collections/p123-cabinet/items" \
-H "Authorization: Bearer $ERISIM_ANAHTARI" \
--data-urlencode 'bbox=31.9,38.9,32.1,39.1' \
--data-urlencode 'limit=100'
import os
import requests
yanit = requests.get(
os.environ["SOSOMAPS_URL"].rstrip("/") + "/api/ogc/collections/p123-cabinet/items",
headers={"Authorization": "Bearer " + os.environ["ERISIM_ANAHTARI"]},
params={"bbox": "31.9,38.9,32.1,39.1", "limit": 100}, timeout=30,
)
yanit.raise_for_status()
print(yanit.json())
const adres = new URL('/api/ogc/collections/p123-cabinet/items', process.env.SOSOMAPS_URL);
adres.search = new URLSearchParams({ bbox: '31.9,38.9,32.1,39.1', limit: '100' });
const yanit = await fetch(adres, {
headers: { Authorization: `Bearer ${process.env.ERISIM_ANAHTARI}` }
});
if (!yanit.ok) throw new Error(`HTTP ${yanit.status}`);
console.log(await yanit.json());
Boş sayfanın temsili yanıtı şöyledir. numberReturned bu sayfadaki kayıt sayısıdır; toplam kayıt sayısı değildir. Sonraki sayfa varsa links içinde rel: "next" bulunur.
{
"type": "FeatureCollection",
"features": [],
"numberReturned": 0,
"timeStamp": "2026-11-10T09:00:00+00:00",
"links": [
{
"href": "/api/ogc/collections/p123-cabinet/items?bbox=31.9%2C38.9%2C32.1%2C39.1&limit=100",
"rel": "self",
"type": "application/geo+json"
}
]
}
WMS haritasını alın
Önce yetkili katmanları GetCapabilities ile okuyun. Basic kullanıyorsanız kullanıcı adı serbest, parola erişim anahtarıdır. Örnekte okuyucu kullanıcı adı bir ürün hesabı oluşturmaz.
curl --fail-with-body --get "$SOSOMAPS_URL/api/ogc/wms" \
--user "okuyucu:$ERISIM_ANAHTARI" \
--data-urlencode 'SERVICE=WMS' \
--data-urlencode 'VERSION=1.3.0' \
--data-urlencode 'REQUEST=GetCapabilities'
Katman adını yanıtın Name değerinden alın. Aşağıdaki örnek CRS:84 seçerek boylam/enlem kutusu kullanır ve PNG’yi yerel dosyaya yazar. EPSG:4326 seçerseniz kutunun eksen sırası değişir.
curl --fail-with-body --get "$SOSOMAPS_URL/api/ogc/wms" \
-H "Authorization: Bearer $ERISIM_ANAHTARI" \
--data-urlencode 'SERVICE=WMS' --data-urlencode 'VERSION=1.3.0' \
--data-urlencode 'REQUEST=GetMap' --data-urlencode 'LAYERS=p123-cabinet' \
--data-urlencode 'STYLES=' --data-urlencode 'CRS=CRS:84' \
--data-urlencode 'BBOX=31.9,38.9,32.1,39.1' \
--data-urlencode 'WIDTH=800' --data-urlencode 'HEIGHT=600' \
--data-urlencode 'FORMAT=image/png' --output harita.png
import os
from pathlib import Path
import requests
params = {"SERVICE": "WMS", "VERSION": "1.3.0", "REQUEST": "GetMap",
"LAYERS": "p123-cabinet", "STYLES": "", "CRS": "CRS:84",
"BBOX": "31.9,38.9,32.1,39.1", "WIDTH": 800, "HEIGHT": 600,
"FORMAT": "image/png"}
yanit = requests.get(os.environ["SOSOMAPS_URL"].rstrip("/") + "/api/ogc/wms",
headers={"Authorization": "Bearer " + os.environ["ERISIM_ANAHTARI"]},
params=params, timeout=30)
yanit.raise_for_status()
if not yanit.headers.get("Content-Type", "").startswith("image/png"):
raise ValueError("PNG yanıtı bekleniyordu")
Path("harita.png").write_bytes(yanit.content)
import { writeFile } from 'node:fs/promises';
const adres = new URL('/api/ogc/wms', process.env.SOSOMAPS_URL);
adres.search = new URLSearchParams({
SERVICE: 'WMS', VERSION: '1.3.0', REQUEST: 'GetMap',
LAYERS: 'p123-cabinet', STYLES: '', CRS: 'CRS:84',
BBOX: '31.9,38.9,32.1,39.1', WIDTH: '800', HEIGHT: '600', FORMAT: 'image/png'
});
const yanit = await fetch(adres, {
headers: { Authorization: `Bearer ${process.env.ERISIM_ANAHTARI}` }
});
if (!yanit.ok) throw new Error(`HTTP ${yanit.status}`);
if (!yanit.headers.get('content-type')?.startsWith('image/png')) {
throw new Error('PNG yanıtı bekleniyordu');
}
await writeFile('harita.png', Buffer.from(await yanit.arrayBuffer()));
İndirilen dosyanın türünü ve WMS hata gövdesini kontrol edin. OGC referansı ayrı API sayfasında, ortak hata zarfı hata kodları sayfasındadır.