บทความ

การกำหนด auto number สำหรับ oracle

ในการสร้างตารางข้อมูลในแต่ละฐานข้อมูลจะมีการกำหนดรายละเอียดของบางคอลัมน์ให้เป็นตัวเลขแบบให้ระบบกำหนดให้เพิ่มเองอัตโนมัติ ในส่วนของ Oracle ก็สามารถทำได้เช่นเดียวกัน โดยจะต้องดำเนินการดังนี้ เริ่มจากต้องทำการสร้าง sequence ที่ต้องการสำหรับตารางข้อมูลก่อน create sequence test_tab_seq_id minvalue 1 maxvalue 99999999 increment by 1; สร้างตารางข้อมูลและกำหนดให้มีการเรียกใช้ sequence ที่สร้างไว้ create table test_tab ( id integer not null, name varchar(50), primary key (id) ); สร้าง Trigger สำหรับให้มีการนำตัวเลขใน sequence ไปใช้งาน create or replace trigger test_tab_insert_id before insert on test_tab for each row when (new.id is null) begin select test_tab_seq_id.NEXTVAL into :new.id from dual; end; ...

การตัดภาพสำหรับแผนที่ล่วงหน้า

รูปภาพ
ในปัจจุบันในการแสดงภาพแผนที่นั้น จะเป็นการแสดงโดยการดึงรูปภาพมาแสดงแทนที่จะใช้ให้ server ทำการประมวลผลภาพแผนที่โดยการดึงข้อมูลที่เป็น vector มาแสดงโดยในบทความนี้จะกล่าวถึงโปรแกรมที่เป็นการตัดภาพล่วงหน้า โดยใช้โปรแกรมชื่อ Ka-Map ซึ่งสามารถ download ได้ที่ www.maptool.org ซึ่งเมื่อได้โปรแกรมมาแล้วสามารถนำไปวางไว้ใน MS4W (MapServer for Windows) ได้เลย เมื่อวางแล้วจะต้องทำการแก้ไข configuration ของโปรแกรม โดยไฟล์ configuration จะอยู่ที่ include/config.php ซึ่งสิ่งที่เราต้องแก้ไขคื่อ ส่วนของ mapfile ที่อ้างอิง ในตัวแปร $aszGMap โดยในสว่นของ path จะต้องกำหนดตามตำแหน่งของ mapfile ที่ต้องการ และในส่วนของ scales ก็ต้องกำหนด โดยการกำหนดนั้น ถ้าเราต้องการนำภาพที่ได้ไปทำการซ้อนทับกับภาพแผนที่ของ google จำเป็นต้องกำหนด scales ตามมาตรฐานที่กำหนดไว้ โดยมาตรส่วนที่ใช้ตามมาตรฐานมีดังนี้ 443744272.7241,221872136.3621,110936068.181,55468034.0905,27734017.0453, 13867008.5226,6933504.2613,3466752.1307,1733376.0653,866688.0327,433344.0163, 216672.0082,108336.0041,54168.002,27084.001,13542.0005,6771.0003,3...

การพิมพ์ภาพแผนที่ผ่าน MapServer แบบสวยงาม

ใน version เก่าๆของ mapserver การพิมพ์เมื่อเราส่งไปพิมพ์ที่เครื่องพิมพ์ภาพที่ได้อาจจะไม่ค่อยสวย คือ ภาพจะแตก ซึ่งถ้ายิ่งพิมพ์ขนาดกระดาษที่ใหญ่ก็ยิ่งแตกไปกันใหญ่ ใน version mapserver ตั้งแต่ version 5.6 นั้นได้เพิ่มความสามารถในการพิมพ์ภาพแผนที่ โดยเราสามารถกำหนดการพิมพ์ให้สวยงามได้ โดยถ้าต้องการพิมพ์ภาพขนาด เท่า A4 ก็จะต้องทำการคำนวณขนาดของภาพที่ให้ mapserve ทำการสร้างให้ใหญ่กว่า 4 เท่าโดยประมาณ แล้วเมื่อเวลาพิมพ์ก็กำหนดขนาดเท่ากับ A4 ที่ต้องการ ก็จะได้ภาพที่มีความละเอียดในการพิมพ์ออกทางเครื่องพิมพ์ โดยจะต้องกำหนดใน mapfile เช่น RESOLUTION 300 SIZE 1667 1250 MAXSIZE 6144 ซึ่งตรง SIZE จะต้องคำนวณโดยการนำค่า 4.1667 ไปคูณ เช่น ถ้าต้องการภาพขนาด 400*300 จะได้ 400 * 4.1667 = 1666.68 300 * 4.1667 = 1250.01 ซึ่งส่วนของ MAXSIZE ก็จำเป็นถ้าขนาดที่คำนวณได้มากกว่า 6144 ก็จะต้องเปลี่ยนขนาดของ Maxsize ด้วย โดยเราอาจจะใช้ php ในการไปกำหนดเวลาพิมพ์ก็ได้โดยใช้ php_mapscript ช่วย หรือถ้าขนาดของเราที่ต้องการพิมพ์กำหนดแน่นอนไม่เปลี่ยนแปลงก็กำหนดใน mapfile เลยก็ย่อมได้

