รับ Shapefile ของแม่น้ำจาก OpenStreetMap?


11

ฉันไม่ต้องการดาวน์โหลดแผนที่ทั้งหมดของพื้นที่ ฉันแค่ต้องการให้แม่น้ำและแหล่งน้ำอื่น ๆ อยู่ในพื้นที่ที่มีรูปทรงเพื่อที่ฉันจะสามารถใช้พวกมันใน QGIS ฉันลองใช้ geofabrik แต่มันให้ทั้งแผนที่และเต็มไปทั่วประเทศในขณะที่ฉันต้องการข้อมูลของเมือง ตอนนี้ฉันกำลังลอง JOSM จะอัปเดตคุณเมื่อมันจะทำงาน


พื้นที่ที่น่าสนใจคืออะไร?
Mapperz

1
แม่น้ำ Earth Earth อาจเป็นแหล่งที่ดีกว่าnaturalearthdata.com/downloads/10m-physical-vectors/ …
Mapperz

น่าเสียดายที่ Natural Earth ไม่ได้มีข้อมูลของอินเดีย
user30783

นี่คือพื้นที่ที่ฉันต้องการแหล่งน้ำทั้งหมด
user30783

คำตอบ:


24

ใช้Overpass Turbo API !

ครั้งแรกผมจะไปopenstreetmap.org ,

คุณสามารถ

1) ค้นหาสถานที่ที่คุณต้องการ ฉันเลือก "แพลตต์ใต้" ซึ่งไหลผ่านเดนเวอร์ สิ่งนี้ให้ฟิลด์และแท็กที่ใช้โดย OSM เพื่อจัดเก็บข้อมูล:

ป้อนคำอธิบายรูปภาพที่นี่

