2017-02-20 3 views
0

Ich habe einen GeoJSON-Datensatz von etwa 30.000 Polygonen, von denen jeder einen Namen und eine Adresse hat. Ich habe dies in Mapbox als ein Tileset hochgeladen.Mapbox: Suche nach Attributfeld hinzufügen?

Ist es möglich, ein Feld "Suche nach Attribut" mit Mapbox GL JS zu erstellen, wo der Benutzer mit der Eingabe beginnen kann und das Suchfeld Ergebnisse basierend auf dem Namen und der Adresse für den Benutzer bietet? Nach dem Vorbild der this Mango example:

enter image description here

Ist das möglich in MapBox? Ich könnte es tun, indem ich etwas wie SELECT * FROM tiles WHERE name LIKE '%venet%' or address LIKE '%venet%' gegen das Tileset laufen lasse, und dann die Ergebnisse zu meinem eigenen Dropdown zusammenbinde, aber ich weiß nicht, ob Mapbox JS diese Art von Ajax-Abfrage unterstützt. oder ob Mapbox JS dafür ein Widget bereitstellt.

Ich habe dies zuvor in Carto.JS mit benutzerdefinierten Code und einer SQL LIKE Abfrage durchgeführt, aber ich weiß nicht, ob es mit Mapbox möglich ist.

Antwort

0

Obwohl Lucas richtig ist, dass Sie das nicht mit Datensätze tun können Sie sagten, Sie die Daten als tileset hochgeladen.

Die MapBox-GL-JS querySourceFeatures kann tun, was Sie wollen:

Gibt ein Array von GeoJSON Feature-Objekte Funktionen innerhalb der spezifizierten Vektor Fliesen oder GeoJSON Quelle darstellt, die die Abfrageparameter erfüllen.

Es unterstützt keine Teilübereinstimmung (dh %venet%), aber man kann es wahrscheinlich alle Funktionen innerhalb des Ansichtsfensters holen verwendet, dann filtert sie selbst. Es gibt ein gutes Beispiel dafür: https://www.mapbox.com/mapbox-gl-js/example/filter-features-within-map-view/

Verwandte Themen