WxS Mapscript non-work on NON-CGI environment

Standard
หลังจากปวดหัว ตั้งแต่เช้า ว่าอยู่ดี ๆ ทำไม script เก่า มันใช้งานไม่ได้ฟะ ในที่สุดก็ค้นพบว่า mandriva 2008 ที่ลงไปนั้นยังไม่ได้ปรับแก้ให้ ใช้ php ใน แบบ cgi ไม่ใช่แบบ mod_php

เพราะจะมีผลกับคำสั่งบางอย่างของ php-mapscript เช่น WxS Mapscript

พอสร้าง object

$request = ms_newowsrequestobj();

มันก็เงียบไป แล้วไม่มี error ใด ๆ ทั้งสิ้น ทั้งทางหน้าจอและใน log

บางอ่านบอกให้ทำการ parse จาก request url แล้วใส่เข้าไปด้วยวิธี

$request = ms_newOwsRequestObj();



foreach ($_GET as $k=>$v) {

$request->setParameter($k, $v);

}



ก่อน $request->loadparams(); แต่สำหรับเราลองแล้วยังงัยก็ไม่สำเร็จ ก็ไม่เข้าใจ

ก็เลยปรับเปลี่ยนไปใช้ แบบ cgi ดีกว่า

ถ้าใครเจอปัญหาแบบนี้ลองแก้ตามข้างบนแล้วกันถ้าผ่านนะ


Powered by ScribeFire.

Mapserver 5.0.0 Change

Standard

ไม่มั่นใจ เหมือนกันว่าเป็นที่ Mapserver หรือ GDAL หรือ จากส่วนไหน แต่แน่ ๆ คือ

หากจะใช้ Layer OGR จากเดิม หากจะใช้ Labelitem หรือ Classitem จะต้องใช้

ogr:DO หรือ ogr:Name

ต่อตอนนี้นั้นไม่จำเป็นแล้ว ให้ใช้แค่ DO หรือ NAME เท่านั้น

และอยู่ดีก็เจอปัญหาแปลกเกี่ยวกับ

PHP Warning: [MapServer Error]: msProcessProjection(): no system list, errno: 2

หลายท่านแนะนำว่าให้ใส่

CONFIG “PROJ_LIB” “/usr/share/proj/”

ใน map file

หรือ ใส่ SetEnv PROJ_LIB “/usr/share/proj/”

ไปใน apache config สะ แต่บางที คิดว่ามันเป็น bug อะ เพราะ พอเกิดข้อพลาดมันก็แจ้ง แต่พอ restart apache ก็หายสะงั้น แล้วลองเอา ไอ้ proj_lib ที่ใส่ค่าไว้ทั้งหมดออกไป ระบบก็ทำงานได้ดี

Powered by ScribeFire.

Linux GPS

Standard
วันนี้ทดลองเชื่อม GPS แบบ Real Time ครั้งแรก (ซึ่งจริง ๆ แล้วแม้กระทั่ง way point ก็ไม่เคยโหลดมาก่อนเลย)

พบความยุ่งยากนิดหน่อย เกี่ยวกับเรื่อง port ได้ข้อสรุป บางประการ

1. Garmin GPS ถ้าเลือกใช้ Garmin output จะได้เฉพาะ Serial port ไม่สามารถใช้ USB port ได้

2. /dev/ttyS0 นั้นสำหรับ Serial connect และ /dev/ttyUSB0 นั้นสำหรับ USB connect


วิธีโหลด way point ด้วย gpsbabel

gpsbabel -D9 -i garmin -f /dev/ttyS0 -o gpx -F foobar.gpx

-i garmin ใช้ได้แต่ลอง -i nmae มันไม่สำเหร็จ อะ

-o gpx หรือ kml ก็ได้

วิธีต่อแบบ real time ด้วย gpsdrive

ก่อนอื่นลองดูก่อนว่าข้อมูลนั้นเชื่อมเข้ามาไหมด้วย

gpsd -p /dev/ttyS0

แล้วก็ telnet localhost 2947

จากนั้นก็ กด R

ถ้าการเชื่อมต่อผ่านไปด้วยดีก็จะมี ข้อมูลพรุ่งพรวดมา เยอะแยะ

