পোস্টজিআইএস দিয়ে বিপরীত জিওকোডিং করার সর্বোত্তম উপায় কী?


13

পোস্টজিআইএস দিয়ে বিপরীত জিওকোডিং করার কোনও উপায় আছে কি? ওয়েবে প্রচুর তথ্য রয়েছে তবে আমি এটি পেয়েছি খুব বিভ্রান্ত ...

পোস্টজিআইএস ডেটাবেস সহ আমি নিজের পোস্টগ্রিসে ওএসএম ডেটা আমদানি করেছি। এখন আমি জিওকোডিং করতে চাই এবং আমার ডাটাবেসের সাথে জিওকোডিংকে বিপরীত করতে চাই। আমি জানি না এখানে কিছু সঞ্চিত প্রক্রিয়া আছে, বা এমন কোনও প্রকল্প আছে যা আমার সমস্যার যত্ন নিয়েছে।

আমি পরবর্তী পদক্ষেপটি করতে চাই তা হল একটি ওয়েবসার্ভিস তৈরি করা যা এই ধরণের অনুরোধগুলি পরিচালনা করতে পারে তবে এটি অন্য একটি প্রশ্ন।


বিপরীত জিওকোডিংয়ের জন্য আপনি এই সাইটে অনুসন্ধান করার সময় কয়েকটি ফলাফল রয়েছে । একটি উত্তর যে দাঁড়িয়েছে আউট এই এক যে পরিষেবাগুলি এটি প্রদান সম্পর্কে।
dassouki

আপনার প্রশ্নটি কিছুটা অস্পষ্ট। আপনার কোন বিশেষ সমস্যা হচ্ছে? অথবা জিওকোডিংকে বিপরীত করার জন্য আপনার সাধারণ পদ্ধতির সাহায্যের দরকার?
শান

আমি ইতিমধ্যে নমিনিটিম ব্যবহার করার চেষ্টা করেছি, তবে "গেজেটিয়ার" আউটপুট ব্যবহার করে আমার সমস্যা হয়েছে। আমি যখনই ওএসএম ডেটা আমদানি করি তখন এটি "সেগমেন্টেশন ফল্ট" ছুড়ে দেয়।
জোয়াকান এম

উত্তর:


14

পরিশেষে, আমি জিওকোড করার পদ্ধতি এবং আমার পোস্টজিআইএস ডাটাবেসের সাথে জিওকোড বিপরীত করার বিষয়টি বুঝতে পারি। আমি একটি সঞ্চিত পদ্ধতি তৈরি করেছি যা জ্যামিতির প্রকারগুলি খুঁজে পায় যা বিন্দুর নিকটে থাকে। এই সঞ্চিত পদ্ধতিটি নিকটস্থ পয়েন্টগুলি পেতে দূরত্ব ফাংশনটি ব্যবহার করে। এর পরে, আমি একটি 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; 

আমরা পদ্ধতিটি দেখতে পারি?
canisrufus

অবশ্যই: 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;
Joaquín এম

4

পোস্টজিআইএস ২.০ টাইগার জিওকোডারটিতে টাইগার ডেটা ব্যবহার করে একটি বিপরীত জিওকোডার রয়েছে। জিওকোডার পোস্টজিআইএস 1.5 8.4+ বা তারও বেশি জরিমানা ইনস্টল করবে।

আপনি যদি মার্কিন যুক্তরাষ্ট্রে থাকেন তবে এটি ব্যবহার করা সবচেয়ে সহজ হতে পারে যেহেতু এগুলি সমস্ত plpgsql ফাংশন হিসাবে প্যাকেজড।

http://www.postgis.org/docamentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/docamentation/manual-svn/Revers_Geocode.html


ধন্যবাদ। বিপরীত জিওকোডের জন্য আমার মার্কিন তথ্য দরকার ছিল না। পোস্টজিআইএস ডাটাবেসগুলির সাথে বিপরীত জিওকোড যেভাবে কাজ করে তা আমি এখন বুঝতে পেরেছি। অনেক ধন্যবাদ.
জোয়াকান এম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.