Gaia – Open Source Google Earth – but not permitted

刚刚在solidot上看到的消息:
Gaia试图开源Google Earth未果
到其网站看了一下,果然有通知:

25 November 2006, we’ve got the letter from Michael Jones, the Chief Technologist of Google Earth, Google Maps, and Google Local search, requesting us to cease reverse engineering and improper usage of licensed data that Google Earth use. We understand and respect Google’s position on the case, so we’ve removed all downloads from this page and we ask everybody who have ever downloaded gaia 0.1.0 and prior versions to delete all files concerned with the project, which include source code, binary files and image cache (~/.gaia).

站点上的下载连接都删除了,但我原来一直不知道这个项目,就满世界的找其镜像,功夫不负有心人,最终在gentoo的库里找到了,下载编译试用了一下,感觉还可以,不过只有最基本的功能,就是浏览图像,但程序比较稳定。其比google earth for linux的优势就是可以把其代码集成到自己的程序里,然后再混合自己的地图服务,可以得到很好的效果。(当然,还有别的功能,自己体会,呵呵)
当然,google封杀这个项目也可以理解。
下载:gaia 0.10

使用tcl 8.4程序的编译

在编译SME-3.2.73的时候,遇到了Tcl_CreateCommand程序调用编译错误,后来在网络上google才知道这是tcl升级到8.4的问题。

invalid conversion from ‘int (*)(void*, Tcl_Interp*, int, char**)’ to ‘int (*)(void*, Tcl_Interp*, int, const char**)’

后来在http://wiki.tcl.tk/3669找到了答案。
解决办法:
1 可以在g++编译的时候加上-DUSE_NON_CONST参数
2 可以在代码中引入tcl.h之前定义此宏。

#define USE_NON_CONST
#include “tcl.h”

导入landuse数据的最终脚本

经过漫长的测试(3天的运行),修改后的最终版本可以实现:

保存当前进度
下次运行可以从上次进度运行
可以更新县区代码
可以更新时间

最终的代码如下:

#!/bin/sh
# cd /opt/to_reback/data/landuse
#set -x
d1=./tmpdata1
d2=./tmpdata2
YEAR=”80年代末 1995年 2000年”
for a in $YEAR; do
for b in $a/*; do #province, 目录判断
if [ -d $b ]; then
rm -fdr $d1
rm -fdr $d2
for c in $b/ld*; do # areacode, 县级区域
bb=`echo $b | sed “s/\///g”` # 去除/特殊字符,否则sed罢工
areacode=`echo $c | sed “s/\///g” | sed “s/$bb//g” | sed “s/ld//g”`
#echo $c
if [ `cat work.log | grep “$c”` ]; then
echo $c
echo “already done!”
else
ogr2ogr $d1 $c && ogr2ogr $d2 $d1/PAL.shp -f “ESRI Shapefile” -select area,perimeter,r_area,ln71,ln72,ln73,ln74,aftln,tm20,tm30,tm40,tm50,tm60,afttm,ph41,ph52,ph53,net || exit
shp2pgsql -a -g the_geom -i $d2/PAL.shp landuse | psql -d westdc || exit
psql -d westdc -c “update landuse set areacode=’$areacode’ where areacode=”” || exit
echo $c >> work.log
# echo “here not done”
echo $c
#exit
fi
done
#vacuumdb westdc
fi
done
psql -d westdc -c “update landuse set year=’$a’ where year=”” || exit
done
#set +x

xgl的更新

今天更新系统后发现又出现XGL/aiglx的老问题了:menu bar消失。
到ubuntuforums上一看,已经有解决方案了。原来是compiz使用了新的启动方法了:

compiz-start

修改插件可以使用:

csm

注意在使用csm命令前要修改.compiz目录的权限:

chmod 755 ~/.compiz -R

还可以在会话中加入compiz-start。

不过,I915下要把blue和water效果去掉,否则速度会很慢的。

两个图标

从别的图形里扣出来的。
一个是udig的图标,一个是qemu的windows模拟器图标。
win2k.png
udig.png

i915的XGL与AIGLX

我的笔记本的显卡是i915gm,共享内存,最大128兆。
台式机上安装了XGL后,也想在笔记本上试验一下。基本上配置都一样,但我不太清楚xgl的启动参数是什么,因此就参照ATI和NVIDA的显卡都试验了一下,启动都没有问题,效果也能出来,但就是速度太慢,无法忍受。
然后就启动到GNOME环境下,发现居然还有3D效果,原来GNOME默认是开启了AIGLX。只要安装了cgwd等相应程序,也能自动启动。aiglx的速度还是相当快的。
结论:好显卡用XGL,不好的显卡就用aiglx。

update: 请参考comment1,结论有变化,二者速度相差不大。

关掉PC的喇叭

正好我的UBUNTU edgy在skype呼叫时会交换,关键是之后就一直交换个不停,CONSOLE下的交换倒是没有什么问题,想了想,还是禁掉吧。

coolcode.cn学到的:

最简单的就是在 /etc/profile 文件中添加一句:

setterm -blength 0

如果不想等到下次启动,直接敲入:

sudo rmmod pcspkr

wine慢的问题

见https://launchpad.net/distros/ubuntu/+source/wine/+bug/51082
huahua的blog无意中发现的,不过edgy里的wine好像有问题,段错误,无法检验这个解决办法,呵呵。