Bibliothèque JavaScript pure pour les opérations de géométrie

21

Quelqu'un connaît-il une bibliothèque JavaScript pure pour effectuer des opérations de géométrie telles que tampon, union, intersections, etc.? Je veux jouer avec ces opérations dans le navigateur. Il semble que GeoScriptJS ait certaines dépendances.

Google
la source

Réponses:

15

Vous pouvez regarder l'API OpenLayers, en particulier les classes Geometry . Vous pouvez vérifier les intersections et avoir accès aux sommets, etc. J'ai déjà implémenté des tampons de points avec OpenLayers. Les syndicats peuvent cependant être plus délicats.

Pour des opérations plus complexes, vous pouvez effectuer le traitement côté serveur et renvoyer les résultats en WKT ou GeoJSON, que OpenLayers peut afficher. Voir ce tutoriel Union pour un exemple.

Une autre option possible est Spatial Query, une « bibliothèque JQuery comme Javascript pour gérer les mathématiques spatiales ». Je ne sais pas à quel point il est bien testé, mais comme la source est disponible, vous devriez jeter un œil.

Mise à jour

Il existe maintenant un port JavaScript de la suite de topologie JTS - https://github.com/bjornharrtell/jsts

geographika
la source
J'ai regardé les géométries d'OpenLayers et je pense que la méthode de redimensionnement me permettrait de mettre à l'échelle les géométries pour obtenir des résultats de type tampon. Mais vous avez raison, faire des unions et des intersections devrait être fait manuellement. Hélas. Ce dont j'ai vraiment besoin, c'est d'un pur port JS de JTS. JSTS? =)
atogle
J'ai beaucoup regardé autour de moi et je ne pense pas qu'il existe vraiment de solution JS complète, mature et pure. Spatial Query ressemble vraiment à la meilleure chose pour le moment, mais j'ai trouvé quelques autres repos sur GitHub qui étaient utiles: github.com/shawnbot/geoff/blob/master/src/geoff.js et github.com/maxogden/ geojson-js-utils
atogle
@atogle - il est question de déplacer la fonctionnalité de géométrie dans OpenLayers vers une bibliothèque distincte - osgeo-org.1803224.n2.nabble.com/…
geographika
bon à savoir!
atogle
22

J'ai à peu près fini avec mon port de JTS qui est un pur port JS et il est disponible sur https://github.com/bjornharrtell/jsts

Dans la version actuelle (0.9.1), il prend en charge la fonctionnalité de base de JTS par laquelle j'entends les prédicats et les superpositions.

Björn Harrtell
la source
Hé, j'ai récemment terminé JSTS 1.0 qui est un portage complet et à jour de JTS en JavaScript moderne. Disponible au même endroit que la version 0.x.
Björn Harrtell
3

Vous pouvez jeter un oeil sur le géoscript (implémenté dans plusieurs langages, y compris JS)

simo
la source
2
Je suis à peu près sûr que GeoScript JS n'est pas destiné à être exécuté sur le client / navigateur. Le site indique qu'il est conçu pour RingoJS. Il semble également avoir des dépendances JTS.
Google
1

Turf est une bibliothèque javascript fournissant de nombreuses opérations spatiales. Il est également modulaire, vous ne pouvez donc inclure que les fonctions dont vous avez besoin dans le script final.

Jeremy-George
la source
Malheureusement, il est sérieusement limité en termes de géométries et d'opérations disponibles. Vous pouvez faire pointer des trucs de polygones mais cela semble être fondamentalement le cas.
bugmenot123
Turf utilise en fait mon propre JSTS (mais une version plus ancienne) pour bon nombre de ses opérations. Si vous utilisez directement JSTS, vous avez accès à une API plus détaillée qui peut faire beaucoup plus que Turf. Voir github.com/bjornharrtell/jsts .
Björn Harrtell
J'ai trouvé difficile de faire fonctionner JSTS dans une application dactylographiée et Turf.js a fonctionné hors de la boîte. JSTS est plus riche en fonctionnalités, mais pour mes besoins, Turf.js fonctionnait parfaitement.
HankCa
0

Vous pouvez utiliser l'API REST d'ArcGIS Server quelle que soit l'API / la langue que vous utilisez. Il fournit toutes les méthodes exposées ....

Zahid Chaudhry
la source
0

Vous pouvez vous référer à la bibliothèque de géométrie javascript opensource @ geoJs .

Sunny Luthra
la source