Hallo,
ich arbeite gerade eine kleine GeoIntegration für unser CRM-System aus. Nun kann ich schon Adressen selektieren und mir mit der freundlichen Unterstützung von OpenStreetMap angucken.
Ich habe hier schon mal im Forum gesucht und gefunden, aber ich leider sind die meisten Downloadlinks mittlerweile hinfällig. Ulrich hat zum Beispiel seine Homepage aktualisiert und die Links auf seine Seite laufen bei mir ins Leere.
Nun zum Versuchsaufbau.
Ich habe in meinem CRM-System die Koordinaten zu jeder erfassten Addresse. Diese sind in Longitude und Latitude angegeben. Die Entfernung zwischen 2 Punkten konnte ich nach einigen Kramen in meinen Kopf wieder nachvollziehen (Zumindest meine ich dass es so geht). Die Tatsache, dass Luftlinie nicht direkt Strassenentfernung ist mal abgesehen.
Nun versuche Ich hier schon ne Weile eine SQL-Abfrage in eine @Formula zu pressen, was mir aber nicht wirklich gelingt.
Hier einmal die SQL- Abfrage.
SELECT
zc_zip,
zc_location_name,
ACOS(
SIN(RADIANS(zc_lat)) * SIN(RADIANS(49.1))
+ COS(RADIANS(zc_lat)) * COS(RADIANS(49.1)) * COS(RADIANS(zc_lon)
- RADIANS(10.75))
) * 6380 AS distance
FROM zip_coordinates
WHERE ACOS(
SIN(RADIANS(zc_lat)) * SIN(RADIANS(49.1))
+ COS(RADIANS(zc_lat)) * COS(RADIANS(49.1)) * COS(RADIANS(zc_lon)
- RADIANS(10.75))
) * 6380 < 10 AND zc_id <> 9024
ORDER BY distance;
Den Interessanten Teil habe ich mal hevor gehoben.
Nun zu meinem transferierten Code.
Dim strQuery As String
Dim collSearch As NotesDocumentCollection
'strQuery = {@ACos( @Sin(} + FLDLATI + {/(180/@Pi)) * @Sin((} + strLati + {/ (180/@Pi)))+ @Cos(} +FLDLATI + {/(180/@Pi)) * @Cos(} + strLati + {/(180/@Pi)) * @Cos( (} + FLDLONG + {/ (180/@Pi)) - (} + strLongi + {/ (180/@Pi))) * 6380 < 200)}
strQuery = {@ACos( @Sin(} + FLDLATI + {*(180/@Pi)) * @Sin((} + strLati + {* (180/@Pi)))+ @Cos(} +FLDLATI + {*(180/@Pi)) * @Cos(} + strLati + {*(180/@Pi)) * @Cos( (} + FLDLONG + {* (180/@Pi)) - (} + strLongi + {* (180/@Pi))) * 6380 < 200)}
Set collSearch = Dbthis.Search(strQuery,Nothing,0)
Leider gibt es in den @Functions keine @Radian() oder dergleichen. Daher der diletantische Versuch RADIANS gegen
oder
zu ersetzen.
Naja wer hätte es gedacht die Formel findet in beiden Fällen keine Dokumente zurück. Daher die Frage. Könnt ihr aushelfen? Hat das schon jemand mal umgesetzt ?