Location-Module, Umkreissuche (Proximity Search), PLZ Problem
am 19.02.2009 - 11:19 Uhr in
Hallo,
ich nutze Druapl 6 mit Locations und Gmap. Habe die Module installiert und auch die Datenbank mit den PLZ gefüttert. Habe nach dieser Anleitung (http://drupal.org/node/359463) alles erledigt. Ich habe zwei Nodes mit Location-Settings, diese werden in GMap auch korrekt angezeigt. In den nodes sind Lat/Longitude gespeichert. Das Problem ist, dass eine Suche nach PLZ nicht funktioniert.
Ich habe eine View/Ansich erstellt mit einem Proximity-Filter (exposed, also einstellbar für Benutzer). Trägt man einen "Standort" im Format Latitude/Longitude ein, un wählt z.B. 200km Umkreis aus, findet er die entsprechende Node. Wählt man als Standort die Eingabe über PLZ, erhält man ein leeres Ergebnis.
Das Ergebnis mit Latitude/Longitude funktioniert und sieht im Vorschau-Modus so aus:
Textkörper:
Jop 1
Distance / Proximity: 170.24 km
Textkörper:
Jop 2
Distance / Proximity: 171.99 km
Abfrage
SELECT node.nid AS nid,
node_revisions.body AS node_revisions_body,
node_revisions.format AS node_revisions_format,
(IFNULL(ACOS(0.601630442741*COS(RADIANS(location.latitude))*(0.988022017143*COS(RADIANS(location.longitude)) + 0.154312973013*SIN(RADIANS(location.longitude))) + 0.798774567927*SIN(RADIANS(location.latitude))), 0.00000)*6364467.83762) AS location_distance
FROM node node
LEFT JOIN location_instance location_instance ON node.vid = location_instance.vid
LEFT JOIN location location ON location_instance.lid = location.lid
LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid
WHERE (location.latitude > 44.0107947979 AND location.latitude < 62.0156872649 AND location.longitude > -6.19830854786 AND location.longitude < 23.9522147979) AND ((IFNULL(ACOS(0.601630442741*COS(RADIANS(location.latitude))*(0.988022017143*COS(RADIANS(location.longitude)) + 0.154312973013*SIN(RADIANS(location.longitude))) + 0.798774567927*SIN(RADIANS(location.latitude))), 0.00000)*6364467.83762) < 1000000) AND (node.type in ('neutest'))
Die gleiche Abfrage mit Eingabe einer PLZ sieht so aus:
Abfrage
SELECT node.nid AS nid,
node_revisions.body AS node_revisions_body,
node_revisions.format AS node_revisions_format,
'Unknown' AS location_distance
FROM node node
LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid
LEFT JOIN location_instance location_instance ON node.vid = location_instance.vid
LEFT JOIN location location ON location_instance.lid = location.lid
WHERE (0) AND (node.type in ('neutest'))
und liefert ein leeres Ergebnis.
Irgendwie werden PLZ nicht in Longitude/Latitude-Werte gewandelt, oder?!
Kann mir jemand sagen, wie die PLZ Proximity-Suche klappt oder wenn es einer geschafft hat, wie es geht?!
Danke im Voraus!
Cedrix
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 13 Stunden 35 Minuten
vor 16 Stunden 11 Minuten
vor 17 Stunden 10 Minuten
vor 20 Stunden 10 Minuten
vor 20 Stunden 56 Minuten
vor 1 Tag 4 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 15 Stunden