Tile Map Service#1

        ผมไม่สบายซะหลายวันเลยไม่ได้อัพเดตบล็อค บางท่านก็แสนดี email ไปหาว่าอยากอ่านเรื่องใหม่ให้ช่วยกลับมาเขียนหน่อย วันนี้กลับมาทั้งทีเลยอยากเขียนเรื่องที่ใช้งานบ่อยคือเรื่องเกี่ยวกับ tile-caching แนวคิดแบบนี้ไม่ใช่เรื่องใหม่ แต่กลายเป็นเรื่องจริงเมื่อ webmapping สมัยใหม่มีการนำเทคนิค tile-caching มาใช้ในการนำเสนอข้อมูล gis ผ่่่านอินเตอร์เน็ต โดยเฉพาะกลุ่มที่เป็น mush up api เช่น  Google Map/Google Earth, Virtual Earth, Multimap เป็นต้น

       Tile Cache เน้นที่ประสิทธฺภาพการแสดงผล กล่าวคือเป็นการแสดงผลข้อมูลแผนทีประเภทบิตแมปได้อย่างรวดเร็ว โดยหลักการง่ายๆก็คือการแบ่งข้อมูลออกเป็นส่วนๆแล้วส่งมาแสดงผลยังเครื่องลูกข่าย ซึ่งไฟล์แต่ละอันจะมีขนาดเล็กลดการใช้แบนวิดและเวลาในการโหลดข้อมูลจากแม่ข่ายลง ที่สำคัญซอฟท์แวร์ประมวลผลยังสามารถแคชไฟล์ที่เคยโหลดมาแล้วได้ด้วย โดยลดภาระในการที่ต้องโหลดข้อมูลซ้ำซ้อน ถ้ามองในมุมมองของผู้ให้บริการหรือ server ปลายทางการเสียเวลาในการจัดเตรียมภาพในรูปแบบโครงสร้างของ tile และ tree-level ใ นตอนแ รกเป็นการลงทุนที่คุ้มเพื่อลดโหลดในการประมวลผลข้อมูลภาพในทุกๆ request เช่นระบบ mapservice แบบเดิม ทำให้การเรียกข้อมูลแผนที่มาแสดงผลยังปลายทางก็เปรียบเสมือนกับการดาวน์โหลดภาพ แต่แน่นอนว่า client software ย่้อมต้องมีความสามารถในการจัดการกับข้อมูลแบบ tile image ด้วยเช่นกัน

       ปัจจุบันแนวคิดนี้่ค่อนข้างจะเป็นที่แพร่หลายซอฟต์แวร์ internet gis หลายเจ้ารองรับและมีฟีเจอร์นี้ รวมไปถึง oSGEO ได้มีการคิดและพัฒนาโปรโตคอลมาตรฐาน Tile Map Service Specification 1.0 (อ่านรายละเอียดจาก http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) ออกมาและมีการพยายามปรับปรุง WMS ในเวอร์ชั่นใหม่WMS-C/TMS server ให้มีโหมดการทำงานแบบ tile-caching อีกด้วย 

รูปแบบโครงสร้างของ Tile reference

3ตัวอย่างข้อมูลภาพ ortho ที่ทำการ process เพื่อจัดแบ่งเป็น tile และจัดเก็บเป็น pyramid index แล้ว

1ตัวอย่าง xml file ที่ใช้ config ข้อมูลโดยอ้างอิง Tile-Caching Specification

        ระบบพิกัดภูมิศาสตร์ที่ใช้ใน TileCache MapService ส่วนมากที่ใช้งานกันทั้งใน Google Map Google Earth หรือตัวอื่นๆไม่ใช้ Geodetic Coordinate Sytem หรือที่ีรู้จักกันในนาม EPSG 4326 แต่เป็น Mercator map projection

OSGEO:41001 PROJCS[“WGS84 / Simple Mercator”, GEOGCS[“WGS 84”, DATUM[“WGS_1984”, SPHEROID[“WGS_1984”,6378137,298.257223563]], PRIMEM[“Greenwich”,0], UNIT[“Decimal_Degree”, 0.0174532925199433]], PROJECTION[“Mercator_1SP”], PARAMETER[“central_meridian”,0], PARAMETER[“false_easting”,0], PARAMETER[“false_northing”,0], UNIT[“Meter”,1]]

        แต่ถ้าไม่คิดเรื่องความถูกต้องมากมายนัก(ยอมรับระดับเ มตร)  ท่านก็สามารถใช้ WGS84 geodetic coordinates ได้ 

      ความนี้มาลงรายละเอียดคราวๆเรื่องการปรับแต่ Server ว่าทำไม TMS ถึงได้ดีกว่า Mapserver แบบเดิม(CGI/PHP Mode) เพราะว่าเราสามารถใช้โมดูลบน Http ในการช่วยเพิ่มประสิทิภาพในการบริการข้อมูล โดยตัวหลักๆที่นิยมใช้งานกันคือ HTTP MOD_CACH ซึ่งเกี่ยวกับการเพิ่มความสามารถในการ caching ไฟล์ http://httpd.apache.org/docs/2.0/mod/mod_cache.html) และอีกตัวหนึ่งคือ Http compress ผ่าน mod_gzip http://schroepl.net/projekte/mod_gzip/config.htm)

        จริงๆเรื่องของ Tile-cahing ผมตั้งใจเขียนให้ละเอียด ดังนั้นตอนแรกขอเอาแค่แนวคิดก่อนแ ล้ว ตอนหน้าจะมาต่อเรื่องของ Software Stack และวิธีการ implement กัน

    

Advertisements

3 thoughts on “Tile Map Service#1

Add yours

  1. ผมสงสัยนิดหนึ่งครับ เนื่องจาก จะต้องสร้างภาพก่อน
    แล้ว เวลาในการสร้างภาพ นี่นาน หรือ เปล่าครับ
    พอดีผมเคย ใช้ KAMAP สร้างภาพแผนที่ดูน่ะครับ
    เสียเวลานาน มากเลย ยิ่งถ้าต้องการความละเอียดสูงๆ แล้ว
    ละก็ ข้ามเดือน เลย ไม่ทราบว่า TMS ใช้ อะไร สร้างภาพ หรือ
    ครับ เพื่อผมจะได้ ลองใช้ แล้วงานผมจะได้ งาน ขึ้น บ้างครับ
    ขอบคุณครับ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.

Up ↑

%d bloggers like this: