EWKBのポイントをちゃちゃっと作る

ちょいと必要だったので、ちゃちゃっとやってみました。リトルエンディアン限定、ポイントデータ限定です。ファイルを読み込んでどうこうという部分は省きました。

#!/usr/bin/perl

$x=134.99;
$y=35.01;
#$s=4326;
$s=-1;

if( $s > 0 ) {
    $tc = unpack('H8',pack('i',0x20000001));
    $sc = unpack('H8',pack('i',$s));
    $hc = $tc.$sc;
}
else {
    $hc = unpack('H8',pack('i',0x00000001));
}
$xc = unpack('H16',pack('d',$x));
$yc = unpack('H16',pack('d',$y));

$wkb = '01'.$hc.$xc.$yc;

print "$wkb\n";

2008年1月20日に、なんかそこらじゅうで1文字抜けおちが起こってたので訂正しました。