#b-navbar { height:0px; display:none; visibility:hidden; }

ページ

2012年2月18日土曜日

GISフリーソフト


http://supermap.jp/products/tools/gis_free.htmlよりメモ
いろいろおもしろいことができそう。

SuperMapのGISフリーソフト

「お客様に納入するGISデータを、納入時や納入後に目で見てもらえるようなツールがほしい。」従来から多かったご要望に、フリーソフトの形でお応 えしています。2Dと3Dの一体化(Realspace)に対応したフリーソフトもラインナップに加わりました。今後も時空間情報、位置情報、GISの裾 野の拡大に邁進します。

GISフリーソフトのRealspace版 SuperMap Viewer .NET 6R

2011年にリリースされた、新しいGISフリーソフトウェアです。標準C++ライブラリによる新しいエンジンコアを使った製品で、2Dと3Dの一体化(Realspace)による3Dシーンの作成と保存を実行できます。

主な機能

3Dシーン2Dと3Dの一体化(Realspace)を実現する『3Dシーン』の閲覧・作成・編集
マップマップの閲覧・作成・編集
SuperMap Viewerで作成したマップも閲覧できます。
主題図主題図の閲覧・作成・編集
3Dシーンに主題図を作成できます。
レイアウトレイアウトの閲覧・作成・編集
属性閲覧属性データ(テーブル)の閲覧
クエリSQLクエリの実行

データのインポート、属性編集などは実行できません。SuperMap Viewer も合わせてご利用下さい。

ダウンロード

SuperMap Viewer .NET 6R ダウンロード画像をクリックすると、SuperMap Viewer .NET 6R をダウンロードできます。
Ver.6.0.0.4726 zip形式約709MB 2010年5月26日更新

ダウンロード のページもご覧ください。

GISフリーソフト SuperMap Viewer

主な機能

データ読み込み基盤地図情報、国土数値情報(JPGIS準拠データ)
DXF、MIF、E00などの交換フォーマット
DWG、DXF、MIF、E00、SHP、Coverage、DGN、TABなど各種ベクタデータ
TIFF、Geo-TIFF、IMG、MrSID、ECW、BMP、JPEGなど各種ラスタデータ
国土地理院発行数値地図(※SuperMap Viewer 2008 のみ)
マップ・主題図拡大、縮小、移動、索引図、拡大鏡など地図操作
レイヤーの追加、削除とマップの保存
レイヤーのスタイル設定(色、線種、線の太さ、フィルスタイルなど)
透過(ポリゴン、ラスタデータ)、グラデーションなど
マップの出力(ビットマップ)
7種類の主題図の作成と保存をサポート
データ処理
※ SuperMap Viewer 2008 のみ
タイプ変換(属性データをポイントデータに変換 など)
カラー画像合成(RGBの各単バンドの画像から各種カラー画像を生成)
トポロジ処理(手作業による微小なズレを修正)
空間解析
※SuperMap Viewer 2008 のみ
距離、面積、角度の計算機能
バッファ生成
オーバーレイ解析
近隣解析(ボロノイ図生成)

ダウンロード

SuperMap Viewer 6 ダウンロード画像をクリックすると、SuperMap Viewer 6 をダウンロードできます。
Ver.6.0.2.12325 zip形式約124MB 2010年4月6日更新
SuperMap Viewer 2008 ダウンロード画像をクリックすると、SuperMap Viewer 2008 をダウンロードできます。
Ver.5.3.6.11321 zip形式約109MB 2010年5月31日更新



GIS紹介 - GITmonster

http://gitmaster.com/index.php?GIS%BE%D2%B2%F0 (2012/02/18 Saturday 18:02:50 )

[REPOST]
GISフリーソフト | 各種ツール | 製品情報 | GISエンジン・ソフトウェアベンダー | 日本スーパーマップ株式会社

http://supermap.jp/products/tools/gis_free.html (2012/02/18 Saturday 18:01:02 )
SuperMap Viewer 6 をダウンロードできます。
Ver.6.0.2.12325 zip形式約124MB 2010年4月6日更新
[REPOST]
GISフリーソフト | 各種ツール | 製品情報 | GISエンジン・ソフトウェアベンダー | 日本スーパーマップ株式会社

http://supermap.jp/products/tools/gis_free.html (2012/02/18 Saturday 18:00:25 )
SuperMap Viewer .NET 6R をダウンロードできます。
Ver.6.0.0.4726 zip形式約709MB 2010年5月26日更新
[REPOST]
GISとは・・・|国土地理院

http://www.gsi.go.jp/GIS/whatisgis.html (2012/02/18 Saturday 17:59:31 )

[REPOST]

2012年2月14日火曜日

日本国外(海外)からの攻撃への対応

アクセスを日本国内と限るには、
DNSの逆引きが以下のホスト名で終わるよう設定されているIPアドレス
に限定するというのがあります。

  - .jp
  - .bbtec.net
- .nifty.com
  - .2iij.net
  - .mopera.net
  - .freebit.net
  - .zero-isp.net
  - .crust-r.net
- .bitcat.net

2011年12月8日木曜日

SSLの有無によるリファラーの渡り方

Refererは便利ですが、SSLと非SSLではヘッダ情報としての
挙動が変わるのでメモ。

以下、遷移パターンごとに。

※同一ドメインか、クロスドメインかでもテストしましたが、
挙動は同じでした。


(1)非SSLページ → 非SSLページ: Referer渡る☆
↑一般的な遷移ですね。

(2)非SSLページ → SSLページ : Referer渡る☆


(3)SSLページ  → 非SSLページ: Referer渡らない★


