Skip to main content

🌧️ Kesilmiş hassasiyet

Her çokgen, sorguladığınız dairesel alana önceden kırpılmıştır — tarafınızda ek işlem gerekmez.

⚡ İkili verimlilik

Protobuf kodlaması, JSON’a kıyasla yük boyutunu önemli ölçüde azaltır; mobil ve gömülü istemciler için idealdir.

🗺️ GeoJSON'a hazır

Ham baytlardan geojson.io veya Mapbox’a doğrudan atabileceğiniz şekillere ulaşmak için yalnızca iki adım yeterlidir.

Endpoint ne döndürür?

POST /v1/precipitations/geometry, ham ikili gövde (Content-Type: application/x-protobuf) ile yanıt verir. Baytlar bir PrecipitationFeatureCollection mesajını kodlar; her biri kırpılmış bir MultiPolygon geometrisi ve tiplendirilmiş yağış özellikleri taşıyan PrecipitationFeature öğelerinin listesidir.
Yanıt gövdesini JSON veya metin olarak ayrıştırmayın. Protobuf ikili akışıdır; metin olarak işlenirse anlamsız karakterler görürsünüz.

Proto şeması 📄

Aşağıda iklim.co’nun bu endpoint için kullandığı proto mesaj tanımları verilmiştir.
Aşağıdaki çözümleme adımlarını çalıştırmadan önce geojson.proto dosyasının tamamını projenize kopyalayın. protobufjs yükleyicisi bu dosyaya çalışma zamanında ihtiyaç duyar.

Çözümleme ve GeoJSON’a dönüştürme 🛠️

Neden iki adım gerekli? GeoJSON bir JSON metin formatıdır (RFC 7946) ve resmi bir protobuf şeması yoktur. Koordinatları düz iç içe dizilerden ([[lng, lat], ...]) oluşur; protobuf ise isimsiz wrapper olmadan bu yapıyı temsil edemez. iklim.co’nun ikili şeması (Coordinate, Ring, PolygonShape, …) boyut verimliliği için tiplendirilmiş mesajlar kullandığından, çözümlemeden sonra her zaman bir yapısal dönüşüm adımı gerekir.
1

protobufjs kurulumu 📦

2

İkili yanıtı getir 🌐

fetch’e yanıtı ArrayBuffer olarak okumasını söyleyin, ardından proto çözümleyici için Uint8Array’e sarın.
3

Protobuf baytlarını çözümle 🔓

geojson.proto dosyasını yükleyin ve baytları JavaScript nesnesine dönüştürün.
Bu noktada fc şu şekilde görünür:
4

Standart GeoJSON'a dönüştür 🗺️

Çözümlenen nesneyi RFC 7946 uyumlu GeoJSON’a dönüştürün.

Alan referansı 📚

PrecipitationFeature

geometry (MultiPolygon)

properties

IntensityType kataloğu