Il s'avère que json n'est pas si bon pour transporter des données binaires. Mais avec HTML5, XHR2 est désormais capable de transférer les blobs proprement. Je cherche à transférer la géométrie binaire (pour économiser la bande passante) et à la décoder sur le client.
En vain, j'ai parcouru le Web pour une fonction basée sur javascript WKB (Well-known Binary) vers WKT (Well-known Text) . Avant de réinventer la roue, quelqu'un connaît-il des solutions open source?
javascript
wkt
well-known-binary
Jordan Arseno
la source
la source
Réponses:
Il semble qu'une nouvelle bibliothèque d'analyse JS WKB mieux prise en charge soit apparue depuis.
https://github.com/cschwarz/wkx
J'ai pu l'utiliser pour convertir WKB directement à partir de postgres en objets JS qui peuvent être mappés dans le navigateur. Vous devrez inclure https://github.com/cschwarz/wkx/blob/master/dist/wkx.js dans votre page Web pour que cela fonctionne.
la source
La seule solution pure javascript que j'ai trouvée jusqu'à présent (et je n'ai pas essayé) est https://github.com/thejefflarson/wkb.js . Ce n'est qu'un analyseur WKB incomplet (il convertit WKB en un objet js que vous pouvez transformer en WKT)
Une manière alternative à wkb du côté javascript peut être le twkb expérimental (pas un standard pour le moment) http://blog.jordogskog.no/2013/05/05/mapservice-from-websocket-with-twkb/ mais il nécessite pour jouer avec une version PostGIS personnalisée (donc vraiment pas pour les débutants)
la source
Une autre possibilité pourrait être d'utiliser TopoJSON au lieu de GeoOSON simple:
la source
Comme mentionné par ThomasG77, j'ai joué avec des données binaires dans ce format "twkb".
vous pouvez le voir en action ici (un exemple de websocket)
ou ici , une implémentation php.
Si vous souhaitez étudier l'analyse, consultez le fichier twkb.js. C'est un peu plus propre dans l'exemple twkb_node je pense.
Dans cet article de blog, vous trouverez un lien vers le code source de la partie PostGIS et une description du format.
J'ai fait quelques retouches depuis et vais bientôt mettre une nouvelle description sur github. J'ai une foi en twkb, mais il a besoin de plus de cerveaux pour devenir bon.
Vous pouvez bien sûr également analyser wkb mais vous ne gagnerez aucune bande passante par rapport à geojson gzippé. J'ai été surpris de voir à quel point cela était petit. Voir le deuxième lien et vérifier les tailles du geojson vs twkb. WKB est environ 2 à 6 fois plus grand que twkb.
la source
Cette réponse ne concerne pas la fonction wkb to wkt.
Je dirais que vous ne devriez pas utiliser la conversion de wkt en wkb juste pour économiser de la bande passante - gzipping wkt (ou tout autre format que vous avez là-bas) sur le serveur devrait être plus que suffisant (et probablement plus efficace) et les navigateurs peuvent faire la décompression à la volée et hors de la boîte.
Regardez également les tableaux de prise en charge du navigateur pour XHTMLRequest2, car il n'est pas pris en charge dans certains navigateurs plus anciens, mais toujours utilisés.
la source
GeoScript possède une API Javascript qui lit et écrit WKT et WKB. Les méthodes font partie de geom.io.
la source