เบื้องต้นกับ Openlayers

ในการพัฒนาโปรแกรมบริการด้านแผนที่ผ่านเว็บนั้น ถ้าเราต้องการนำข้อมูลแผนที่จากหลายๆแหล่ง เช่น googlemap , bing , yahoo มาเป็นพื้นหลังของแผนที่เรา เราสามารถใช้โปรแกรม Openlayers ในการพัฒนาต่อยอดเพื่อเพิ่มความสามารถของโปรแกรมเราได้ ซึ่งในโปรแกรม Openlayers นั้นจะมีตัวอย่างค่อนข้างจะครบถ้วน ทั้งจากการเรียกข้อมูล googlemap มาเป็นพื้นหลังหรือข้อมูลแผนที่อื่นๆ และการกำหนดตำแหน่งบนแผนที่ ซึ่งผู้พัฒนาสามารถเพิ่มความสามารถของโปรแกรมได้ตามที่ต้องการ ในที่นี้จะแสดงตัวอย่างเบื้องต้นสำหรับการเรียกข้อมูลแผนที่ googlemap มาแสดง โดยสามารถดูได้จาก http://www.openlayers.org ในการแสดงข้อมูลภาพแผนที่ของ Openlayers นั้นเราสามารถกำหนดการแสดงผลแบบ tile หรือ untile ได้ โดยกำหนดไว้ใน parameter ในการเรียกข้อมูลแผนที่มาแสดง ในการแสดงข้อมูลภาพที่เป็น tile นั้น โดยมาตราฐานใน Openlayers จะกำหนดการแสดงภาพไว้ค่อยข้างจะเยอะ ทำให้การแสดงภาพแผนที่อาจจะช้า เราอาจจะปรับการแสดงภาพแผนที่ โดยกำหนดใน layer/grid.js เพื่อให้การคำนวณในการดึงภาพมาแสดงน้อยลงได้ ในส่วนของ buffer โดยการกำหนดให้เป็น 1 ซึ่งค่ามาตาฐานจะกำหนดไว้ที่ 2 เ...

เบื้องต้นกับ MS4W

เมื่อต้องการพัฒนาโปรแกรม GIS เพื่อให้บริการผ่านเว็บ จะมีองค์ประกอบของบริการหลายๆอย่างซึ่งจะต้องติดตั้งบนเครื่องในที่นี้จะขอกล่าวถึงเฉพาะบนวินโดว์ ซึ่งบนวินโดว์นี้จะมีผู้พัฒนาไว้เพื่อให้เราใช้งานได้ง่าย โดยสามารถ download โปรแกรมมาติดตั้งได้เลย โดยสามารถใช้เป็นตัวติดตั้งแบบ setup หรือติดตั้งแบบ manual ก็ได้ โดยสามารถ download ได้ที่ http://www.maptools.org/ ซึ่งจะเป็น MS4W ซึ่งจะมีองค์ประกอบต่างที่ต้องใช้งานในการพัฒนาโปรแกรม GIS ผ่านเว็บ ซึ่งจะมีรายการดังนี้ Apache Web Server PHP PHP MapScript ที่ใช้ในการใช้งาน GIS Tools ต่างๆที่ใช้เกี่ยวกับ GIS ซึ่ง version ใหม่ ๆ จะไม่มีในส่วนของ extension ของ php ติดตามเหมือนกับ version เก่า ถ้าต้องการ library ของ php เพิ่มเติมก็สามารถ download ได้ที่ http://www.php.net ซึ่งจะเป็นส่วนของ extension ทั้งหมดของ php สามารถ copy ไปวางในส่วนของ extension ที่กำหนดได้ ในส่วนของ application ตัวอย่างในเว็บของ maptools นั้นก็จะมีตัวอย่างโปรแกรมที่พัฒนาเพื่อแสดงผลข้อมูลแผนที่ สามารถ download โปรแกรมตัวอย่างมาทดสอบดูได้ หรือจะลองทดสอบตัวอย่างในการพัฒนาเองก็ได...

