Import von POIs / Doppelte POIs überspringen
Moin!
Beim Import („Hinzufügen“) von POIs aus GPX-Dateien kann man „Doppelte POIs überspringen“ wählen. Dazu habe ich folgende Fragen bzw. Anmerkungen:
1. Ich vermute, zwei POIs gelten als identisch, wenn sowohl Name als auch Koordinaten übereinstimmen. Ist das so?
2. Wenn ein zu importierender POI bereits in der Datenbank vorhanden ist würde ich erwarten, dass der zu importierende POI ignoriert wird und der POI in der DB unverändert bleibt. Das ist aber nicht so: der POI in der DB erhält ein Update und damit die Werte des zu importierenden POI. Das betrifft sowohl TYPE und CATEGORY aber auch andere Attribute wie COMMENT. Ist das wirklich so gewollt?
3. Im Import-Dialog kann man auch HASHTAGS angeben. Hier würde ich erwarten, dass bei einem bereits bestehenden POI die neuen HASHTAGs ergänzt werden. Tatsächlich werden die HASHTAGs aber ersetzt (die bestehenden HASHTAGs werden entfernt). Das ist aus meiner Sicht ein Fehler.
Beste Grüße,
Martin
Zwei POIs gelten als "Identisch" wenn Name und Location "weitestgehend" übereinstimmen. Das Problem bei der Location ist, dass der Datentyp von Latitude und Longitude "double" ist. Also ein Fließkommazahl mit beliebig vielen Stellen hinter dem Komma. Je mehr Nachkommastellen eine Location hat, die über Latitude und Longitude beschrieben wird, umso exakter ist ihre Position definiert. Aus diesem Grund kann man zwei Locations nicht direkt miteinander vergleichen, weil es je nach Anzahl der Nachkommastellen winzige Abweichungen geben kann. In der Praxis können sie nur wenige Millimeter sein, aber damit sind zwei Locations dann doch verschieden, auch wenn es eben "weitestgehend" identisch wirken.
In der Implementierung zum Vergleich von Geo-Locations wird daher immer der Abstand zweier Locations ermittelt. Ist dieser beispielsweise geringer als 1 Meter, wird die Location als "weitestgehend identisch" erkannt.
Stammen POIs aus unterschiedlichen Quellen oder wurden mehrfach hin und her konvertiert, kann es Unterschiede bei der Anzahl der Nachkommastellen geben. Je nachdem wie groß diese sind, ist es möglich, dass zwei POIs nicht als identisch erkannt werden, obwohl sie es eigentlich sind. Dies lässt sich kaum vermeiden und es ist immer möglich, dass ein POIs "durch das Raster schlüpft".
Die maximale Distanz zweier identischer POIs wurde in vielen Testläufen empirisch ermittelt und im Code hart verdrahtet.
Werden zwei POIs als identisch erkannt, sollten der vorhandene POIs nicht verändert werden. Ich werde es anschauen und mit Version 6.0.3 ggf. überarbeiten.