Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Geokodierung/Reverse Geocoding mit Karten nach Orten

Eingetragen von zwerg (736)
am 26.10.2015 - 11:59 Uhr in
  • Module
  • Drupal 7.x oder neuer

Hallo,

seit ein paar Tagen versuche ich mich an einer Problematik, die schon öfter angerissen wurde aber scheinbar noch nicht gelöst werden konnte. Aber erstmal von vorn.

Das Ziel: Erstellung einer Webseite, auf der Objekte der Bildenden Kunst mit ihren Standorten erfasst werden sollen. Außerdem sollen sie ihren Orten mit Verwaltungsbezirken/Stadtteilen zugeordnet werden können.

Beispiel: Pflasterbrunnen - 48.77668019716759, 9.175507745446794 - Stuttgart - Stuttgart-Mitte

Soweit kein Problem. Die Erfassung des Standorts erfolgt wie Geofield mit OpenLayers (2.x, Kartenmaterial von OSM), da Google bekanntlich irgendwann Geld haben möchte.

Problem 1: Nun stellt sich die Frage nach der möglichst automatischen Erkennung des Ortes und Stadtkreises. Hier habe ich mich an der rückwärtigen Geokodierung versucht, wie bspw. hier beschrieben, jedoch leider ohne Erfolg. Rules bringt die Fehlermeldung

Zitat:

Integrity check for the imported configuration failed. Error message: The data type of the configured argument does not match the parameter's value requirement..

. Sie besagt, dass der per reverse ermittelte Wert "adresse" nicht in das Feld "field_adresse" übertragen wird.

Leider gibt es für das Addressfield kein Map-Widget.

Problem 2: Pro Ort sollte eine Karte angezeigt werden. Daher dachte ich, dass es möglich wäre, per Location Taxomize den Ort (mit Subebene Stadtteil) in ein Vokabular zu übernehmen. Location hatte zumindest unter Drupal 6 in Verbindung mit GMap eine automatische Hierarchie der Orte pro Land angelegt. Das bekam ich unter D7 bislang nicht zum laufen.

Daher meine Fragen zu den o.g. Problemen:

  1. Wie ist es möglich, anhand von gewählten Koordinaten (auf OSM-Basis) den Ort und Stadtteil automatisch zu erkennen und bspw. in ein Vokabular zu übertragen?
  2. Wie ist es möglich, per Views (Kontextfilter) eine Karte mit OpenLayers bezogen auf die Beiträge pro Ort zu erstellen?

Über eure Hilfe wäre ich dankbar :)

‹ [gelöst]: PHP Warning im Modul Album Photos - Umstellung von Drupal 6 auf Drupal 7 bei bestehendem Projekt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,eine solche

Eingetragen von Hyp1 (1463)
am 26.10.2015 - 12:45 Uhr

Hallo,

eine solche Anforderung allein in Drupal umzusetzen halte ich für schwierig und alles andere als performant.
Zur 1. Frage:
Es gibt in Deutschland fast 30'000 Postleitzahlen, welche Du erst als nodes importieren müstest um
z.B: alle Orte in einer Region zu suchen und anzuzeigen.
Ich würde dazu die Orte(von OSM) aus Performance Gründen in einen SOLR indexieren.

Zu Deiner 2. Frage:
Da Orte mit PLZ eingetragen werden, brauchst Du ja einfach per View die PLZ Abfragen um alle Beiträge dieses Ortes zu bekommen.
Ich weise nochmal darauf hin, dass Ortsnamen nicht eindeutig sind, weshalb Du über die PLZ gehen musst.
Möchtest Du auch Orte in einem Umkreis dann geh über Lat/Long und Distance.

MfG

Robert
PS: Ich meine für DE, denn In der Schweiz gibt es nur ca. 6000 Orte, das könnte man noch so mit Drupal allein machen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,danke für deine

Eingetragen von zwerg (736)
am 26.10.2015 - 13:18 Uhr

Hallo,
danke für deine schnelle Antwort. Wegen dem Aspekt:

Hyp1 schrieb

Es gibt in Deutschland fast 30'000 Postleitzahlen, welche Du erst als nodes importieren müstest um
z.B: alle Orte in einer Region zu suchen und anzuzeigen.
Ich würde dazu die Orte(von OSM) aus Performance Gründen in einen SOLR indexieren.

möchte ich nicht vorab alle Orte indizieren. Soweit ich bisher weiß, wird sich die Anzahl der Städte auch in Grenzen halten. Daher meine Idee, das über reverse Geocoding zu realisieren. Ein Massenimport aller Orte mit Postleitzahlen halte ich auch im Hinblick auf den Zweck der Seite für ungünstig.

Hyp1 schrieb