จากนั้นก็ลองเปิดโปรแกรม gpsdrive
แล้วเปลี่ยนค่าเชื่อมต่อเป็น /dev/ttyS0 แล้วเลือก ว่าเป็น serial connection












Powered by ScribeFire.

rpm ครั้งที่ 2

Standard
ครั้งนี้เอาแบบ น้อย ๆ แล้วจะมาเพ่ิมทีหลังแล้วกัน

-ในบางครั้งอาจจะพบเจอ การอ้างถึง variable แบบ %{php} ถ้าต้องการใช้ก็สามารถ Tag ที่มีอยู่ใน rpm แต่หากไม่มี define ก็สามารถ สร้างขึ้นมาเองได้เช่น

%define php php

เป็นต้น

- หากต้องการตรวจสอบค่าตัวแปรใน rpm ให้ใช้คำสั่ง

rpm –eval %{php} เป็นต้น

link อ้างอิงเพิ่มเติม

Link เพิ่มเติม 2

Powered by ScribeFire.

new QGIS 0.9.0 ด้วย ccmake installation

Standard
เพิ่งจะเสร็จสิ้นไปกับ qgis 0.8.1 ไม่กี่วัน มาใหม่อีกแหละ
สำหรับ version 0.9.0

ซึ่งในการ compile นั้นมีการเปลี่ยนเปลี่ยนนิดหน่อย โดยการที่ ใช้คำสั่ง

ccmake แทน

แล้วจะมีเมนู ให้เลือก ใส่ค่าต่างๆ นา ๆ มากมาย แล้วจึงให้สร้าง config ไฟล์ CMakeCache.txt

เมื่อต้องการสร้างก็

make

แล้วหากต้องการ install ก็

make install

และหากต้อง remove ก็

make uninstall



Powered by ScribeFire.

First time Ubuntu 7.1.0 server installation

Standard


กับการทดลอง install ubuntu ครั้งแรก ด้วยแผ่น Server
ขั้นตอนก็เหมือนกับ debian ทั่วไป แต่มีรายละเอียดเล็กน้อย ที่ทำให้มันดูจะง่ายขึ้น (หรือยุ่งยาก ขึ้นกันแน่นะ) แต่สำหรับคนมีประสบการณ์ ต้องบอกว่า มี tools ให้ช่วยมากกว่าการที่จะต้องลงมือด้วยวิธี manual

อย่างหนึ่งหลังจากทดลอง install แผ่น server ก็คือ มันจะไม่มี desktop หรือ x-windows ให้

วันนี้ก็มาเสนอ วิธีการ install x-windows ภายหลัง

ก็ใช้คำสั่ง

sudo apt-get install ubuntu-desktop

ก็จะได้ Gnome มา

แต่หากสนใจอยากได้ KDE เพิ่งเติมก็

sudo apt-get install kubuntu-desktop

แต่หากต้องการแค่ kde เท่านั้นไม่ได้ต้องการ sw อื่น ๆ เพิ่ม

sudo apt-get install kdebase kdm x-window-system-core




Powered by ScribeFire.

มาเริ่มสร้าง .deb กัน

Standard
หลังจากลอง rpm มานาน ก็ลองมาทดลองสร้าง .deb กันบ้าง ซึ่งที่มานั้นเริ่มมาจาก Debian แต่หลัง ๆ เริ่มได้ความนิยมอย่างจากกระแส ubuntu ที่มาแรง มาก

ก็ยังไม่เข้าใจแบบแท้จริงสักเท่าไร แต่ดูเหมือน ว่าก็ download src มาโดยคำสั่ง

apt-get source gdal

ถ้ามี lib ใด ที่ต้องใช้มันก็จะ download มาเพิ่มด้วยคำสั่งข้างล่าง

apt-get build-dep gdal

จากนั้นก็ทำการ recomplie โดย

cd gdal-1.4.2

debuild -us -uc

หากจะทำการแก้ไข make ไฟล์ให้แก้ที่

gdal-1.4.2/debian/control

จากนัั้นสามารถทำการ install ด้วยคำสั่ง

dpkg-buildpackage

