ใน osm2pgsql ตาราง planet_osm_roads บรรจุอย่างไร?


11

ฉันใช้ osm2pgsql เพื่อเติมฐานข้อมูล North America OSM จาก planet.osm

ฉันชอบความเรียบง่ายของ PostGIS schema ที่เกิดขึ้น แต่ฉันสับสนกับเนื้อหาของมันเล็กน้อย

ฉันมีสองตารางและplanet_osm_roads planet_osm_lineฉันสันนิษฐานว่า planet_osm_roads มีข้อมูลทางหลวงทั้งหมด แต่พบว่ามันมีเพียงเศษเสี้ยวของถนนในบางประเภทของ 'ทางหลวง'

ตัวอย่างเช่น planet_osm_line มีมากกว่า 12,000,000 บรรทัดด้วยค่า 'ทางหลวง' ของ 'ที่อยู่อาศัย' อย่างไรก็ตาม planet_osm_roads มีเพียง 2,000 โดยการเปรียบเทียบทั้งสองตารางมีคุณสมบัติ 'มอเตอร์เวย์' จำนวนเท่ากัน ดูข้อมูลฉันไม่สามารถบอกได้ว่าทำไมคุณสมบัติบางอย่างจึงอยู่ในตารางเดียว แต่ไม่ใช่คุณสมบัติอื่น

ฉันต้องการดูกฎที่ osm2pgsql ใช้เพื่อกำหนดคุณสมบัติของสายตรงลงในแต่ละตาราง

ฉันพยายามมองผ่านซอร์สโค้ด osm2pgsql เพื่อแสดงให้เห็นถึงความลึกลับ แต่จนถึงตอนนี้ฉันไม่พบสิ่งที่ฉันตามมา

คำแนะนำใด ๆ ยินดีมาก

คำตอบ:


9
  • planet_osm_line: มีวิธีการนำเข้าทั้งหมด
  • planet_osm_point: มีโหนดที่นำเข้าทั้งหมดที่มีแท็ก
  • planet_osm_polygon: มีรูปหลายเหลี่ยมที่นำเข้าทั้งหมด ดูเหมือนว่าความสัมพันธ์จะได้รับการแก้ไขสำหรับสิ่งนั้น
  • planet_osm_roads: มีชุดย่อยplanet_osm_lineที่เหมาะสมสำหรับการแสดงผลที่ระดับการซูมต่ำ planet_osm_lineมีองค์ประกอบมากเกินไปที่จะแสดงบนแผนที่ภาพรวม

ใช้ osm_line

สำหรับตัวอย่างที่ดีเยี่ยมชม - http://www.opencyclemap.org/?zoom=5&lat=39.98469&lon=-99.18887&layers=B00ซึ่งแสดงเส้นทาง / วิธีการประสานสี

แหล่งที่มา http://wiki.openstreetmap.org/wiki/Osm2pgsql/schema#Tables_Created


4

planet_osm_roads มีเพียงวิธีที่ใช้สำหรับการแสดงระดับการซูมต่ำเช่นมอเตอร์เวย์แม่น้ำ ฯลฯ มันไม่ได้มีรายละเอียดเช่นถนนที่อยู่อาศัยลำธารและคุณสมบัติอื่น ๆ ที่แสดงผลตามปกติเมื่อซูมสูงเท่านั้น

คำนิยามการแปลงแท็ก C เริ่มต้นของสิ่งที่จะเพิ่มในตารางถนนคือtagtransform.cpp

หากคุณต้องการที่จะปรับแต่งนี้คุณอาจจะดีที่สุดออกเขียนแท็กหลัวการแปลง ตัวอย่างเช่นคุณสามารถดูstyle.luaตัวอย่างการแปลงแท็ก lua

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