2016-08-19 3 views
0

Je dois être capable de dessiner une ligne tracée arbitrairement dans la mapbox gl js. La ligne sera utilisée pour sélectionner certains points dans une couche de tuiles vectorielles sous la couche de lignes. Comment fait-on cela avec mapbox gl js. Aurai-je besoin d'un polygone personnalisé pour pouvoir avoir le contrôle total des points? J'envisageais d'utiliser project et unproject ainsi que le point de départ, la largeur de pixel de la ligne, et la pente de la ligne, avec une certaine géométrie, pour parcourir tous les points visibles et obtenir ceux qui sont sous la ligne. Mais y a-t-il un moyen plus facile avec le gl js api? QueryRenderedFeatures prend une boîte englobante, mais celle-ci semble être de nature rectangulaire et orientée sur une ligne nord-sud. Je dois être capable de tracer la ligne à tous les angles sur la carte.obtenir des fonctions sous une mapbox ligne gl js

Répondre

0

Vous pouvez créer un polygone personnalisé de la zone autour de votre ligne en utilisant la fonction turf-buffer, et vous pouvez accéder aux données dans les tuiles de vecteur dans ce polygone en utilisant queryRenderedFeatures avec une boîte de sélection qui contient votre polygone de ligne en mémoire tampon et filtrer les résultats en utilisant turf-within pour obtenir seulement les points qui tombent sous votre ligne.