เบื้องต้นกับ Openlayers
ในการพัฒนาโปรแกรมบริการด้านแผนที่ผ่านเว็บนั้น ถ้าเราต้องการนำข้อมูลแผนที่จากหลายๆแหล่ง เช่น googlemap , bing , yahoo มาเป็นพื้นหลังของแผนที่เรา เราสามารถใช้โปรแกรม Openlayers ในการพัฒนาต่อยอดเพื่อเพิ่มความสามารถของโปรแกรมเราได้ ซึ่งในโปรแกรม Openlayers นั้นจะมีตัวอย่างค่อนข้างจะครบถ้วน ทั้งจากการเรียกข้อมูล googlemap มาเป็นพื้นหลังหรือข้อมูลแผนที่อื่นๆ และการกำหนดตำแหน่งบนแผนที่ ซึ่งผู้พัฒนาสามารถเพิ่มความสามารถของโปรแกรมได้ตามที่ต้องการ ในที่นี้จะแสดงตัวอย่างเบื้องต้นสำหรับการเรียกข้อมูลแผนที่ googlemap มาแสดง โดยสามารถดูได้จาก http://www.openlayers.org ในการแสดงข้อมูลภาพแผนที่ของ Openlayers นั้นเราสามารถกำหนดการแสดงผลแบบ tile หรือ untile ได้ โดยกำหนดไว้ใน parameter ในการเรียกข้อมูลแผนที่มาแสดง ในการแสดงข้อมูลภาพที่เป็น tile นั้น โดยมาตราฐานใน Openlayers จะกำหนดการแสดงภาพไว้ค่อยข้างจะเยอะ ทำให้การแสดงภาพแผนที่อาจจะช้า เราอาจจะปรับการแสดงภาพแผนที่ โดยกำหนดใน layer/grid.js เพื่อให้การคำนวณในการดึงภาพมาแสดงน้อยลงได้ ในส่วนของ buffer โดยการกำหนดให้เป็น 1 ซึ่งค่ามาตาฐานจะกำหนดไว้ที่ 2 เมื่อกำหนดแล้วลองเรียกใช้งานโปรแกรมใหม่ จะทำให้การดึงรูปน้อยลง และในส่วนของไฟล์ Openlayers.js นั้นจะมีการ include ไฟล์ค่อยข้างจะเยอะเกินความจำเป็นที่เราต้องการใช้งาน เราอาจจะปรับในส่วนของไฟล์ที่เราไม่จำเป็นต้องใช้งานออกจากไฟล์นี้ เพื่อให้ระบบทำงานได้รวดเร็วยิ่งขึ้น โดยในที่นี่ผู้เขียนได้ทดลองในการลบไฟล์ออกจำนวนหนึ่งดังนี้
"OpenLayers/Tile/WFS.js",
"OpenLayers/Layer/VirtualEarth.js",
"OpenLayers/Layer/Yahoo.js",
"OpenLayers/Layer/MapGuide.js",
"OpenLayers/Layer/MultiMap.js",
"OpenLayers/Layer/WorldWind.js",
"OpenLayers/Layer/ArcGIS93Rest.js",
"OpenLayers/Layer/ArcIMS.js",
"OpenLayers/Layer/GeoRSS.js",
"OpenLayers/Layer/XYZ.js",
"OpenLayers/Layer/TMS.js",
"OpenLayers/Popup/Anchored.js",
"OpenLayers/Popup/AnchoredBubble.js",
"OpenLayers/Popup/Framed.js",
"OpenLayers/Popup/FramedCloud.js",
"OpenLayers/Feature/WFS.js",
"OpenLayers/Handler/RegularPolygon.js",
"OpenLayers/Control/Permalink.js",
"OpenLayers/Control/Snapping.js",
"OpenLayers/Strategy.js",
"OpenLayers/Strategy/Fixed.js",
"OpenLayers/Strategy/Cluster.js",
"OpenLayers/Strategy/Paging.js",
"OpenLayers/Strategy/BBOX.js",
"OpenLayers/Strategy/Save.js",
"OpenLayers/Protocol/SQL.js",
"OpenLayers/Protocol/SQL/Gears.js",
"OpenLayers/Filter.js",
"OpenLayers/Filter/FeatureId.js",
"OpenLayers/Filter/Logical.js",
"OpenLayers/Filter/Comparison.js",
"OpenLayers/Filter/Spatial.js",
"OpenLayers/Format/ArcXML.js",
"OpenLayers/Format/ArcXML/Features.js",
"OpenLayers/Format/GML.js",
"OpenLayers/Format/GML/Base.js",
"OpenLayers/Format/GML/v2.js",
"OpenLayers/Format/GML/v3.js",
"OpenLayers/Format/KML.js",
"OpenLayers/Format/GeoRSS.js",
"OpenLayers/Format/WFS.js",
"OpenLayers/Format/WFSCapabilities.js",
"OpenLayers/Format/WFSCapabilities/v1.js",
"OpenLayers/Format/WFSCapabilities/v1_0_0.js",
"OpenLayers/Format/WFSCapabilities/v1_1_0.js",
"OpenLayers/Format/WFSDescribeFeatureType.js",
"OpenLayers/Format/WMSDescribeLayer.js",
"OpenLayers/Format/WMSDescribeLayer/v1_1.js",
"OpenLayers/Format/OSM.js",
"OpenLayers/Format/GPX.js",
"OpenLayers/Format/Filter.js",
"OpenLayers/Format/Filter/v1.js",
"OpenLayers/Format/Filter/v1_0_0.js",
"OpenLayers/Format/Filter/v1_1_0.js",
"OpenLayers/Format/SLD.js",
"OpenLayers/Format/SLD/v1.js",
"OpenLayers/Format/SLD/v1_0_0.js",
"OpenLayers/Format/SLD/v1.js",
"OpenLayers/Format/WFST.js",
"OpenLayers/Format/WFST/v1.js",
"OpenLayers/Format/WFST/v1_0_0.js",
"OpenLayers/Format/WFST/v1_1_0.js",
"OpenLayers/Format/JSON.js",
"OpenLayers/Format/GeoJSON.js",
"OpenLayers/Format/WMC.js",
"OpenLayers/Format/WMC/v1.js",
"OpenLayers/Format/WMC/v1_0_0.js",
"OpenLayers/Format/WMC/v1_1_0.js",
"OpenLayers/Layer/WFS.js",
"OpenLayers/Control/MouseToolbar.js",
"OpenLayers/Control/NavToolbar.js",
"OpenLayers/Control/EditingToolbar.js",
ซึ่งไม่มีความจำเป็นในการใช้งานทำให้ระบบทำงานได้เร็วยิ่งขึ้น
"OpenLayers/Tile/WFS.js",
"OpenLayers/Layer/VirtualEarth.js",
"OpenLayers/Layer/Yahoo.js",
"OpenLayers/Layer/MapGuide.js",
"OpenLayers/Layer/MultiMap.js",
"OpenLayers/Layer/WorldWind.js",
"OpenLayers/Layer/ArcGIS93Rest.js",
"OpenLayers/Layer/ArcIMS.js",
"OpenLayers/Layer/GeoRSS.js",
"OpenLayers/Layer/XYZ.js",
"OpenLayers/Layer/TMS.js",
"OpenLayers/Popup/Anchored.js",
"OpenLayers/Popup/AnchoredBubble.js",
"OpenLayers/Popup/Framed.js",
"OpenLayers/Popup/FramedCloud.js",
"OpenLayers/Feature/WFS.js",
"OpenLayers/Handler/RegularPolygon.js",
"OpenLayers/Control/Permalink.js",
"OpenLayers/Control/Snapping.js",
"OpenLayers/Strategy.js",
"OpenLayers/Strategy/Fixed.js",
"OpenLayers/Strategy/Cluster.js",
"OpenLayers/Strategy/Paging.js",
"OpenLayers/Strategy/BBOX.js",
"OpenLayers/Strategy/Save.js",
"OpenLayers/Protocol/SQL.js",
"OpenLayers/Protocol/SQL/Gears.js",
"OpenLayers/Filter.js",
"OpenLayers/Filter/FeatureId.js",
"OpenLayers/Filter/Logical.js",
"OpenLayers/Filter/Comparison.js",
"OpenLayers/Filter/Spatial.js",
"OpenLayers/Format/ArcXML.js",
"OpenLayers/Format/ArcXML/Features.js",
"OpenLayers/Format/GML.js",
"OpenLayers/Format/GML/Base.js",
"OpenLayers/Format/GML/v2.js",
"OpenLayers/Format/GML/v3.js",
"OpenLayers/Format/KML.js",
"OpenLayers/Format/GeoRSS.js",
"OpenLayers/Format/WFS.js",
"OpenLayers/Format/WFSCapabilities.js",
"OpenLayers/Format/WFSCapabilities/v1.js",
"OpenLayers/Format/WFSCapabilities/v1_0_0.js",
"OpenLayers/Format/WFSCapabilities/v1_1_0.js",
"OpenLayers/Format/WFSDescribeFeatureType.js",
"OpenLayers/Format/WMSDescribeLayer.js",
"OpenLayers/Format/WMSDescribeLayer/v1_1.js",
"OpenLayers/Format/OSM.js",
"OpenLayers/Format/GPX.js",
"OpenLayers/Format/Filter.js",
"OpenLayers/Format/Filter/v1.js",
"OpenLayers/Format/Filter/v1_0_0.js",
"OpenLayers/Format/Filter/v1_1_0.js",
"OpenLayers/Format/SLD.js",
"OpenLayers/Format/SLD/v1.js",
"OpenLayers/Format/SLD/v1_0_0.js",
"OpenLayers/Format/SLD/v1.js",
"OpenLayers/Format/WFST.js",
"OpenLayers/Format/WFST/v1.js",
"OpenLayers/Format/WFST/v1_0_0.js",
"OpenLayers/Format/WFST/v1_1_0.js",
"OpenLayers/Format/JSON.js",
"OpenLayers/Format/GeoJSON.js",
"OpenLayers/Format/WMC.js",
"OpenLayers/Format/WMC/v1.js",
"OpenLayers/Format/WMC/v1_0_0.js",
"OpenLayers/Format/WMC/v1_1_0.js",
"OpenLayers/Layer/WFS.js",
"OpenLayers/Control/MouseToolbar.js",
"OpenLayers/Control/NavToolbar.js",
"OpenLayers/Control/EditingToolbar.js",
ซึ่งไม่มีความจำเป็นในการใช้งานทำให้ระบบทำงานได้เร็วยิ่งขึ้น
ความคิดเห็น
แสดงความคิดเห็น