2016-04-04 5 views
0

Zunächst einmal, ich bin mir bewusst, dass querySourceFeatures könnte das beheben. Aber leider ist die neue Version bei allen Typen wirksam, aber nicht bei den Symbolen, die ich benutze. Ich schreibe also immer noch unter Version 0.14.x.Holen Sie sich die Anzahl der Features auf einer Karte nach einem Filter angezeigt (mit featuresIn)

Das heißt, ich filter meine Karte mit der setFilter Funktion und ich muss die Anzahl der Features zurück, die angezeigt werden, sobald der Filter fertig ist. Ich dachte über die Umwandlung der ganzen Welt (-90, -180,90,180) Kartenkoordinaten in Pixel und dann übergibt es in eine featuresIn Funktion.

Mit Geige unten, kehrt featuresIn nichts [EDIT: das war wegen nicht interacive : true Einstellung, jetzt ist es endlich soweit, aber Problem ist immer noch hier]. Hast du eine Idee, wie die Anzahl der Features auf meiner Karte angezeigt wird?

EDIT: Bitte finden meine jsFiddle: https://jsfiddle.net/y7hoa0gy/7/

+0

Können Sie eine funktionale Demo Ihres Codes bereitstellen? Hier gibt es nicht genügend Informationen, um Ihr Problem sicher zu diagnostizieren. Vielen Dank! –

+0

@LucasWojciechowski Demo hinzugefügt. Danke für deine Hilfe – So4ne

Antwort

1

keine Features von featuresIn zurückgegeben werden, weil Sie nicht "interactive": true auf der „route“ Schicht festgelegt haben, wie in den documentation angegeben (aber nicht mehr auf dem offiziellen docs Seite, weil wir diese API geändert haben).


/*Now I want to know how many features are still displayed after that filter My thought was to get the bbox of the whole map (-180,-90,180,90) and make a featuresIn of that bbox.*/

Grundsätzlicher wird dieser Ansatz nicht funktionieren. featuresIn gibt nur Features im aktuellen Ansichtsfenster zurück. Es gibt nicht alle Funktionen zurück.

+0

Ochsch, ja, mein Fehler, es konnte nicht funktionieren. Ok ich verstehe das aktuelle Viewport, aber es gibt eine bbox als Parameter, also dachte ich mir könnte es die Features in der bbox rendern, worum geht es dann? Ich habe einen anderen Weg versucht, durch jumpTo in der Mitte der Karte vor dem Aufruf von featuresIn aber die gefilterten Funktionen werden manchmal zu spät gerendert .. Gibt es eine Möglichkeit, das Ereignis zu fangen, um zu wissen, wenn die Funktionen nach einem SetFilter gerendert werden? Sorry für das Bestehen, aber ich brauche diese Nummer wirklich :) https://jsfiddle.net/rbe56vz7/1/ – So4ne

+0

Ok Ich habe mein Problem behoben, indem ich den JSON parallel gefiltert habe. Vielen Dank – So4ne

Verwandte Themen