seiferta / eMonitor

Client-Server application with map view
Other
21 stars 14 forks source link

Hausnummern werden nicht geladen #82

Open jonny1213 opened 6 years ago

jonny1213 commented 6 years ago

Hallo zusammen, nach dem Import der Straße für den Standardort, versuche ich die Hausnummern zu laden. Leider kommt bei jeder Straße "0 Hausnummern gefunden". Wenn man dem ganzen auf der Console zu schaut kommt immer: DEBUG:emonitor.signals:send signal housenumber.osm with: {'cityid': 18L, 'position': (71, 71), 'hnumbers': 0, 'street': u'Zum Sportgebiet'} Was mich verwundert ist, dass er als cityid 18L nimmt und nicht 18.

Beim Versuch mit dem Test-Image habe ich die gleichen Probleme.

Hat sich evtl. bei OSM was geändert?

Danke VG Thomas

jonny1213 commented 6 years ago

Als Ergänzung: ich verwende als DB mysql, wenn ich das Ganze wieder auf sqllite setze werden die Hausnummer geladen und die cityid ist auch ohne das "L" . Somit scheint mir ist irgendwo ein Fehler im Code. Da ich jetzt nicht alles durchsuchen mag, wäre es gut wenn Arne kurz schauen könnte.

Danke VG Thomas

seiferta commented 6 years ago

Das 'L' hinter der Zahl steht nur für den Datentyp 'long'. Wenn dieser Typ als String ausgegeben wird, wird immer ein L hinter den eigentlichen Wert geschrieben.

Dass keine Hausnummern geladen werden, kann verschiedene Ursachen haben. Eine ist, dass das Attribut nicht korrekt in OSM definiert wurde. Für ein Objekt/Haus, also einen Kantenzug mit mehreren Knoten muss das Attribut "addr:housenumber" vergeben sein. Ich habe auch schon gesehen, dass das Objekt/Haus nicht korrekt einer Straße zugeordnet wurde.

Sind diese beiden Fälle auszuschließen?

jonny1213 commented 6 years ago

Hm, da es ja mit der sqllite funktioniert, würde ich sagen ja es ist ausgeschlossen.

Warum wird für die ID ein string ausgegeben? Und warum wird bei der sqllite Variante kein string, sondern anscheinend eine Zahl verwendet.?

jonny1213 commented 6 years ago

Hallo, ist es überhaupt sinnvoll/notwendig es in einer Mysql-DB laufen zu lassen. Da es ja anscheinen irgendwo hackt wenn es mit Mysql läuft.

seiferta commented 6 years ago

sqlite ist nicht so "streng" mit den Felddefinitionen, da kann man auch einen zu langen String in ein Feld schreiben. MySQL meckert da eher. MySQL bietet vor Allem Vorteile, wenn auch über die Oberfläche parallel gearbeitet wird, da hat sqlite hin und wieder Probleme parallele Zugriffe zu gewährleisten, nachdem es sich dabei ja eigentlich nur um eine Datei handelt.