ถ้าจะ install ก็ลองใช้คำสั่ง

dpkg –install gdal-1.4.3.deb

อีกหนึ่ง tools ที่เหมาะกับการทำ foss4g CD
โดยจะทำการรวบรวม .deb มาไว้ทั้งหมด แล้วทำเป็น repository ได้

AptonCD

link เพิ่มเติม

debian-admin เก่าไปหน่อย

UbuntuGIS more

DebianGIS


Technorati Tags: ,

Powered by ScribeFire.

The Change of Python 2.4 -> 2.5

Standard
ความงงงวดมาบังเกิด เมื่อ python code ที่เขียนมาอย่าง ยากลำบาก อยู่ดีๆ run ไม่ได้ จากการตรวจสอบจึงรู้ว่า ข้อแตกต่างคือ ได้มีการ upgrade python -> 2.5

การเปลี่ยนแปลง ครั้งใหญ่คือ Elementtree ได้รวมเข้าไปอยู่ใน python โดยตรง จากที่เมื่อก่อนต้องเรียกผ่าน cElementtree

ก็ลองต้องทำการเปลี่ยน code นิดหน่อย

python 2.4

from cElementTree import Element, SubElemet,ElementTree

python 2.5


from xml.etree import ElementTree
from xml.etree.cElementTree import Element, SubElement


ขั้นต้นในการ require

จุดหนึ่งที่สังเกตอีกอัน ก็ตอน write Elementtree



python 2.4


ElementTree(featureMember).write(self.fh,”utf-8″)


python 2.5



ee = ElementTree.ElementTree(featureMember)
ee.write(self.fh,”utf-8″)


เปลี่ยนตามข้างบน แต่น่าจะมี รายละเอียดหรือความแตกต่างเพิ่มเติมอีก

ข้อมูลเพิ่มเติม 2 3


Powered by ScribeFire.



Technorati Tags:

ความยุ่งยาก ในของ new postgis-jdbc

Standard
ดันไปปรับครั้งใหญ่ ย้ายจาก 2006 -> 2008

ตัวนี้มาพร้อมกับ Postgresql8.2.504

ปัญหามาเกิดตรงที่ การจะสร้าง postgis-jdbc จะต้องทำการ recomplie

แล้ว script postgis-jdbcdedectver.sh

#!/bin/bash
#JDBC_VERSION_RPM=`rpm -ql postgresql-jdbc| grep ‘jdbc2.jar$’|awk -F ‘/’ ‘{print $5}’`
JDBC_VERSION_RPM=’postgresql-8.2.504.jar’
sed ‘s/postgresql.jar/’${JDBC_VERSION_RPM}’/g’ $MAKEFILE_DIR/jdbc/Makefile > $MAKEFILE_DIR/Makefile.new

cp -f $MAKEFILE_DIR/Makefile.new $MAKEFILE_DIR/Makefile
cp -r $MAKEFILE_DIR/Makefile $MAKEFILE_DIR/jdbc/Makefile

ต้องทำการแก้ไข นิดหน่อยให้เป็นดังข้างต้น อย่างแรกเลย คือ grep มันดันหา jdbc2.jar ไม่เจอสะงั้น เพราะไฟล์มันเปลี่ยนไปเป็น

postgresql-8.2.504.jar ใน /usr/share/java/ ก็เลยใช้แบบ fix ไปก่อน




Powered by ScribeFire.

AJAX Cross-Domain Request

Standard
หลังจากที่ได้ลองทำ WPS Client/Server แล้วก็ได้รับรู้ว่ามันมีจำกัด ด้าน Cross-Domain Request ซึ่งเป็นข้อจำกัดของความปลอดภัย

ก็พยายามหาข้อมูลอยู่นาน ก็เพิ่งมาเจอ ประเด็นหลักที่ รับทราบก็คือต้องทำ proxy server ในการติดต่อกับ web service อีกทีหนึ่ง




รายละเอียดจะรายงาน คืบหน้าครั้งต่อไป

http://developer.yahoo.com/javascript/howto-proxy.html

http://www.xml.com/pub/a/2005/11/09/fixing-ajax-xmlhttprequest-considered-harmful.html?page=last


Powered by ScribeFire.