PostGIS เป็นส่วนขยายเชิงพื้นที่สำหรับฐานข้อมูล PostgreSQL object-relational ซึ่งเพิ่มการสนับสนุน geographic objects ที่อนุญาตให้รันโลเคชันคิวรีใน SQL ด้วยส่วนขยาย PostGIS PostgreSQL สามารถใช้เป็นฐานข้อมูลเชิงพื้นที่ฝั่งแบ็คเอนด์สำหรับ GIS
ในทางกลับกัน GeoServer เป็นเซิร์ฟเวอร์ Java ซอฟต์แวร์ แบบโอเพนซอร์สที่ใช้สำหรับสร้าง แบ่งปันและจัดการข้อมูลเชิงพื้นที่ การใช้ GeoServer มาตรฐานเปิดจะเผยแพร่ข้อมูลจากแหล่งข้อมูลเชิงพื้นที่ที่สำคัญมาดูวิธีขยายฐานข้อมูล PostgreSQL ด้วย PostGIS และ deploy GeoServer เป็น Env Ruk-Com เพื่อทำงานกับข้อมูลภูมิสารสนเทศที่แชร์อยู่
การสร้าง Environment
ก่อนอื่นคุณต้องสร้าง Env เพื่อเป็นพื้นฐานสำหรับแอปพลิเคชันของคุณ
1. ลงชื่อเข้าใช้บัญชี Ruk-Com ของคุณคลิกที่ปุ่ม Create environment
2. เลือก Tomcat 7 เป็นแอปพลิเคชันเซิร์ฟเวอร์ของคุณและ PostgreSQL 9 เป็นฐานข้อมูลที่คุณต้องการใช้ ตั้งค่าลิมิตทรัพยากรสำหรับแต่ละโหนดและป้อนชื่อ Env (เช่น geoserver) ยืนยันการสร้าง Env
3.ภายในไม่กี่นาที Env ของคุณจะปรากฏบนแดชบอร์ด
การ Deploy GeoServer
ตอนนี้เราสามารถดำเนินการ deploy ซอฟต์แวร์ GeoServer ได้แล้ว
1.เปิด link # GeoServer official web-site และดาวน์โหลดเวอร์ชันล่าสุดที่มีความเสถียรที่ archive บนเว็บ
2.เมื่อการดาวน์โหลดเสร็จสิ้นให้แตก archive ไฟล์ที่คุณมี
3. กลับไปที่แดชบอร์ด Ruk-Com และอัปโหลดไฟล์ geoserver.war ซึ่งอยู่ในโฟลเดอร์ที่มีเนื้อหา archive ไฟล์ที่แยกออกมา
4. สุดท้ายให้กดปุ่ม Deploy to.. ถัดจากไฟล์ .war นี้ในลิสแพ็กเกจและเลือกสร้างก่อน Env เพื่อ deploy แอป GeoServer
การกำหนดค่า PostGIS
ในขั้นตอนนี้เราจะเพิ่มส่วนขยาย PostGIS สำหรับฐานข้อมูล PostgreSQL ของเรา
1. เปิด phpPgAdmin สำหรับฐานข้อมูล PostgreSQL ใน Env ของคุณโดยกดปุ่ม Open in browser ที่อยู่ข้าง ๆ
2. เข้าสู่ระบบด้วยข้อมูลรับรอง PostgreSQL ที่คุณได้รับทางอีเมลหลังจากการสร้าง Env
3. ตอนนี้คุณต้องสร้างฐานข้อมูลใหม่ สำหรับการกดปุ่ม Create database ในหน้าต่างที่เปิดอยู่
4. กรอกแบบฟอร์ม:
- ระบุชื่อสำหรับฐานข้อมูลใหม่ (ในกรณีของเราคือ nyc)
- เลือกการเข้ารหัส UTF8 จากลิสรายการ
- กรอกข้อมูลในช่องอื่น ๆ หากจำเป็น
กดปุ่ม Create
5. เลือกฐานข้อมูลที่สร้างขึ้นใหม่ในลิสที่ขยายออกมาบนพาเนลด้านซ้ายมือและไปที่แท็บ SQL
6. ป้อน SQL คิวรี่ต่อไปนี้และดำเนินการ:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
โดยที่แอททริบิวท์คือว:
- postgis: สำหรับการเปิดใช้งาน PostGIS (รวมถึง raster)
- postgis_topology: สำหรับการเปิดใช้งานโทโพโลยี
- fuzzystrmatch: จำเป็นต้องมีการจับคู่แบบ fuzzy สำหรับ Tiger
- postgis_tiger_geocoder: สำหรับ US Tiger Geocoder ที่เปิดใช้งาน
หมายเหตุ : อย่าลืมติ๊กเลือกในบรรทัด Paginate results ใต้แบบฟอร์มเพื่อไม่ให้เกิดข้อผิดพลาดใด ๆ
เสร็จเรียบร้อยแล้ว! การเปิดใช้งานส่วนขยาย PostGIS และให้สามารถใช้งานได้
การนำเข้าชุดข้อมูล
ตอนนี้เรามานำเข้า PostGIS dump ของชุดข้อมูลไปยังฐานข้อมูล PostgreSQL ตัวอย่างเช่นเราจะใช้ link # nyc_buildings.zip กับชุดข้อมูลอาคารจากนิวยอร์กซิตี้
1. ดาวน์โหลดแพ็คเกจ link # nyc_buildings.zip และแตกไฟล์ คุณจะได้รับไฟล์ nyc_buildings.sql
2. ป้อน phpPgAdmin สำหรับ PostgreSQL ด้วยข้อมูลประจำตัวของคุณและไปที่แท็บ SQL สำหรับฐานข้อมูลอีกครั้งด้วยการกดขยาย PostGIS ออกมา (ในกรณีของเราคือฐานข้อมูล nyc)
3. เรียกดูชุดข้อมูลที่แยกออกมา (เช่น nyc_buildings.sql) บนคอมพิวเตอร์ของคุณและอัปโหลดเป็นสคริปต์ SQL
4. ติ๊กช่อง Paginate results ที่อยู่ใต้ใต้แบบฟอร์มออกและ Execute สคริปต์
เชื่อมต่อ GeoServer กับฐานข้อมูล
ตอนนี้เราต้องเชื่อมต่อแอปพลิเคชัน GeoServer กับฐานข้อมูล PostgreSQL เราจะสร้างที่เก็บข้อมูลสำหรับฐานข้อมูล nyc
1. ไปที่แดชบอร์ด Ruk-Com และเปิด GeoServer Env (กด Open in browser ที่อยู่ข้าง ๆ)
2. ในแท็บ opened browser ให้เข้าสู่ระบบด้วยข้อมูลรับรอง GeoServer ที่เป็นค่าเริ่มต้น (admin/geoserver)
3. จากนั้นไปที่ Data > Stores ในพาเนลด้านซ้ายมือแล้วคลิก Add new Store
4. ในหน้าต่าง New data source ให้กดตัวเลือก PostGIS – PostGIS Database
5. ในหน้าต่าง New Vector Data Sourceที่ปรากฏให้กรอกข้อมูลในฟิลด์ต่อไปนี้:
- Basic Store Info
เลือก cite ในส่วนของ Workspace จากลิสรายการป้อน Data Source Name (ตัวอย่างเช่น nyc_buildings) และคำอธิบายสั้น ๆ ตรง Description
- PostGIS database Connection Parameters
host – โฮสต์ฐานข้อมูลสามารถนำมาจากปุ่ม Info
database – ชื่อฐานข้อมูลที่คุณสร้างด้วยส่วนขยาย PostGIS (ในกรณีของเราคือ nyc)
user และ passwd– ข้อมูลรับรองสำหรับ PostgreSQL ที่คุณได้รับขณะสร้างสภาพ Env
ช่องอื่น ๆ จะเป็นค่าเริ่มต้นสามารถปล่อยให้เป็นค่าตามนั้นได้
นอกจากนี้ให้เลื่อนลงเล็กน้อยและตรวจสอบว่ามีการติ๊กที่ Validate connections หรือไม่ จากนั้นกด Save
The connection is established and as a result you can see the uploaded to PostreSQL nyc_buildings in the list of application resources.
เผยแพร่ และ พรีวิว ชุดข้อมูล
ในที่สุดเราต้องกำหนดค่าอีกเล็กน้อยเพื่อ publish ชุดข้อมูล (เช่น nyc_buildings) และเพื่อให้ geographical object ที่ต้องการพร้อมใช้งาน
1. New Vector Data Source (บันทึกไว้ในขั้นตอนก่อนหน้า) จะปรากฏในลิส New Layers
กด Publish ถัดจากเลเยอร์ที่เพิ่ม (เช่น nyc_buildings)
2. ในหน้าต่าง Edit Layer ที่เปิดอยู่ให้ป้อน Title และ Abstract สำหรับทรัพยากรของคุณ
3. เลื่อนลงมาเล็กน้อยแล้วกดปุ่ม Compute from data และ Compute from native bounds ในบล็อกการกำหนดค่า Bounding Boxes
4. จากนั้นเปลี่ยนไปที่แท็บ Publishing และตรวจสอบให้แน่ใจว่าได้เลือกเลเยอร์สไตล์ polygon เป็นค่าเริ่มต้น
5. สุดท้ายเลื่อนลงไปที่ด้านล่างของหน้าแล้วกดปุ่ม Save เลเยอร์ถูก publish แล้ว
6. ตอนนี้คุณสามารถไปที่เมนู Data> Layer Preview จะเห็นลิสของเลเยอร์ทั้งหมดที่กำหนดค่าไว้ใน GeoServer พร้อมตัวอย่างที่มีให้ในรูปแบบต่าง ๆ สำหรับแต่ละเลเยอร์
7. กดปุ่ม OpenLayers ถัดจากเลเยอร์ของคุณ (ในกรณีของเราคือ NYC buildings)
หมายเหตุ : คุณสามารถเลือกโหมดการแสดงตัวอย่างอื่น ๆ หรือดาวน์โหลดทรัพยากรของคุณในรูปแบบต่าง ๆ โดยใช้ตัวเลือกในลิสถัดจากเลเยอร์ที่ต้องการ
8. ดังนั้นคุณจะเห็น geographical object ที่ต้องการ ในกรณีของเรานี่คือแผนที่แบบ interactive ของอาคารในเมืองนิวยอร์ก
คุณสามารถใช้แผนที่แสดงตัวอย่างเพื่อซูมและเลื่อนไปรอบ ๆ ตลอดจนแสดงแอททริบิวท์ของฟีเจอร์ต่าง ๆ ขอให้สนุกไปกับมัน