अंत में, मैं अपने पोस्टगिस डेटाबेस के साथ जियोकोड और रिवर्स जियोकोड करने का तरीका समझता हूं। मैंने एक संग्रहीत प्रक्रिया बनाई जो ज्यामिति प्रकारों को खोजती है जो एक बिंदु के पास हैं। यह संग्रहित प्रक्रिया निकटतम बिंदुओं को प्राप्त करने के लिए दूरी फ़ंक्शन का उपयोग करती है। उसके बाद, मैंने एक RESTful API बनाया है जो रिवर्स जियोकोडिंग अनुरोधों को हल करने के लिए इस संग्रहीत प्रक्रिया को कॉल करता है।
गलत होने पर मुझे सही करें, लेकिन मैं समझ गया हूं कि नोवांटिम प्रोजेक्ट उन डेटाबेस के लिए एक एपीआई बनाता है जिन्हें ओएसएम से आयात किया गया है। इसलिए आपको रिवर्स जियोकोडिंग और जियोकोडिंग के लिए कोई संग्रहीत प्रक्रिया नहीं बनानी होगी। इसके अलावा, आपको वेब के माध्यम से अनुरोधों को हल करने के लिए कोई वेबसर्विस बनाने की आवश्यकता नहीं है।
आशा है कि यह किसी की मदद करता है।
CREATE OR REPLACE FUNCTION reverse_geocode (lat double precision, lon double precision)
RETURNS text AS
$BODY$
declare point geometry; rec record; geocode text;
begin
point := geomfromtext('POINT('||lat||' '||lon||')', 4326);
select name, distance(way, point) as dist
into rec from mapserverdb_point
order by dist asc limit 1;
geocode := rec.name;
return geocode;
end;
$BODY$
LANGUAGE plpgsql;