(4)SSLページ  → SSLページ : Referer渡る☆



もし渡って欲しい!という趣旨の開発をしているなら、
(3)は要注意です。


もし、渡って欲しくない!という趣旨の開発をしているなら、
(4)は要注意です。
SSLページは、同一ドメインでもクロスドメインであっても、
SSL同士であれば、Refererが渡ります。


主要なブラウザ、
FF,Chrome,IEiOS標準、Android
の2011年12月での最新版でテストしました。
サーバーは(関係ないと思いますが一応)Apache2です。

2011年11月6日日曜日

Javascript var_dump

  
document.write( var_dump ( "変数名" ) ) ;
  
  
 function var_dump(data,addwhitespace,safety,level) {
        var rtrn = '';
        var dt,it,spaces = '';
        if(!level) {level = 1;}
        for(var i=0; i<level; i++) {
           spaces += '   ';
        }//end for i<level
        if(typeof(data) != 'object') {
           dt = data;
           if(typeof(data) == 'string') {
              if(addwhitespace == 'html') {
                 dt = dt.replace(/&/g,'&amp;');
                 dt = dt.replace(/>/g,'&gt;');
                 dt = dt.replace(/</g,'&lt;');
              }//end if addwhitespace == html
              dt = dt.replace(/\"/g,'\"');
              dt = '"' + dt + '"';
           }//end if typeof == string
           if(typeof(data) == 'function' && addwhitespace) {
              dt = new String(dt).replace(/\n/g,"\n"+spaces);
              if(addwhitespace == 'html') {
                 dt = dt.replace(/&/g,'&amp;');
                 dt = dt.replace(/>/g,'&gt;');
                 dt = dt.replace(/</g,'&lt;');
              }//end if addwhitespace == html
           }//end if typeof == function
           if(typeof(data) == 'undefined') {
              dt = 'undefined';
           }//end if typeof == undefined
           if(addwhitespace == 'html') {
              if(typeof(dt) != 'string') {
                 dt = new String(dt);
              }//end typeof != string
              dt = dt.replace(/ /g,"&nbsp;").replace(/\n/g,"<br>");
           }//end if addwhitespace == html
           return dt;
        }//end if typeof != object && != array
        for (var x in data) {
           if(safety && (level > safety)) {
              dt = '*RECURSION*';
           } else {
              try {
                 dt = var_dump(data[x],addwhitespace,safety,level+1);
              } catch (e) {continue;}
           }//end if-else level > safety
           it = var_dump(x,addwhitespace,safety,level+1);
           rtrn += it + ':' + dt + ',';
           if(addwhitespace) {
              rtrn += '\n'+spaces;
           }//end if addwhitespace
        }//end for...in
        if(addwhitespace) {
           rtrn = '{\n' + spaces + rtrn.substr(0,rtrn.length-(2+(level*3))) + '\n' + spaces.substr(0,spaces.length-3) + '}';
        } else {
           rtrn = '{' + rtrn.substr(0,rtrn.length-1) + '}';
        }//end if-else addwhitespace
        if(addwhitespace == 'html') {
           rtrn = rtrn.replace(/ /g,"&nbsp;").replace(/\n/g,"<br>");
        }//end if addwhitespace == html
        return rtrn;
     }//end function var_dump



ソース:http://snippets.dzone.com/posts/show/4296

多次元配列のソートまとめ

■PHP1
<?php
$list = array(
array("no"=>3, "cat"=>5, "body"=>"リンゴ"),
array("no"=>2, "cat"=>4, "body"=>"みかん"),
array("no"=>4, "cat"=>5, "body"=>"ナシ"),
array("no"=>6, "cat"=>3, "body"=>"バナナ"),
array("no"=>1, "cat"=>4, "body"=>"オレンジ")
);
usort($list, create_function('$a, $b', 'return $a["cat"]-$b["cat"];'));

print_r("<pre>");
print_r($list);
print_r("</pre>");
?>


■PHP2
$hoge = array(
array('id'=>'3','date'=>'2010.10','name'=>'イカ娘'),
array('id'=>'1','date'=>'2010.10','name'=>'それでも町は廻ってる'),
array('id'=>'2','date'=>'2010.11','name'=>'百花繚乱サムライガール'));
これを一番目の要素で並び替えたいときは。

//いったんソートするキーを配列で取り出して、
foreach($hoge as $key=>$value){
$id[$key] = $value['id'];
}

array_multisort($id ,SORT_ASC,$hoge);

//これで並び替え完了。DESCもできます。



■Javascript1

<script language="JavaScript" type="text/javascript"><!--
var list = [
{"no":3, "cat":5, "body":"リンゴ"},
{"no":2, "cat":4, "body":"みかん"},
{"no":4, "cat":5, "body":"ナシ"},
{"no":6, "cat":3, "body":"バナナ"},
{"no":1, "cat":4, "body":"オレンジ"}
];
list.sort(function(a, b) {return a.cat-b.cat});

var text="";
for(var i=0; i<list.length; i++) {
text += "\n no:" + list[i].no + " cat:" + list[i].cat + " body:" + list[i].body;
}
alert(text);
//--></script>

 多次元配列listをcatの上り順だけでソートしていますが、noを含めた複数条件でソートする場合、list.sortの部分を以下のように書き直します。
list.sort(function(a, b) {return a.cat-b.cat || a.no-b.no});


単に「||」で追加したソート条件を区切るだけ。条件が増えれば、その分「||」で継ぎ足していけばOK。実にシンプルで美しいコードです。



参考:
http://ma-bank.com/item/752
http://d.hatena.ne.jp/raharu0425/20101020/1287539676
thanks!