Es stellt sich heraus, dass json beim Transport von Binärdaten nicht so gut ist . Mit HTML5 ist XHR2 nun in der Lage , Blobs sauber zu übertragen. Ich möchte binäre Geometrie übertragen (um Bandbreite zu sparen) und sie auf dem Client dekodieren.
Ohne Erfolg habe ich das Web nach einer Javascript-basierten WKB-Funktion (Well- Not Binary) bis WKT (Well-Text) durchsucht. Kennt jemand Open-Source-Lösungen, bevor ich das Rad neu erfinde?
javascript
wkt
well-known-binary
Jordan Arseno
quelle
quelle
Antworten:
Es sieht so aus, als wäre seitdem eine neue und besser unterstützte JS WKB-Parsing-Bibliothek erschienen.
https://github.com/cschwarz/wkx
Ich konnte damit WKB direkt von Postgres in JS-Objekte konvertieren, die im Browser zugeordnet werden können. Sie müssen https://github.com/cschwarz/wkx/blob/master/dist/wkx.js in Ihre Webseite aufnehmen, damit dies funktioniert.
quelle
Die einzige Lösung, die ich bisher gefunden habe (und die ich nicht ausprobiert habe), ist https://github.com/thejefflarson/wkb.js . Es ist nur ein unvollständiger WKB-Parser (er konvertiert WKB in ein js-Objekt, das Sie in WKT transformieren können).
Ein alternativer Weg zu wkb auf Javascript-Seite kann das experimentelle twkb sein (derzeit kein Standard) http://blog.jordogskog.no/2013/05/05/mapservice-from-websocket-with-twkb/, aber es erfordert mit einem benutzerdefinierten PostGIS-Build zu spielen (also wirklich nicht für Anfänger)
quelle
Eine andere Möglichkeit könnte darin bestehen, TopoJSON anstelle von einfachem GeoJSON zu verwenden:
quelle
Wie von ThomasG77 erwähnt, habe ich mit Binärdaten in diesem "Twkb" -Format gespielt.
Sie können es hier in Aktion sehen (ein Websocket-Beispiel)
oder hier eine PHP-Implementierung.
Wenn Sie das Parsen studieren möchten, überprüfen Sie die Datei twkb.js. Im Beispiel twkb_node ist es meiner Meinung nach etwas sauberer.
In diesem Blog-Beitrag finden Sie einen Link zum Quellcode des PostGIS-Teils und eine Beschreibung des Formats.
Ich habe seitdem einige Überarbeitungen vorgenommen und werde Github bald neu beschreiben. Ich glaube an Twkb, aber es braucht mehr Verstand, um gut zu werden.
Sie können natürlich auch wkb analysieren, aber Sie erhalten keine Bandbreite im Vergleich zu gezipptem Geojson. Ich war überrascht, wie klein das wurde. Sehen Sie sich den zweiten Link an und überprüfen Sie die Größe des Geojson vs Twkb. WKB ist ungefähr 2-6 mal größer als Twkb.
quelle
Bei dieser Antwort geht es nicht um die Funktion von wkb zu wkt.
Ich würde sagen, Sie sollten die Konvertierung von wkt nach wkb nicht nur zum Speichern der Bandbreite verwenden - das Zippen von wkt (oder eines anderen Formats, das Sie dort haben) auf dem Server sollte mehr als ausreichend (und höchstwahrscheinlich - effizienter) sein und Browser können das Entpacken durchführen on the fly und out of the box.
Sehen Sie sich auch die Browser-Unterstützungstabellen für XHTMLRequest2 an, da diese in einigen älteren, aber noch verwendeten Browsern nicht unterstützt werden.
quelle
GeoScript verfügt über eine Javascript-API, die WKT und WKB liest und schreibt. Die Methoden sind Teil von geom.io.
quelle