ওপেনস্ট্রিটম্যাপ / পোস্টজিআইএস ডাটাবেসে পিওআইয়ের নিকটতম শহরটি কীভাবে খুঁজে পাবেন?


9

আমি ওএসএম ডাটাবেসে পিওআইগুলির জন্য অতিরিক্ত ডেটা সন্ধান করতে আগ্রহী।

বর্তমানে আমি সমস্ত পিওআই এর জন্য নাম + দীর্ঘ + ল্যাট পেতে নিম্নলিখিত এসকিউএলটি ব্যবহার করতে পারি

SELECT name, 
         x(transform(way, 4326)) AS lon, 
         y(transform(way, 4326)) AS lat
  FROM planet_osm_point 
  WHERE tourism='museum'
UNION
  SELECT name, 
         x(centroid(transform(way, 4326))) AS lon, 
         y(centroid(transform(way, 4326))) AS lat
  FROM planet_osm_polygon 
  WHERE tourism='museum'

আমি নিকটবর্তী শহর / শহর বা পিওআই যে শহর / শহর অবস্থিত তার নামও দেখতে চাই।


আপনার কি ইতিমধ্যে একটি বিপরীত জিওকোডিং (নাম থেকে অবস্থান) সিস্টেম সেট আপ আছে?
ব্র্যাডহার্ডস

উত্তর:


3

আমি যে উত্তরটি চেয়েছিলাম তা পুরোপুরি নয়, তবে একটি অ্যাপ্লিকেশনটিতে ব্যবহারযোগ্য N

http://nominatim.openstreetmap.org/search?q=45.8364043,24.8345179&format=xml&addressdetails=1


যদি এটি আপনার প্রশ্নের উত্তর দেয় তবে দয়া করে উত্তর হিসাবে চিহ্নিত করুন (ভোট গণনার নীচে ধূসর চেকমার্ক)।
চাদ কুপার

0

সম্পর্কিত প্রশ্ন থেকে উত্তর টানা :

খুব সহজেই ধরে নেওয়া আপনার কাছে ল্যাট / এলএনজি রয়েছে।

  1. ওএসএম ডেটা সিডে ল্যাট / এলএনজি রূপান্তর করুন
  2. ডাটাবেসে আপনার যত্ন নেওয়া সমস্ত পিওআই-এর দূরত্ব গণনা করুন।
  3. সবচেয়ে ছোট দূরত্বে সারিটি চয়ন করুন ick
  4. অতিরিক্তভাবে, আপনি আপনার অনুসন্ধানকে আগ্রহের ব্যাসার্ধের মধ্যে সীমাবদ্ধ করতে চাইতে পারেন (বলুন 5 কিলোমিটার ..)

উদাহরণস্বরূপ, আসুন আমাদের পিওআইয়ের নিকটে 5 নিকটতম পেট্রোল স্টেশনগুলি সন্ধান করি।

SELECT osm_id,
       name,
       brand,
OPERATOR,
       ST_Distance(barabara_point.way, st_transform( st_setsrid(st_makepoint(36.768676, -1.289927), 4326), 900913)) AS distance
FROM barabara_point
WHERE ST_DWithin(barabara_point.way, st_transform( st_setsrid(st_makepoint(36.768676, -1.289927), 4326), 900913), 5000)
  AND amenity = 'fuel'
ORDER BY distance;

ফলাফল সেট

-[ RECORD 1 ]--------------
osm_id   | 1334386299
name     |
brand    | Kobil
operator |
distance | 244.544617525396
-[ RECORD 2 ]--------------
osm_id   | 915386940
name     | BP
brand    |
operator |
distance | 1012.76398108684
-[ RECORD 3 ]--------------
osm_id   | 1916188670
name     | Shell
brand    |
operator |
distance | 1160.48349020106
-[ RECORD 4 ]--------------
osm_id   | 558923017
name     | Kenol
brand    |
operator |
distance | 1310.22002620899
-[ RECORD 5 ]--------------
osm_id   | 30092081
name     | Caltex
brand    |
operator |
distance | 1419.61102322244
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.