Da Orte mit PLZ eingetragen werden, brauchst Du ja einfach per View die PLZ Abfragen um alle Beiträge dieses Ortes zu bekommen.
Ich weise nochmal darauf hin, dass Ortsnamen nicht eindeutig sind, weshalb Du über die PLZ gehen musst.
Möchtest Du auch Orte in einem Umkreis dann geh über Lat/Long und Distance.

Ich gebe dir Recht, das Ortsnamen nicht eindeutig sind. Eine Abfrage über die Postleitzahlen wäre jedoch deutlich komplexer, da diese zwar das Admin-Level 9 bzw. 10 (Bezitk bzw. Stadtteil) darstellen, jedoch müssten sie dann verkettet werden.

Die zweite Frage bezieht sich eher auf den Kontextfilter im Layer (View), da ich das bislang nicht realisieren konnte.

Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, woher bekommst Du dann

Eingetragen von Hyp1 (1463)
am 26.10.2015 - 13:44 Uhr

Hi,

woher bekommst Du dann die Bezirke/Stadtteile, die ein Benutzer auswählen soll
wenn er einen Ort einträgt?

Zitat:

Das Ziel: Erstellung einer Webseite, auf der Objekte der Bildenden Kunst mit ihren Standorten erfasst werden sollen. Außerdem sollen sie ihren Orten mit Verwaltungsbezirken/Stadtteilen zugeordnet werden können.

Die musst Du vorher ja irgendwoher bekommen, damit Sie der User auswählen kann.
Auch die Bezirke sind nicht unbedingt eindeutig, daher muss auch PLZ und Ortsname angezeigt werden.

Du möchtest wenn der User eine Stadt eingibt, alle Bezirke/Stadtteilen dieser Stadt dem User zurAuswahl geben.
Grundsätzlich hört sich das für mich nach einer Facetted Search an.
Du benötigst dafür auch alle Stadtteile/Bezirke der Städte in einer DB.

Wenn die Anzahl der Städte sich sowieso in Grenzen hält, musst Du ja auch nur die importieren, welche Du verwaltet haben möchtest
und kannst es somit ohne SOLR machen.

Grüsse

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hyp1 schriebHi,woher

Eingetragen von zwerg (736)
am 26.10.2015 - 14:34 Uhr
Hyp1 schrieb

Hi,

woher bekommst Du dann die Bezirke/Stadtteile, die ein Benutzer auswählen soll
wenn er einen Ort einträgt?

Hallo nochmal,

Bislang ist der Standort als geofield mit dem OL(OSM)-Map-Widget angelegt. Der User wählt sozusagen die Koordinaten direkt per Klick in der Karte.

Aus dieser Eingabe wollte ich per (reverse) geocoding die Stadt und den Stadtteil auslesen lassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,beim Klick auf die Karte

Eingetragen von Hyp1 (1463)
am 26.10.2015 - 15:38 Uhr

Hi,

beim Klick auf die Karte bekommst Du einen spezifischen Punkt (einen Datensatz mit lat/long plz, name).
Wenn der User hier genau klickt ist er ja schon im richtigen Bezirk/Stadtteil, gibt OSM da nicht auch diesen gleich mit?
Falls nicht musst Du die Stadtteile/Bezirke ja irgendwo auflösen.

Technisch:
Du möchtest aus diesen spezifischen Punt (Bezirk,Stadtteil) mehrere weitere Punkte(Bezirke) zum auswählen, das sind mehrere Punkte aufgelöst durch einen gegebenen Punkt.
D.H. Du benötigst auch 2 Interaktionen und 2 Queries.
User klickt auf Map-> query/hole Stadt -> query/hole Bezirke -> User wählt Bezirk

Möglichkeiten:
1. Entweder Du machst eine Umkreissuche auf den ersten Klick und holst alle Bezirke/Stadteile in der Nähe(ggf. Umkreis von 50km).
2. Du indexierst die Stadtteile/Bezirke nach PLZ der Stadt und machst dort den Query.
3. Oder du kannst aus OSM anhand einer Stadt per JS die Bezirke/Stadtteile bekommen

MfG

PS:
Zu beachten, dass Du beim speichern der Stadtteile/Bezirke nicht nur den Namen des Bezirks speichern darfst, sondern auch min. die PLZ, da auch bezirke nicht unique sind.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hatte gehofft, dass es auch

Eingetragen von zwerg (736)
am 26.10.2015 - 19:55 Uhr

Hatte gehofft, dass es auch einfacher geht. Die Orte sollen ja nur mit gespeichert werden, um nach Ihnen Filtern zu können und deren zugehörige Beiträge auf einer Karte auszugeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 3 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 6 Tagen
  • In der entsprechenden View
    vor 3 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 6 Tagen
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20456

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association