ฉันดาวน์โหลดฐานข้อมูล Geonames (เมือง 1,000) และเขียนโปรแกรม Ruby ขนาดเล็กเพื่อนำเข้ามาในตารางของฉัน ( geo_cities
) geog
จากนั้นผมก็เพิ่มคอลัมน์ภูมิศาสตร์ที่เรียกว่า
จากนั้นฉันแปลงหมายเลข lat / lon ทั้งหมดลงในคอลัมน์ geog โดยใช้:
update public.geo_cities set geog = st_GeogFromText('SRID=4326;POINT(' || longitude || ' ' || latitude || ')');
สิ่งที่ดูดี ตอนนี้สิ่งที่ฉันต้องการจะทำคือค้นหาเมืองทั้งหมดที่อยู่ภายใน 100 ไมล์จากปราก
ดังนั้นฉันจะได้รับปรากเช่น:
select * from geo_cities where asciiname = 'Prague' and countrycode = 'CZ';
ฉันยังคงเรียนรู้ GIS และ Postgres ดังนั้นใครบางคนสามารถช่วยฉันด้วยแบบสอบถามง่ายๆ