นี่คือคำสั่ง osm2pgsql ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
osm2pgsql - ข้อมูล Openstreetmap เป็นตัวแปลง PostgreSQL
เรื่องย่อ
osm2pgsql [ตัวเลือก] ดาวเคราะห์.osm
osm2pgsql [ตัวเลือก] ดาวเคราะห์.osm.{gz,bz2,pbf}
osm2pgsql [ตัวเลือก] ไฟล์1.osm ไฟล์2.osm ไฟล์3.osm
DESCRIPTION
หน้าคู่มือนี้จัดทำเอกสารโดยสังเขปเกี่ยวกับ osm2pgsql คำสั่ง
osm2pgsql นำเข้าข้อมูลจากไฟล์ OSM ไปยังฐานข้อมูล PostgreSQL ที่เหมาะสมสำหรับการใช้งานโดย
Mapnik renderer หรือ Nominatim geocoder
สามารถดาวน์โหลดสแน็ปช็อตดาวเคราะห์ OSM ได้จาก http://planet.openstreetmap.org/. บางส่วน
ไฟล์ดาวเคราะห์ ("สารสกัด") สำหรับประเทศต่างๆ ดู
http://wiki.openstreetmap.org/wiki/Planet.osm.
สารสกัดในรูปแบบ PBF (ProtoBufBinary) ก็มีให้เช่นกันจาก
http://download.geofabrik.de/osm/.
เมื่อใช้งานในโหมด "บาง" (และบนฐานข้อมูลที่สร้างในโหมด "บาง"!) osm2pgsql สามารถ
ยังประมวลผลไฟล์การเปลี่ยนแปลง OSM (ไฟล์ osc) ดังนั้นจึงทำให้ฐานข้อมูลที่มีอยู่สูงถึง
วันที่
OPTIONS
โปรแกรมเหล่านี้ใช้ไวยากรณ์บรรทัดคำสั่งของ GNU ตามปกติ โดยมีตัวเลือกแบบยาวขึ้นต้นด้วย
สองขีดกลาง (`-') สรุปตัวเลือกอยู่ด้านล่าง
-a|--ผนวก
เพิ่มไฟล์ OSM ลงในฐานข้อมูลโดยไม่ต้องลบข้อมูลที่มีอยู่
-b|--บีบ็อกซ์
ใช้ตัวกรองกล่องขอบเขตกับข้อมูลที่นำเข้า ต้องระบุเป็น:
minlon,minlat,maxlon,maxlat เช่น --บีบ็อกซ์ -0.5,51.25,0.5,51.75
-c|--สร้าง
ลบข้อมูลที่มีอยู่ออกจากฐานข้อมูล นี่คือค่าเริ่มต้น if --ผนวก ไม่ใช่
ระบุไว้
-d|--ชื่อฐานข้อมูล
ชื่อของฐานข้อมูล PostgreSQL ที่จะเชื่อมต่อ (ค่าเริ่มต้น: gis)
-i|--tablespace-ดัชนี tablespacename
เก็บดัชนีทั้งหมดไว้ในพื้นที่ตาราง PostgreSQL แยกต่างหากที่ตั้งชื่อโดยพารามิเตอร์นี้
ซึ่งช่วยให้สามารถจัดเก็บดัชนีบนที่จัดเก็บข้อมูลที่เร็วขึ้นเช่น SSD
--tablespace-main-data ชื่อพื้นที่ตาราง
จัดเก็บตารางข้อมูล (ไม่บาง) ในพื้นที่ตารางที่กำหนด
--tablespace-main-ดัชนี tablespacename
เก็บดัชนีของตารางหลัก (ไม่บาง) ในพื้นที่ตารางที่กำหนด
--tablespace-slim-data tablespacename
จัดเก็บตารางโหมดเพรียวบางในพื้นที่ตารางที่กำหนด
--tablespace-slim-index tablespacename
เก็บดัชนีของตารางโหมดเพรียวบางในพื้นที่ตารางที่กำหนด
-l|--ลาดลอง
เก็บข้อมูลเป็นองศาละติจูดและลองจิจูด
-m|--เมอร์ค
จัดเก็บข้อมูลใน Mercator ทรงกลมที่เหมาะสม (ค่าเริ่มต้น)
-E|--โปรเจกต์นัม
ใช้การฉายภาพ EPSG:num
-u|--utf8-ฆ่าเชื้อ
ซ่อมแซมข้อมูลอินพุต UTF-8 ที่ไม่ถูกต้อง (มีอยู่ในการถ่ายโอนข้อมูลดาวเคราะห์ก่อนเดือนสิงหาคม 2007) เพิ่ม
ค่าใช้จ่ายประมาณ 10%
-p|--คำนำหน้า prefix_string
คำนำหน้าชื่อตาราง (ค่าเริ่มต้น: planet_osm)
-r|--อินพุต-อ่านรูปแบบ
เลือกเครื่องอ่านรูปแบบอินพุต มีให้เลือก libxml2 (ค่าเริ่มต้น) สำหรับ OSM XML
ฟอร์แมตไฟล์, o5ม สำหรับไฟล์รูปแบบ o5m และ พีบีเอฟ สำหรับรูปแบบไบนารี OSM PBF (อาจไม่ใช่
สามารถใช้ได้กับทุกแพลตฟอร์ม)
-s|--ผอม
เก็บข้อมูลชั่วคราวในฐานข้อมูล หากไม่มีโหมดนี้ ข้อมูลชั่วคราวทั้งหมดจะเป็น
เก็บไว้ใน RAM และถ้าคุณมีไม่เพียงพอ การนำเข้าจะไม่ทำงานสำเร็จ
ด้วยโหมดเพรียวบาง คุณควรจะสามารถนำเข้าข้อมูลได้แม้ในระบบที่มีข้อจำกัด
RAM แม้ว่าคุณจะไม่มี RAM เพียงพอที่จะแคชโหนดทั้งหมดเป็นอย่างน้อย
เวลาในการนำเข้าข้อมูลจะเพิ่มขึ้นอย่างมาก
--หยด
วางตารางโหมดเพรียวบางจากฐานข้อมูลเมื่อการนำเข้าเสร็จสิ้น นี้สามารถ
ลดขนาดของฐานข้อมูลลงอย่างมาก เนื่องจากตารางโหมดเพรียวบางโดยทั่วไปคือ
ขนาดเท่ากันถ้าไม่ใหญ่กว่าโต๊ะหลักเล็กน้อย มันไม่ได้อย่างไรก็ตาม
ลดการใช้ดิสก์สูงสุดในระหว่างการนำเข้า ยังเพิ่มขึ้นได้อีก
ความเร็วในการนำเข้าเนื่องจากไม่จำเป็นต้องสร้างดัชนีสำหรับตารางโหมดเพรียวบางซึ่ง
(ขึ้นอยู่กับฮาร์ดแวร์) สามารถลดเวลาในการนำเข้าได้เกือบครึ่งหนึ่ง ตารางโหมดสลิมอย่างไรก็ตามมี
ให้คงอยู่ถ้าคุณต้องการที่จะสามารถปรับปรุงฐานข้อมูลของคุณเป็นตารางเหล่านี้
จำเป็นสำหรับการประมวลผลแบบต่าง ๆ
-S|--สไตล์ /path/to/style
ตำแหน่งของไฟล์สไตล์ osm2pgsql นี่ระบุว่าแท็กใดจากข้อมูลที่ได้รับ
นำเข้าสู่คอลัมน์ฐานข้อมูลและแท็กใดหลุด ค่าเริ่มต้นเป็น
/usr/share/osm2pgsql/default.style
-C|--หมายเลขแคช
สำหรับโหมดบางเท่านั้น: ใช้ RAM มากถึง num มากสำหรับการแคชโหนด การให้
osm2pgsql แคชเพียงพอที่จะจัดเก็บโหนดที่นำเข้าทั้งหมดโดยทั่วไปจะเพิ่มขึ้นอย่างมาก
ความเร็วของการนำเข้า โหนดแคชแต่ละโหนดต้องการแคช 8 ไบต์ บวกประมาณ 10%
- ค่าโสหุ้ย 30% สำหรับ OSM full planet นำเข้าในปัจจุบันที่มีโหนดประมาณ 3 พันล้านโหนด a
ค่าที่ดีจะเป็น 27000 ถ้าคุณมีแรมเพียงพอ หากคุณมี RAM ไม่เพียงพอก็
มีแนวโน้มว่าจะเป็นประโยชน์ในการให้ osm2pgsql ใกล้เคียงกับ RAM ที่มีอยู่เต็มจำนวน
ค่าเริ่มต้นเป็น 800
--แคชกลยุทธ์กลยุทธ์
มีโหมดต่างๆ มากมายที่ osm2pgsql สามารถจัดระเบียบโหนดได้
แคชในแรม สิ่งเหล่านี้ได้รับการปรับให้เหมาะสมสำหรับสมมติฐานที่แตกต่างกันของข้อมูลและ
ทรัพยากรฮาร์ดแวร์ที่มีอยู่ กลยุทธ์ที่มีอยู่ในปัจจุบันคือ หนาแน่น, หั่นเป็นชิ้น,
กระจัดกระจาย และ การปรับให้เหมาะสม. หนาแน่น ถือว่าหมายเลขรหัสโหนดถูกบรรจุอย่างหนาแน่น
นั่นคือมีเพียงไม่กี่ ID ในช่วงที่ขาดหายไป / ถูกลบ สำหรับสารสกัดจากดาวเคราะห์นี่คือ
มักจะไม่เป็นเช่นนั้น ทำให้แคชไม่มีประสิทธิภาพและสิ้นเปลือง RAM อย่างมาก กระจัดกระจาย
ถือว่า node IDs ในข้อมูลไม่ได้ถูกแพ็กหนาแน่น ทำให้แคชเพิ่มขึ้นอย่างมาก
ประสิทธิภาพในกรณีเหล่านี้ หาก ID โหนดถูกแพ็กหนาแน่นเหมือนใน full
กลยุทธ์นี้มีค่าใช้จ่ายที่สูงขึ้นสำหรับการทำดัชนีแคช การปรับให้เหมาะสม ใช้
ทั้งกลยุทธ์ที่หนาแน่นและเบาบางสำหรับช่วงต่างๆ ของพื้นที่ ID บนบล็อก
โดยพื้นฐานบล็อกจะพยายามตรวจสอบว่าการจัดเก็บบล็อกของ .มีประสิทธิภาพมากกว่าหรือไม่
รหัสในโหมดเบาบางหรือหนาแน่น นี่เป็นค่าเริ่มต้นและควรใช้โดยทั่วไป
-U|--ชื่อผู้ใช้
ชื่อผู้ใช้ Postgresql
-W|--รหัสผ่าน
บังคับพรอมต์รหัสผ่าน
-H|--ชื่อโฮสต์โฮสต์
ชื่อโฮสต์เซิร์ฟเวอร์ฐานข้อมูลหรือตำแหน่งซ็อกเก็ต
-P|--พอร์ตหมายเลข
พอร์ตเซิร์ฟเวอร์ฐานข้อมูล
-e|--ไทล์หมดอายุ [min_zoom-]max-zoom
สร้างรายการหมดอายุของไทล์
-o|--หมดอายุเอาต์พุต /path/to/expire.list
ชื่อไฟล์เอาต์พุตสำหรับรายการไทล์ที่หมดอายุ
-o|--เอาท์พุท
ระบุเอาต์พุตแบ็คเอนด์หรือสคีมาฐานข้อมูลที่จะใช้ ปัจจุบัน osm2pgsql
สนับสนุน pgsql, ราชกิจจานุเบกษา และ โมฆะ. pgsql เป็นเอาต์พุตแบ็คเอนด์ / schema . เริ่มต้น
และได้รับการปรับให้เหมาะสมสำหรับการเรนเดอร์ด้วย Mapnik ราชกิจจานุเบกษา เป็นสคีมา db ที่ปรับให้เหมาะสมสำหรับ
geocoding และใช้โดย Nominatim โมฆะ ไม่ได้เขียนผลลัพธ์ใด ๆ และเป็นเพียง
มีประโยชน์สำหรับการทดสอบ
-x|--คุณสมบัติพิเศษ
รวมแอตทริบิวต์สำหรับแต่ละวัตถุในฐานข้อมูล ซึ่งรวมถึงชื่อผู้ใช้
รหัสผู้ใช้ การประทับเวลา และเวอร์ชัน หมายเหตุ: ตัวเลือกนี้ต้องมีรายการเพิ่มเติมด้วย
ในไฟล์สไตล์ของคุณ
-k|--hstore
เพิ่มแท็กที่ไม่มีคอลัมน์ในคอลัมน์ hstore (คีย์/ค่า) เพิ่มเติมใน PostgreSQL
ตาราง
-j|--hstore-ทั้งหมด
เพิ่มแท็กทั้งหมดลงในคอลัมน์ hstore (คีย์/ค่า) เพิ่มเติมในตาราง PostgreSQL
-z|--hstore-คอลัมน์ key_name
เพิ่มคอลัมน์ hstore (คีย์/ค่า) เพิ่มเติมที่มีแท็กทั้งหมดที่ขึ้นต้นด้วย
สตริงที่ระบุ เช่น --hstore-column "name:" จะสร้างคอลัมน์ hstore พิเศษ
ที่มีชื่อทั้งหมด:xx แท็ก
--hstore-match-only
เก็บเฉพาะวัตถุที่มีค่าในคอลัมน์ใดคอลัมน์หนึ่งเท่านั้น (การดำเนินการปกติด้วย
--hstore คือการเก็บวัตถุทั้งหมดไว้)
--hstore-เพิ่มดัชนี
สร้างดัชนีสำหรับคอลัมน์ hstore ระหว่างการนำเข้า
-G|--ละลาย-เรขาคณิต
โดยปกติ osm2pgsql จะแบ่งรูปทรงหลายส่วนออกเป็นแถวฐานข้อมูลแยกกันต่อ
ส่วนหนึ่ง. ดังนั้น OSM id เดียวจึงสามารถมีหลายแถวได้ ด้วยตัวเลือกนี้
PostgreSQL จะสร้างคุณสมบัติหลายเรขาคณิตในตาราง PostgreSQL แทน
-K|--รักษาแนวชายฝั่ง
เก็บข้อมูลชายฝั่งแทนที่จะกรองออก โดยค่าเริ่มต้น natural=coastline
ข้อมูลที่ติดแท็กจะถูกยกเลิกตามสมมติฐานที่ว่าชายฝั่งทะเลหลังการประมวลผล
ไฟล์รูปร่างตัวตรวจสอบจะถูกใช้
--exclude-invalid-รูปหลายเหลี่ยม
ข้อมูล OpenStreetMap ถูกกำหนดในแง่ของโหนด วิธี และความสัมพันธ์ ไม่ใช่ใน
เงื่อนไขของคุณสมบัติทางเรขาคณิตที่แท้จริง Osm2pgsql จึงพยายามสร้าง postgis
เรขาคณิตจากการแสดงข้อมูลนี้ อย่างไรก็ตามไม่ใช่ทุกวิถีทางและความสัมพันธ์
สอดคล้องกับเรขาคณิต postgis ที่ถูกต้อง (เช่น รูปหลายเหลี่ยมที่ตัดกันในตัวเอง) โดย
osm2pgsql เริ่มต้นพยายามแก้ไขรูปทรงเรขาคณิตเหล่านี้โดยอัตโนมัติโดยใช้ ST_บัฟเฟอร์(0)
รอบรูปหลายเหลี่ยมที่ไม่ถูกต้อง ด้วยตัวเลือกนี้ รูปหลายเหลี่ยมที่ไม่ถูกต้องจึงกลายเป็นเพียง
หลุดจากฐานข้อมูล
--unloged
ใช้ตารางที่ไม่ได้ล็อกของ postgresql เพื่อจัดเก็บข้อมูล สิ่งนี้ต้องใช้ PostgreSQL 9.1 หรือ
ข้างต้น. ข้อมูลที่เขียนไปยังตารางที่ไม่ได้ล็อกจะไม่ถูกเขียนไปยังการเขียนล่วงหน้าของ PostgreSQL
บันทึกซึ่งทำให้เร็วกว่าตารางธรรมดามาก อย่างไรก็ตาม พวกเขาคือ
ไม่เกิดความผิดพลาด: ตารางที่ไม่ได้ล็อกจะถูกตัดทอนโดยอัตโนมัติหลังจากเกิดความผิดพลาดหรือ
การปิดระบบที่ไม่สะอาด
--จำนวน-กระบวนการ num
ระบุจำนวนของกระบวนการคู่ขนานที่ใช้สำหรับการดำเนินการบางอย่าง ถ้าดิสก์
เร็วพอ เช่น ถ้าคุณมี SSD ก็สามารถเพิ่มความเร็วของ . ได้อย่างมาก
ขั้นตอนการ "ผ่านระหว่างรอดำเนินการ" และ "ข้ามความสัมพันธ์ที่รอดำเนินการ" บนa
เซิร์ฟเวอร์แบบมัลติคอร์
-I|--ปิดใช้งานการจัดทำดัชนีแบบขนาน
โดยค่าเริ่มต้น osm2pgsql เริ่มต้นการสร้างดัชนีบนตารางทั้งหมดแบบขนานกับ
เพิ่มประสิทธิภาพ นี่อาจเป็นข้อเสียของดิสก์ที่ช้าหรือหากคุณไม่มี
RAM เพียงพอสำหรับ PostgreSQL เพื่อดำเนินการสร้างดัชนีคู่ขนานสูงสุด 7 กระบวนการ
(เช่น เนื่องจาก maintenance_work_mem ถูกตั้งค่าไว้สูง)
--flat โหนด /path/to/nodes.cache
โหมดแบนโหนดเป็นวิธีการแยกต่างหากในการจัดเก็บข้อมูลโหนดโหมดบางบน
ดิสก์. แทนที่จะจัดเก็บข้อมูลนี้ในฐานข้อมูลหลักของ PostgreSQL สิ่งนี้
โหมดสร้างฐานข้อมูลที่กำหนดเองแยกต่างหากเพื่อเก็บข้อมูล แบบนี้
ฐานข้อมูลที่กำหนดเองมีความรู้ระดับแอปพลิเคชันเกี่ยวกับข้อมูลที่จะจัดเก็บและไม่ใช่
วัตถุประสงค์ทั่วไปก็สามารถเก็บข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น การจัดเก็บโหนด
ข้อมูลสำหรับทั้งโลกต้องการประมาณ 100GB ใน PostgreSQL ซึ่งเป็นข้อมูลเดียวกัน
ถูกเก็บไว้ใน ~ 16GB เท่านั้นโดยใช้โหมดโหนดแบบแบน นอกจากนี้ยังสามารถเพิ่มความเร็วได้
ของการใช้ไฟล์ diff ตัวเลือกนี้เปิดใช้งานโหมดโหนดแบนและระบุ
ตำแหน่งของไฟล์ฐานข้อมูล เป็นไฟล์เดียวขนาดใหญ่ > 16GB โหมดนี้เท่านั้น
แนะนำสำหรับการนำเข้าทั้งโลกเนื่องจากไม่สามารถทำงานได้ดีกับสารสกัดขนาดเล็ก
ค่าเริ่มต้นถูกปิดใช้งาน
-h|--ช่วยเหลือ
ข้อมูลช่วยเหลือ.
เพิ่ม -v เพื่อแสดงการฉายภาพที่รองรับ
-v|--ละเอียด
เอาต์พุต Verbose
ได้รับการสนับสนุน โครงการ
ลาดยาว (-l) SRS: 4326 (ไม่มี)
Mercator ทรงกลม (-m) SRS:900913 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +หน่วย=m +nadgrids=@null +no_defs +มากกว่า
EPSG-defined (-E) SRS: +init=epsg:(ตามที่ระบุในพารามิเตอร์)
ใช้ osm2pgsql ออนไลน์โดยใช้บริการ onworks.net
