一些處理 javascript 減少 server http connection 數的方法

 

http://joliclic.free.fr/php/javascript-packer/en/
http://yuiblog.com/blog/2008/07/16/combohandler/
This is a fast, low-overhead port of Douglas Crockford’s JSMin JavaScript minifier to PHP. It requires PHP 5 or higher.
JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files.
http://code.google.com/p/jsmin-php/

Holux m-241 logger 的 KML data 匯出 , 用 excel 編輯後再轉回 KML

今天早上都在玩這個…
把 kml 檔案用 simplexml 讀出來 , 簡單分析了一下就知道座標跟高度等資料在那裡了,
接著用以下的程式把它轉出 csv 檔
[code language=’php’]
$string=file_get_contents(“0816.kml”);

$xml = simplexml_load_string($string);

printf(“Name,Latitude,Longitude,Altitude,Dist,Description ,Icon,IconScale,IconAltitude,IconHeading, IconColor, LineStringColor,HideNameUntilMouseOver\n”);

$icon=”196″;
$iconscale=”0.2″;
$iconaltitude=10;
$iconheading=”line-180″;
$iconcolor=”yellow”;
$linestringcolor=”aqua”;
$HideNameUntilMouseOver=”true”;

$cnt=0;
$t1=0;
$last_point=array();
$dist=0;
$total_dist=0;
$ignore_time=120; // 120 seconds
$ignore_dist=10; // 10 meters

foreach ($xml->Document->Folder->Placemark as $k=>$v) {
$point=explode(“,”,trim($v->Point->coordinates));
if ( $last_point[0] ) {
$dist=sqrt( pow(abs($point[0]-$last_point[0])*110.766417,2) + pow(abs($point[1]-$last_point[1])*110.766417,2) );
$dist*=1000;
} else {
$dist=0;
}
$total_dist+=$dist;
$last_point=$point;
if ( $point[2]name);
$timestamp=strtotime($str_time);
if ( ($timestamp-$t1)<$ignore_time &amp;&amp; $dist<$ignore_dist ) continue; $t1=$timestamp; printf("%s , ",date("H:i:s",$timestamp)); printf("%s , ",$point[1]); printf("%s , ",$point[0]); printf("%s , ",$point[2]); printf("%s , ",$total_dist); printf("NO.%d
%s
Altitude : %s M , “,$cnt++,$str_time,$point[2]);
printf(“%s , “,$icon);
printf(“%s , “,$iconscale);
printf(“%s , “,$iconaltitude);
printf(“%s , “,$iconheading);
printf(“%s , “,$iconcolor);
printf(“%s , “,$linestringcolor);
printf(“%s , “,$HideNameUntilMouseOver);
printf(“\n”);
}[/code]

用 excel 把 csv 讀進來編輯, 一方面用 google earth 來對原來資料 , 看那邊停留久的 data
減少一些 , 再用這個 service 把 csv 轉回 KML 檔

Excel To KML – Display Excel files on Google Earth

今天(8/19)聽了 aska 的建議, 增加 “忽略” 時間跟距離的片段進去

今天(8/21)終於把這段程式改成可以給大家用的 service 了:
https://www.monster.com.tw/kml2csv

oracle/sqlrelay/php 把 field 的 name 轉成小寫 sample code

// $__oradb->setOption('portability', DB_PORTABILITY_LOWERCASE);
require_once "config.php";
require_once "sqlrelay.php";


unset($__config['sqlrelay_dsn']);
$__config['sqlrelay_dsn'][]="sqlrelay://xx_id:[email protected]:9000";

$sql="select aaa,bbb from xxxx t where g_close_date is null";

$__now=get_microtime();
$__oradb=_fn_connect_sqlrelay();
$__oradb->setOption('portability', DB_PORTABILITY_LOWERCASE);

$result = $__oradb->query($sql);
if (DB::isError($result)) {
  echo "db error\n";
  printf("Execution time : %s\n",get_microtime()-$__now);
  exit;
}

while ( $row=$result->fetchRow(DB_FETCHMODE_ASSOC) ) {
  // -----
  echo $row['aaa'] . ' : ' . $row['bbb'];
}

$result->free();
$__oradb->disconnect();


// 取時間 function
function get_microtime() {
    list($usec, $sec) = explode(' ',microtime() );
    return ((double)$usec + (double)$sec);
}