ความยุ่งยาก ในของ 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.

shp2pgsql support i18n encod

Standard

วันนี้มีเพียงเกร็ดเล็กมาฝากในกรณีต้องการใช้การ convert shp2pgsql ให้สามารถทำการแปลงระบบการ encode เช่นจาก

Shift_JTS ไปเป็น UTF8

ต้องมีการใช้ option -W ต้องเป็นตัว UpperCase นะเพราะมันมีอีก option หนึ่งด้วย

แต่ก่อนจะทำการแปลงนั้นบางที shp2pgsql ของเราอาจไม่ได้ทำการ complie ให้ support ดังนั้นเราต้องการแก้ไขโดยต้อง complie ใหม่

โดยการทำการแก้ไขไฟล์

Makefile.conf.in

ทำการแก้ไขค่านี้ USE_ICONV=1

จากนั้นต้องทำการ recomplie มันสะคราวนี้ก็ดำเนินการได้เลยด้วยชุดคำสั่งนี้

# shp2pgsql -W SJIS shaperoads myschema.roadstable > roads.sql
# psql -d roadsdb -f roads.sql

หรือ

shp2pgsql -W SJIS shaperoads myschema.roadstable | psql -d roadsdb

แล้วหลังจากเราเอา ข้อมูลเข้าไปใน PostgreSQL แล้วนั้นซึ่ง Encode DB ของเรานั้นเป็น UTF-8

ทำใ้ห้เวลาสั่งให้ mapserver สร้าง label ในการแสดงแผนที่นั้นไม่จำเป็นต้อง ระบุ Encode ให้กับมันก็ได้