การจัดการ Log ของ Apache Web Server

Log การใช้งานถือว่าเป็นสิ่งสำคัญเพื่อตรวจสอบระบบมีใครเข้ามาใช้งานบ้าง แต่จะต้องมีการดูแลอย่างสม่ำเสมอ มิเช่นนั้นจะทำให้ขนาดของพื้นที่ในเครื่องไม่เพียงพอในการจัดเก็บ log ในที่นี้จะกล่าวถึง log ของ web server โดยใช้ความสามารถของ apache web server โดยใน configuration ของ apache เราสามารถที่กำหนดให้ทำการบันทึก log ไว้ได้ โดยมาตราฐานในการบันทึก log จะบันทึกเป็นแฟ้มข้อมูลเดียวทำให้ขนาดใหญ่ขึ้นทุกครั้งที่มีการเรียกใช้งาน เราจึงจำเป็นต้องทำการกำหนด configuration ใหม่ เพื่อให้ระบบทำการบันทึก log ตามช่วงเวลาที่ต้องการ โดยกำหนดไว้ใน access และ error log ใน root ของแต่ละ application หรือของระบบก็ได้ เช่น ErrorLog "|/usr/sbin/rotatelogs -l /home/p10028/log/p10028-error_log.%Y-%m-%d-%H 3600" CustomLog "|/usr/sbin/rotatelogs -l /home/p10028/log/p10028-access_log.%Y-%m-%d-%H 3600" combined (ถ้าเป็น windows ไฟล์ rotatelogs จะอยู่ใน bin ของ apache ถ้าต้องการกำหนดเป็นขนาดของไฟล์ก็ได้ โดยแทนที่ 3600 ด้วยขนาดที่ต้องการ เช่น 5M เป็นต้น) ตามตัวอย่างจะเป็นการกำหนดทุกๆ 1 (3600 วินาที) ชั่วโ...

กรณีที่ไม่สามารถ start service ของ PostgreSQL ได้ (ใน windows)

รูปภาพ
สำหรับวินโดว์ เท่านั้น มีบางกรณีที่เราไม่สามารถที่จะ start service ของ PostgreSQL ได้เมื่อเราได้ทำการติดตั้งไปแล้ว โดยวิธีการใช้ setup หรือการติดตั้งแบบ manual อาจจะเกิดจากที่ตำแหน่งที่ติดตั้งไม่ได้อนุญาตให้ user postgres ทำการอ่านและเขียนไฟล์ในตำแหน่งที่ติดตั้ง หรืออาจจะเกิดจากกรณีที่ไม่ได้กำหนดการ logon สำหรับ user postgres ในกรณีไม่ได้กำหนดสิทธิตำแหน่งที่ติดตั้งให้กำหนดใน tab security ของตำแหน่ง root ที่ติดตั้ง ถ้าในกรณีที่สอง จะต้องกำหนดใน policy ของ window ที่ติดตั้ง Control Panel\System and Security\Administrative Tools\Local Security Policy แล้วทำการ double click รายการนี้ จะเปิดหน้าต่างขึ้นมา ให้ mouse ขวาที่รายการ Log on as a service จะได้หน้าต่างขึ้นมาให้ทำการคลิกปุ่ม Add User or Group ... จะเปิดหน้าต่างมาให้ทำการเพิ่ม user postgres เข้าไปแล้วทำการคลิกปุ่ม ok แล้วก็ ok