2) ระบุแท็กและค่าของคุณสมบัติที่คุณใช้

  1. ซูมเข้าไปในแผนที่จนสุด
  2. คลิกที่ไอคอนเลเยอร์ทางด้านขวา (กระดาษสามแผ่น)
  3. คลิกที่รายการเมนูสุดท้าย ( Map dataหรือสิ่งที่คล้ายกันในภาษาของคุณ)
  4. คุณสมบัติต่างๆบนแผนที่เปลี่ยนเป็นสีน้ำเงิน (ตรวจสอบให้แน่ใจว่าคุณซูมเข้าไปดูไกลพอ
  5. คลิกที่คุณสมบัติที่คุณต้องการ
  6. แท็กและค่าปรากฏที่ด้านซ้ายของหน้าจอและคุณสามารถดำเนินการด้านล่าง ...

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นไปที่หน้า Overpass Turbo จากนั้นคลิก Wizard

การใช้ข้อมูลค่าชื่อคือ South Platte River และค่าwaterwayเป็นแม่น้ำดังนั้นคุณสามารถสร้างแบบสอบถามเช่นนี้:

name="South Platte River" and waterway=river

จากนั้นคลิก "สร้างและเรียกใช้แบบสอบถาม"

ป้อนคำอธิบายรูปภาพที่นี่

แบบสอบถามจะทำงานและผลลัพธ์จะปรากฏบนแผนที่:

ป้อนคำอธิบายรูปภาพที่นี่

ถัดไปคลิกตัวเลือก "ส่งออก":

ฉันชอบตัวเลือก geoJSON

คลิก "บันทึก"

เปิดไฟล์ใน QGIS และออกไป!

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถ 'บันทึกเป็น' เพื่อบันทึกเป็นเลเยอร์เวกเตอร์ชนิดใหม่ ...

ในกรณีของคุณคุณสามารถใช้waterway=riverแบบสอบถามเพื่อรับแม่น้ำทั้งหมดในพื้นที่ที่คุณอยู่หลังจากนั้นและคุณสามารถวาดกล่องตัวเลือกแบบแมนนวลเพื่อ จำกัด ขอบเขตทางภูมิศาสตร์

ป้อนคำอธิบายรูปภาพที่นี่

@underdark แสดงให้ฉันเห็นสิ่งนี้


ขอบคุณสำหรับความพยายามของคุณ แต่ฉันยังไม่สามารถติดตามคุณได้ ฉันต้องการแหล่งน้ำในบริเวณนี้ ฉันควรเขียนอะไรในเว็บเพจเทอร์โบแบบโอเวอร์
user30783

ฉันเพิ่งปรับปรุงคำตอบข้างต้น: ใน overpass API ใช้เครื่องมือค้นหาเล็กน้อยเพื่อค้นหา Haldwani, อินเดีย จากนั้นใช้ 'คู่มือเลือก bbox' เพื่อวาดรอบพื้นที่ที่คุณต้องการจากนั้นใช้ตัวช่วยสร้างเพื่อเรียกใช้แบบสอบถาม = waterway River ... คุณอาจปรับแต่งมันเพื่อค้นหาคุณสมบัติอื่น ๆ โดยใช้หน้า OSM ที่ฉันได้กล่าวไว้ข้างต้นแล้วสร้างพวกเขา ลงในแบบสอบถามบนสะพานลอย
DPSSpatial

ขอบคุณมาก. แต่ฉันยังมีปัญหาอยู่ 1 ข้อ มันเลือกแม่น้ำเท่านั้น ฉันต้องการทะเลสาบด้วย
user30783

ยกตัวอย่างทะเลสาบให้คุณหลังจาก ... ชื่อ ...
DPSSpatial

1
ตกลง. ฉันจะลองปลั๊กอิน osm แล้ว ขอบคุณที่สละเวลา. มันมีประโยชน์มาก ..
user30783

6

ปลั๊กอิน QuickOSMใหม่สำหรับ QGISให้ GUI ที่ดีในการใช้ Overpass API คุณสามารถระบุคู่คีย์ - ค่าที่คุณต้องการและมันยังมีวิธีที่ใช้งานง่ายในการกรองตามที่ตั้ง: ไม่ว่าจะเป็นกล่องขอบหรือแม้เพียงแค่ระบุชื่อภูมิภาคเช่น "ออสเตรีย" สำหรับคุณสมบัติภายในเส้นขอบออสเตรีย


4

คุณสามารถกรองข้อมูล OSM ของคุณด้วย GDAL ได้ด้วยการโยงกล่องและตามแอตทริบิวต์และบันทึกผลลัพธ์ลงในรูปแบบเวกเตอร์ใด ๆ ที่ GDAL สนับสนุนโดยตรง ติดตั้ง GDAL เวอร์ชั่น 1.10 หรือสูงกว่าและอ่านหน้าคู่มือของโปรแกรมควบคุม OSM http://www.gdal.org/drv_osm.htmlและ ogr2ogr http://gdal.org/ogr2ogr.html ภารกิจนี้ที่มีแม่น้ำและทะเลสาบสามารถทำได้ด้วยการตั้งค่าเริ่มต้น แต่บ่อยครั้งที่จำเป็นต้องแก้ไขไฟล์ osmconf.ini ก่อน

สามารถพบแม่น้ำได้จากข้อมูล OSM โดยแท็ก "waterway = river" และ GDAL บันทึกไว้ในเลเยอร์ "เส้น" ทะเลสาบที่คุณพบโดย "natural = water" และพวกเขาไปที่เลเยอร์ "multipolygons" หากเป้าหมายของคุณคือการสร้างไฟล์รูปร่างคุณต้องบันทึกแม่น้ำและทะเลสาบไปยังไฟล์ต่าง ๆ เพราะเส้นและรูปหลายเหลี่ยมไม่สามารถบันทึกลงในไฟล์รูปร่างเดียวกันได้

ตัวอย่างด้านล่างใช้ไฟล์ india-latest.osm.pbf จาก geofabrik คำสั่งพื้นฐานที่จะใช้:

ogr2ogr -f "ESRI Shapefile" -spat 76 22 77 23 -sql "select * from lines where waterway='river'" rivers.shp india-latest.osm.pbf --config ogr_interleaved_reading yes

ogr2ogr -f "ESRI Shapefile" -spat 76 22 77 23 -sql "select * from multipolygons where natural='water'" lakes.shp india-latest.osm.pbf --config ogr_interleaved_reading yes

วาง BBOX ของคุณเองลงในพารามิเตอร์ -spat ใน EPSG: 4326 หน่วย

Ogr2ogr มีความยืดหยุ่นและมีตัวเลือกมากมาย อ่านหน้าคู่มืออย่างระมัดระวัง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.