_____ปีนี้มีซอฟต์แวร์ใหม่ๆหลายตัวที่มีการ update รุ่นใหม่ๆออกมาให้ผู้ใช้ได้ใช้งาน ข้อดีคือการปรับปรุงคุณภาพและแก้ไข ข้อผิดพลาดต่างๆให้ดียิ่งขึ้น ซอฟต์แวร์หลายๆตัวที่ผมใช้ทำงานและเป็น Opensource ก็มีการปรับปรุงด้วยเช่นกันแสดงถึงการพัฒนาอย่างต่อเนื่องและการมีกลุ่มผู้พัฒนาที่เข้มแข็ง หลายคนที่เลือกใช้ซอฟต์แวร์ Opensource ต้องตระหนักถึงเรื่องความต่อเนื่องในการพัฒนาของซอฟต์แวร์เป็นอันดับแรก เพราะหมายถึงการจะมีนักพัฒนาช่วยบำรุงรักษาซอฟต์แวร์ GIS ของเรา แต่แน่นอนว่านักพัฒนาหรือผู้ใช้ต้อง alert เพื่อปรับตัวเรียนรู้สิ่งใหม่ๆตลอดเวลา

_____ดังที่ผมเคยได้เขียนถึง Google Map V3 ที่ออกมาล่าสุดที่เน้นความรวดเร็วของการทำงานของ Javascript API และลดเรื่องขนาดไฟล์และตัดเรื่องรหัส API Key ออกไป รวมถึงการพัฒนาให้ API ทำงานได้ทั้ง desktop และ mobile platform ทำให้ตอนนี้นักพัฒนาหลายที่ใช้ GoogleMap API ต่างก็มี feed back ที่ดีดังจะเห็นได้ตาม forum ต่างๆที่กว่าถึง แน่นอนว่าปัจจุบันการพัฒนาระบบ Web GIS หนีไม่พ้นที่ต้องเชื่อมต่อระบบกับ Google Map เพื่อดึงข้อมูลจาก Google Data Service ทั้ง POI ,ถนน,ภาพถ่ายดาวเทียม เมื่อ Google Map API ทำการ Upgrade ทำให้ซอฟต์แวร์ Web GIS จึงต้อง Update ตามไปด้วย วันนี้ผมมีขั้นตอนการใช้ Openlayers กับ Google Map V3 มาแนะนำ โดยการเขียนโปรแกรมบน OL API ในส่วนการเชื่อมต่อ กับ Google Map Class มีการเปลี่ยนแปลงไปดังนี้

1. การ include ตัว Google Map API tag บน HTML จะใช้รูปแบบดังนี้

<script src=”http://maps.google.com/maps/api/js?sensor=false”></script

2. ส่วนการเขียนโปรแกรมสำหรับ layer ของ Google Map API ก็จะเปลี่ยนจากเดิมไปเป็นดัง code ข้างล่างนี้

   map = new OpenLayers.Map('map');
   var gphy = new OpenLayers.Layer.Google(
        "Google Physical",
        {type: google.maps.MapTypeId.TERRAIN}
    );
    var gmap = new OpenLayers.Layer.Google(
        "Google Streets", // the default
        {numZoomLevels: 20}
    );
    var ghyb = new OpenLayers.Layer.Google(
        "Google Hybrid",
        {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
    );
    var gsat = new OpenLayers.Layer.Google(
        "Google Satellite",
        {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22}
    );

    map.addLayers([gphy, gmap, ghyb, gsat]);

3. อีกประเด็นที่สำคัญยิ่งและพบปัญหาบ่อยคือระบบพิกัด Spatial Reference system(SRS) เนื่องจาก Google Map V3 ใช้ EPSG: 900913 คือ Mercator projection ดังนั้นการกำหนดระบบพิกัดต้องใส่ให้ถูก ถ้าไม่มันใจท่านสามารถใช้ Projection Transform Class สำหรับแปลงจากระบบปกติของเมืองไทย EPSG:4326 ไปเป็น EPSG:900913 ได้ดังนี้ครับ

var mypoint = new OpenLayers.LonLat(100.23, 18.9).transform(
        new OpenLayers.Projection("EPSG:4326"),
        map.getProjectionObject()
    )

ภาพแสดง Openlayer กับ Google Map API V 3

การทดสอบประสิทธิภาพการรับส่งข้อมูลระหว่าง Server

______สรปคือไม่ยาก สั้นและกระฉับกว่าการใช้ Openlayer.Layer เดิมที่ต้องระบบ type และ พารามิเตอร์ ยังไงก็ไปทดลองดูกันได้ performance ค่อนข้างจะดีกว่าของ Google Map V2 และที่สำคัญอนาคต Openlayers จะออก V3 คิดว่าน่าจะมีการปรับปรุง API ใหม่คงจะมีอะไรอีกหลายอย่างที่รองรับและเข้ากับ Google Map V3 อีกแน่นอนครับ