[gelöst] Umkreissuche mit Leaflet und geolocation
am 14.08.2018 - 09:52 Uhr in
Ich habe unter Drupal 8 Leaflet, geocoder, geolocation, addresses installiert und eine View gebaut, die zwei Test-Einträge auch perfekt auf der OpenStreetMap ausgiebt.
Ziel ist, eine Umkreissuche zu testen.
Unter D7 habe ich das mit geocoder Feld gemacht.
Bei D8 finde ich keinen Filter geocoder proximity.
Deshalb verwende ich hier Geolocation.
Aber wenn ich den Filter aktiviere, finde ich nicht, wie ich zu dem Feld Umkreis (in Kilometer) noch ein Feld hinzufüge, damit man angeben kann: Umkreis von wo?
Bei geocoder unter D7 gab es dann automatisch zwei Felder:
Umkreis und Ort.
Und man konnte noch angeben, wie die Angabe des Ortes in Koordinaten umgewandelt werden soll.
Hat schon jemand eine Umkreissuche unter D8 gemacht (mit Leaflet) und kann mir sagen, was ich da beim Filter angeben muss?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo montviso, Ich habe hier
am 17.08.2018 - 07:36 Uhr
Hallo montviso,
Ich habe hier einmal diese Anleitung dazu gefunden.
http://www.elbsenfmedia.de/blog/umkreissuche-drupal-8-erstellen
Vielleicht hilft es dir ja weiter.
Gruß
Danke Dir. Das schaue ich mir
am 17.08.2018 - 08:55 Uhr
Danke Dir.
Das schaue ich mir mal an, ob es sich auf Leaflet übertragen lässt und vor allem, ob man die Geocodierung auch mit einem OpenSource-Dienst machen könnte.
Google hat bei mir schon beim Testen gesagt, ich hätte die zulässigen Zugriffe (für kostenlose Nutzun) für diesen Tag überschritten.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Ich habe selber schon einmal
am 17.08.2018 - 15:33 Uhr
Ich habe selber schon einmal eine karte mit Leaflet und OSM gebaut. Das hat ganz gut geklappt.
Ich sehe auch immer mehr kommerzielle Seiten, die auf eine offene Lösung setzen.
Viel Erfolg bei der Erstellung der Umkreissuche.
Hast Du das auch schon unter
am 17.08.2018 - 15:54 Uhr
Hast Du das auch schon unter D8 gemacht?
Ja, das ist ja auch für kommerzielle Seiten kaum kalkulierbar, wie viele Zugriffe generiert werden.
Stell Dir mal vor, ein Bot greift da zu und ruft den geocoder 100000 mal auf...
Oder fängt Google das ab?
Müsste man vermutlich selbst abfangen.
Ein Thema hat auch noch einen Haken bei der Umkreissuche:
Wenn man zulässt, dass ein Ort eingegeben wird, dann hat man ja das Problem mit den Neustadts dieser Welt.
Es gibt einfach zu viele davon. ;-)
Bei einem Projekt unter Drupal 7 hatten wir das mal mit dem Autocomplete Such-Feld von Map-Zen gelöst.
Diese Lösung wird aber nicht mehr angeboten.
Das ist der Nachteil von den tollen OpenSource-Lösungen.
Wobei das natürlich bei Zahllösungen auch passieren kann.
Das ist ja jetzt kein klassisches Drupal-Problem.
Aber wenn wir hier schon über Karten und Ortssuchen sprechen...vielleicht hat ja jemand eine Idee.
Das scheint in dem Modul von Elbsenfmedia auch nicht berücksichtigt zu sein.
Muss ich mir aber erst noch näher ansehen.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
montviso schrieb Hast Du das
am 18.08.2018 - 10:50 Uhr
Hast Du das auch schon unter D8 gemacht?
Ja, das ist ja auch für kommerzielle Seiten kaum kalkulierbar, wie viele Zugriffe generiert werden.
Stell Dir mal vor, ein Bot greift da zu und ruft den geocoder 100000 mal auf...
Oder fängt Google das ab?
Müsste man vermutlich selbst abfangen.
Ja, das war mit D8. Ich habe andere Anleitungen als Grundlage verwendet und meinen Bedürfnissen angepasst.
Ich nehme auch an, dass du selber die Abfragen an den Mapservice abfangen oder zwischenspeichern musst.
Für die Performance bei hoch frequentierten Seiten ist das vielleicht auch keine schlechte Idee - sofern möglich.
Ein Thema hat auch noch einen Haken bei der Umkreissuche:
Wenn man zulässt, dass ein Ort eingegeben wird, dann hat man ja das Problem mit den Neustadts dieser Welt.
Es gibt einfach zu viele davon. ;-)
Bei einem Projekt unter Drupal 7 hatten wir das mal mit dem Autocomplete Such-Feld von Map-Zen gelöst.
Diese Lösung wird aber nicht mehr angeboten.
Das ist der Nachteil von den tollen OpenSource-Lösungen.
Wobei das natürlich bei Zahllösungen auch passieren kann.
Das ist ja jetzt kein klassisches Drupal-Problem.
Aber wenn wir hier schon über Karten und Ortssuchen sprechen...vielleicht hat ja jemand eine Idee.
Ja, dass sich Schnittstellen verändern und Funktionen mit neuen Versionen nicht mehr funktionieren passiert unabhängig von Drupal und anderen Open- oder Closed Source Lösungen. Bei Drupal fällt es mir allerdings selber auch enorm auf, dass Hauptversionen inkompatibel zueinander sind. Aber das ist ein anderes Thema...
Ich kann dir an deinem Punkt leider nicht mehr weiter helfen, aber wenn du eine Lösung hast würde ich mich freuen zu wissen wie du es gemacht hast.
Aber vielleicht hast du eine Idee für mich, wenn du dich mit dem Thema Adressen und Geolocation schon beschäftigt hast ... Ich habe in einem anderen Thread
https://www.drupalcenter.de/node/58887 die Frage gestellt wie sich einmal eingetragene Adressen in neuen Nodes wiederverwenden lassen. Mit dem Adress - Modul gelingt mir das nämlich nicht.
Gruß und ein schönes Wochenende
Zitat: Google hat bei mir
am 19.08.2018 - 11:07 Uhr
Google hat bei mir schon beim Testen gesagt, ich hätte die zulässigen Zugriffe (für kostenlose Nutzun) für diesen Tag überschritten.
Die haben ein neues Preismodell und du brauchst einen neuen API-Schlüssel und hast dann ein Guthaben von 200$ pro Monat, was für einige tausend Abfragen monatlich reichen sollte.
Du kannst es so konfigurieren das eine Warnmail kommt wenn du an die Grenze gelangst, es wird nicht einfach irgendwas abgebucht.
https://cloud.google.com/maps-platform/pricing/sheet/?_ga=2.222403867.-1...
Allerdings löst es nicht das Problem das man ja eigentlich Leaflet ausgeben möchte, und mit Google API vermute ich, sind auch nur Google Maps erlaubt, oder?
Grüße Jenna
Den API-Schlüssel habe
am 20.08.2018 - 07:22 Uhr
Den API-Schlüssel habe ich.
Ich habe aber keine Kontodaten hinterlegt und damit gelten vielleicht noch mal andere Bestimmungen, als das Guthaben von 200€.
Mir ist das echt zu heiß.
Man muss da sehr genau untersuchen, was wo passiert:
Im Inhaltstyp kann man beim Geocoder-Feld angeben, mit was man das Geocoding machen möchte.
Da verwende ich OpenStreetMap.
In der Umkreissuche verwende ich das Geolocation-Modul, weil ich in Drupal nur bei diesem ein Proximity-Feld sehe.
In D7 verwende ich dafür das Geocoder-Modul auch im der View-Filter.
Und im Geolocation-Filter kann man für Geocoding nur Google auswählen.
Ich habe das Modul, auf das sui verlinkt hat noch nicht so wirklich gründlich angesehen.
Aber ich denke, man könnte das ganz gut anpassen, damit es auch mit OpenSource funktioniert.
Man müsste Geolocation Proximity-Feld auf fixe Werte stellen.
Dann erwartet es Koordinaten zum Eingeben.
Damit funktioniert es auch gut.
Und dann könnte man im Modul diese Felder auf unsichtbar stellen und stttdessen Felder für PLZ Ort angeben und das Geocoding mit einer OpenSource-Lösung bewerkstelligen.
Soweit die Theorie, die ich mir überlege.
Wenn ich mal wieder Zeit habe, probiere ich das so aus.
Im konkreten Projekt wird jetzt aus Budget-Gründen erst mal auf die Umkreissuche verzichtet und mit einer Suche nach PLZ (erste Ziffern) und Land angefangen.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Inzwischen habe ich einen
am 13.09.2018 - 07:51 Uhr
Inzwischen habe ich einen ganz guten Erfolg mit dem Modul
better_proximity_search
http://www.elbsenfmedia.de/blog/umkreissuche-drupal-8-erstellen
Ich habe die dort im Controller verwendete Schnittstelle mit API key auf Google durch diese hier ersetzt:
https://nominatim.openstreetmap.org/search/".$user_location."?format=json&addressdetails=1&limit=1&polygon_svg=1";
Dann noch ein paar kleine Anpassungen an meine View und das ganze läuft.
Muss allerdings noch besser getestet werden, bislang sind nur drei Datensätze in der Daba.
Und ich werde mir auch noch die anderen OpenSource Geocoding Schnittstellen genau ansehen und auch das Kleingedruckte lesen.
Die funktionieren eigentlich alle so, dass der Hahn zugedreht wird, wenn man zu häufig zugreift.
Ob das allerdings nur passiert, wenn besagter chinesischer Bot zugreift oder auch bei normalen guter Besucher-Zugriffen, das muss ich noch in Erfahrung bringen.
Wichtig war ja vor allem mal, dass es überhaupt funktioniert.
Das macht das Modul durch Hinzufügen der Felder für Ortseingabe statt Koordinaten.
Letztere werden einfach verborgen mit geführt und über die Schnittstelle befüllt.
Bleiben noch die übrigen Proleme mit Mehrfach Funden (Neustadt).
Dazu gab es ja mal MapZone, das leider eingestellt wurde.
Man muss vermutlich noch Eingabefelder für PLZ und Land hinzufügen, um eindeutige Koordinaten zu erhalten.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hallo, gibts hier
am 11.05.2021 - 13:31 Uhr
Hallo,
gibts hier mittlerweile eine bessere/fertige Lösung, oder muss man da noch basteln?
Viele Grüße
jjjj
Die gute Nachricht für alle,
am 21.03.2022 - 13:35 Uhr
Die gute Nachricht für alle, die eine Umkreissuche machen möchten:
Unter Drupal 9 mit geolocation 8.x-3.7 funktioniert die jetzt auch ohne zusätzliches Modul.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de