GeoNames Feeds Import
am 30.09.2014 - 15:47 Uhr in
Hallo zusammen,
ich habe folgendes Anliegen bzw. Stand.
Ich möchte international per GeoNames Database CSV alle Städte, dazugehörigen Bundesländer, Länder samt Postleitzahlen importieren. Das funktioniert mit dem Feeds, Feeds Tamper, Entity Reference, Field Validation Modul momentan teilweise.
Das Problem liegt darin, dass GeoNames teilweise auf verschiedene CSV Dateien zurückgreift.
Nehmen wir als kleineres Beispiel Deutschland:
http://download.geonames.org/export/dump/DE.zip
Bundesländer und Städte sind hier in einer Datei. Sie unterscheiden sich aber in den Werten der Spalte Admin Code 3 und Feature Code. Feature Code enthält einfach einen Wert wie ADM1 = Bundesland PPLA4 = Stadt, welchen mit dem Feeds Tamper Keyword Filter filtern kann, damit nicht auch Militärbasen importiert werden.
Städte haben hier einen Admin Code 3 beispielsweise mit Wert "1055", welcher zu den Postleitzahlen passt.
http://download.geonames.org/export/zip/
Nehmen wir als Ort Timmendorfer Strand mit der Postleitzahl 23669 so hat dieser Eintrag ebenfalls den Code 1055.
Da es aber nun zwei getrennte Dateien sind, muss ich zweimal mit getrennten Feeds Profilen importieren. Also erst Städte, dann hinterher Postleitzahlen als Update. Die Felder sind bereits bei Drupal angelegt. Leider kann ich bei den Postleitzahlen nicht mit Unique IDs arbeiten, da eine Postleitzahl ja bekanntlich auch mehreren Ortsnamen/Orten zugeordnet sein kann.
Ich müsste also irgendwie mit Feeds so hinbekommen, dass er beim Import der Postleitzahlen diesen Code abgleicht und dann die Postleitzahl in das dafür vorgesehene Feld importiert, aber auch nur wenn dieser Code vorhanden ist.
Das Weitere Problem ist, dass ebenfalls bei den Bundesländern ebenfalls zur Verknüpfung von Stadt und Bundesland eine Abgleich des Admin Code 1 notwenig ist. Timmendorfer Strand hat hier den Admin Code 1 Wert "10". Wert 10 steht richtigerweise für das Bundesland "Schleswig-Holstein".
Außerdem denke ich, ist es am besten in folgender Reihenfolge zu importieren:
- Länder
- Bundesländer
- Städte
- Postleitzahlen
- Sprachen i18n (liegen in der http://download.geonames.org/export/dump/alternateNames.zip)
Ich habe manuell ein Land mit ISO Ländernamen "DE" erstellt und per Feeds Entity reference Funktion verknüpft. Das funktioniert soweit, aber halt nur wenn die das Land vorher schon angelegt wurde, aber das wäre nicht das Problem, wenn ich die Länder vorher importiere.
Hat das einer schon mal gemacht und hinbekommen bzw. kann dabei helfen?
Viele Grüße
Alexander
Anhang | Größe |
---|---|
Feeds City Import | 208.82 KB |
Nodes types | 67.73 KB |
Nodes | 50.14 KB |
Node view city | 130.72 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Vielleicht über das
am 22.10.2014 - 17:03 Uhr
Vielleicht über das GMap-Modul? Das liefert sämtliche Länder dieser Erde komplett mit...
Geht leider nicht, weil ich
am 23.10.2014 - 11:15 Uhr
Geht leider nicht, weil ich GeoNames unbedingt benötige, aber ich habe das soweit schon hinbekommen, aber trotzdem gibt es noch kritisches Problem. Wenn ich eine 1.3 GB CSV mit Feeds + Feeds Tamper importiere und zwar als Test ganz einfach mit nur 2 Feldern, dann importiert er mir nicht alle Items. Ich habe die max_execution_time in der php.ini schon auf den Wert 3000 hochgeschraubt sowie das PHP Limit auf 256M.
Der Managed Server von Mittwald ist mit 16 GB RAM, SSD usw. mehr als stark genug. Es gibt eigenartigerweise auch von Feeds und Drupal selbst keine Error Meldung. Wenn ich eine der kleinen CSV Dateien verwende, funktioniert es. Ich habe auch in der settings.php das Importlimit von Feeds von 50 auf 2000 gebracht, aber auch ohne Erfolg.
Auch die Cron im Hintergrundlösung brachte keinen Erfolg. Es wird immer nur eine gewisse Menge importiert.
Wahrscheinlich sind das zu
am 23.10.2014 - 13:47 Uhr
Wahrscheinlich sind das zu viele Daten. Vielleicht kannst du ja die Datensätze von GMap als Import nutzen?