ผมไม่สบายซะหลายวันเลยไม่ได้อัพเดตบล็อค บางท่านก็แสนดี 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 กัน