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 8 Stunden 25 Minuten
vor 8 Stunden 50 Minuten
vor 11 Stunden 33 Minuten
vor 14 Stunden 32 Minuten
vor 16 Stunden 5 Minuten
vor 17 Stunden 54 Sekunden
vor 17 Stunden 1 Minute
vor 1 Tag 18 Stunden
vor 2 Tagen 18 Stunden
vor 3 Tagen 13 Stunden