* リリースノート
- ver.0.50 2006/01/25
-- 公開開始
- ver.0.53 2006/4/16
-- メニューからアンチエイリアスを選択可能に。
-- 道路、鉄道の描画の無駄な計算を減らしました。
-- GeneralPathで描画するため，多少遅くなったかもしれません。
-- 鉄道の描画が少し綺麗になりました。
- ver.0.54 2006/4/18
-- 駅区間の描画を実装しました。駅名の描画をどうしようか悩んでいます。
-- 道路、鉄道の描画幅を縮尺に応じて描画するようにしました。
-- 描画幅によって、一般道は描画しないようにしました。
- ver.0.55 2006/4/22
-- 道路の描画を改良しました。
-- 高速道路の描画色を変更してみました。
-- 普通鉄道（JR）以外の描画を黒い実線に変更しました。
-- 新幹線も黒い実線で描かれているかもしれません。
-- ラベル配置処理クラスを作成しました。
-- 水域区間の閉路の塗りつぶしの実装してみましたが，
-- が，いわゆる島（水域区間で囲まれている面）も水域として塗りつぶしてしまいます。
- ver.0.57 2006/4/27
-- 水域区間の種類を読み込むことで，埋立地を塗りつぶしてしまわないようにしました。
-- まだ，海岸線以外で囲まれる島は塗りつぶしてしまいます。もうあきらめ気味です。
-- 国土数値情報の市町村界のポリゴン読み込み，塗りつぶし表示ができるようになりました。
- ver.0.58 2006/4/27
-- 国土数値情報での描画を市町村界から，都道府県界の描画に変更しました。
-- ぜん氏のShapeIOクラスを改変して利用させていただきました。
-- （現在の仕様ではShapeからは座標変換が行えないため）
- ver.0.59 2006/5/1
-- 一部データファイル同梱しました。
- ver.0.60　2005/5/2
-- 国土数値情報をMapDataクラスに持たせるように変更しました。（メモリ使用量が激増）
-- 国土数値情報描画の上に重ねて数値地図を描画しないようにしました。
-- また，都道府県界をみわけられなくなりました、すみません。
-- メモリ節約のため，MapDataを管理するMapのキーをString型からInteger型に変更
-- （前処理のためのクラスには，不具合が生じる可能性有）
-- 標準出力への使用メモリの表示をMB単位で表示するように変更。
- ver.0.61 2005/5/4
-- 背景（海の色）をColor.CYANに変更しました。
-- マウス操作中はアンチエイリアスをオフにするように変更しました。
-- 常にアンチエイリアスをオンにするオプションは必要でしょうか？
-- ファイルのクローズ処理をfinallyブロックで行うように修正しました。
-- まだまだ適切なエラー処理には程遠いです。
-- ステータスバーを表示することにしました。使用メモリ、地図データのダウンロード状況、読み込み状況を表示します。
-- 起動後すぐにフレームを表示し，国土数値情報の読み込み状況などを表示できるようになりました。
-- 地図データ読み込みのための.cellファイルを同梱しました。
- ver.0.62 2005/5/10
-- オフスクリーンバッファを必要な場合にのみ作成しなおすように変更しました。
-- マウスを操作をやめるとアンチエイリアスがかかるように修正しました。
-- 経路探索は，同一行政界内でのみ行えるように変更しました。
-- 最短経路を赤色で表示するようにしました。
- ver.0.63 2005/5/13
-- packegeとclassの構成を大幅に変更しました。
-- Map<Integer, MapData>を継承したクラスで地図データを管理するように変更しました。
-- スレッドの処理によって衝突が生じるようになったと思います、すみません。
-- 必要に応じて頂点情報を、地域単位で読み込むようにして，行政界を隔てた経路探索を実装しなおしました。
-- 探索設定を実装しました。
-- 高速道路利用するかどうか設定できます。
-- 最短経路探索のアルゴリズムをDijkstraと直線距離を用いたA*アルゴリズムから選択できます。
-- 経路探索において端点は、表示されている道路中につながっている中で最も近い頂点を選択するようにしました。
-- BasicStrokeのCAPとJOINを設定しました。
-- drawLineの描画のバグを修正。
-- キー操作、マウス操作を変更しました。
-- キー操作中もアンチエイリアスを無効にしました。
- ver.0.64 2005/5/14
--富士山頂付近でもなんとか文字が読める程度にMeshの表示色を変更しました。
-- 色相も変化させるようにしました。（昔ぜんさんに勧められた時には嫌がりましたが）
-- 標準出力へ標高を表示できるようになりました。（そのうち経緯度と共にステータスバーへ表示）
-- 経路探索時にはRoadクラスにX座標、Y座標の配列を渡さないようにしてメモリを節約。
-- 経路探索に致命的なバグをいくつも発見。バグ修正するだけで相当距離の探索が可能になりました(-_-;
- ver.0.65 2005/5/14
-- 経路探索をFloat精度で計算するように変更。精度よりメモリ。
-- 高速道路と一般道、道路の幅によって傾斜をつけた。
-- 高速道路を利用すると直線距離によるヒューリスティック関数の精度は落ちます。
-- 操作マニュアルを作成しました。
-- すべてのListenerクラスをOperationで実装しました。
-- 平行移動操作のバグを解決しました。
-- 探索の始点と終点を描画するようにしました。
- ver.0.65L 2006/5/20
-- テキストのアンチエイリアスを常に有効にしました。全然違いますね。
-- スレッドの制御を修正しました。
-- GeneralPathへの展開の不具合を修正しました。
-- 鉄道描画のStrokeを変更しました。
- ver.0.66L 2006/5/21
-- CellクラスのフィールドをString配列からint配列に変更しました。
- ver.0.67L 2006/5/22
-- 国土数値情報のデータを表示する際に都道府県単位で読み込むように変更しました。
-- スレッドを適切にロックするようにしました。
-- 不要な再描画をしないようにしました。
- ver.0.68L 2006/05/23
-- 行政界を隔てた道路、鉄道に区切りが描画されないようにしました。
-- 起動時に国土数値情報を描画しないことがある不具合を修正しました。
-- 主な例外に対する処理を行いました。ステータスバーに表示します。
- ver.0.69L 2006/05/23
-- 描画の不具合を修正。
-- 鉄道をGeneralPathからdrawPolyLineで描画するように変更。
-- 鉄道を極力つないで描画するようにしたため繋ぎ目が目立たなくなった。
-- 両方向経路探索アルゴリズムを実装しました。
-- 経路探索スレッドにおける例外処理の不具合を修正しました。
-- 地図データ管理の不具合を修正しました。
- ver.0.70L 2006/05/29
-- 駅名ラベルを配置しました（かなり汚いです）
-- ラベルのインターフェースを仮に作成してみました。
-- 不要なクラスを削除しました。
-- 卒論の結果の誤りを発見、双方向探索を削除。
-- ラベル配置の設定を細かくできるようにしました。
- ver.0.71L 2006/06/14
-- 地図データ読み込みのループをより効率的に実行できるようにしました。
-- CityMapをMapの継承ではなく委譲に変更しました。
-- ファイル管理クラスをStorageに名称変更しました。
-- SimpleLabelingを改変。
- ver.0.72L 2006/07/01
-- ヒープを修正しました。
-- 印刷の実装
-- メニューのショートカットを設定しました。
- ver.0.73L 2006/07/3
-- JR線をGeneralPathで描画するよう修正し、印刷時の不具合を解消しました。
-- 再描画のタイミングを修正しました。
-- 地図イメージからラスタ画像へのエクスポートを実装しました。
- ver.0.74L 2006/07/12
-- ラスタ画像へのエクスポートで、サイズとフォーマットの指定を実装しました。
- ver.0.74L-zenjiro 2006/07/16 by ぜん
-- Fedora Core 5、jdk-1.5.0_07ではフレームが表示されない、縮尺を大きくしても詳細な地図が描画されないなどの問題があったので、いろいろ修正しました。
-- フレーム周りをいろいろ変えました。
-- ステータスバーの文字列切り替えがデッドロックしていたので、とりあえず全てのsynchronizedを消しました。
-- ステータスバーでBytesをMBに変換するときに1000で割っていたのを1024で割るようにしました。
-- MapPanelのoffsがnullのときにNullPointerExceptionが発生する不具合を修正しました。
-- なぜか海が描画されないことが増えたので、むりやり海を塗りつぶすようにしました。
- ver.0.75L 2006/08/05
-- 地図データをストリーミングで解凍を行うようにしました。
-- 市区町村の範囲をストリーミングによる読み込みを実装したため、無駄なダウンロードを削減できました。
-- アドレスマッチングを試してみました。アドレスマッチングの精度がなかなかあがりません。
-- 一部のローソンが表示できるようになりました。
- ver.0.76L 2006/08/05
-- セルメソッド用のデータの修正
-- 国土数値情報のデータをObjectInputStreamで読み込むことで起動時間の短縮ができました。
-- 市区町村の解析のための正規表現を修正しました。
-- Pluginとして、ChainStroreクラスを継承した店舗情報取得クラスの読み込みが可能になりました。
-- 国土数値情報の行政界を表示しているときに市区町村名を表示するようにしました。
- ver.0.76L-zenjiro 2006/08/11 by ぜん
-- Linuxで、文字化けのために店舗が全く表示されない不具合を修正しました。
-- 市区町村名が文字化けする不具合を修正しました。（map.data.CityMap#getCityNameMap）
-- ホームページから住所が文字化けする不具合を修正しました。（map.store.ChainStore#getAddress、map.store.ChainStore#readFile）
-- 街区レベル位置参照情報の住所が文字化けする不具合を修正しました。（map.IsjFactory#getStreaming）
- ver.0.77L 2006/08/18
-- LHA Library for Java を dangan.jar として分離しました。
-- リファクタリングを行いました。
- ver.0.78L 2006/09/11
-- 数値地図2500の水界のポリゴンの表示を実装しました。
-- 数値地図2500のデータがあれば、数値地図25000の水域界と河川の描画をしないようにしました。
-- クラス名、パッケージ名など構成を大きく変えました。すみません。
-- ライブラリはlibディレクトリで管理するようにしました。
- ver.0.79L 2006/09/12
-- 数値地図2500のデータの開放を実装しました。
-- 数値地図2500の水界の境界を描画するようにしました。
-- 数値地図2500の水界の直列化に対応させました。
-- ポリゴン描画を最適化しました。
-- 数値地図25000の海岸線を分離して描画するようにしました。
- ver.0.80L 2006/09/15
-- メニューをMapMenuにまとめました。
-- 最新のバージョンであるかどうか確認する機能を追加しました。
-- 起動時に最新のバージョンであるかどうか確認するようにしました。
-- 設定を一部保存しておけるようにしました。
-- 数値地図2500の水界を線種により境界のみ描画できるように改善しました。
- ver.0.81L 2006/09/17
-- 地図データの取得のスレッドの動作を改善しました。
-- 操作マニュアルの表示設定を保存できるようになりました。
-- 経度緯度を指定して移動できるようになりました。
-- 数値地図25000の水域を描画できなくなっていたバグを修正しました。
- ver.0.82L 2006/10/26
-- 市区町村名データベース(インデックスはHashMap)を作成しました。
-- 市区町村データでの市区町村名の管理を実装しました。
-- ステータスバーに市区町村番号ではなく、市区町村名を表示するようにしました。
-- デフォルトの設定ファイル位置を地図データディレクトリ以下に作成するよう変更しました。
-- 広域の表示において市区町村名が表示されないことがあるバグがなくなったようです。
- ver.0.83L 2006/10/26
-- 市区町村名の読み込みの無駄を削減しました。
-- 国土数値情報での水域の塗りつぶしを実装しました。

* TODO
- 国土数値情報の不要な塗りつぶしの防止
-- ShapeからPolygonへの変換時にチェック
- ラベル配置
-- ラベルの優先度の指定
- 経路探索結果の時間または距離表示
- 一対多の経路探索の実装
-- ラベルの頂点へ関連付け
- 白黒印刷モード（白地図）
- グレースケールモード

* 検討中
- ファイル容量が増えてきている。SOAP等でアドレスマッチング等をサーバに処理させてもいいかもしれない。
- 店舗情報は県単位で読み込みを行い緯度経度まで変換して保存。
- 範囲検索で店舗情報は読み込む（県をまたがる市町村合併は・・・？）
- 市町村合併後の街区レベル位置参照情報のリリース待ち。
- アドレスマッチングに失敗したデータはバージョン情報と共に別で保管しておく。
- 市区町村名のラベル配置法。
- 高速利用時はAアルゴリズム（ヒューリスティック関数を下界に制限しない）を利用。

* 問題点
- map.map25000のクラス構成。Factoryという名前は違う気がする。Storageとの結合も強くなっている。
- 広域の探索においてメモリの限界とともに探索速度も問題。
- 道路・鉄道が重なった場合の描画について検討する必要がある。
- OutOfMemoryExceptionの対処が不十分。確実にcatchできてない。（Mustangで対応できる？）
- 配置できるはずなのに配置できてないラベルがあるように感じる。
- ラベル数が増えてきているので、ラベル配置アルゴリズムの改良が必要。
- 直列化保存で多少ディスク使用量は減ったが、ディスクもメモリも喰い過ぎる。
** 仕様上の問題
- 道路の接点と非接点の区別がつかない。
- 数値地図25000では水域区間の閉路の塗りつぶしが難しい。
- アドレスマッチングの精度が良くない。街区レベル位置情報だけでは情報量が足りない。

* メモ
- 印刷時にdrawPolylineでは、ストロークが線分毎に適用される。
- 破線の描画は印刷時にはGeneralPathで行う必要がある。
- セルのサイズをこれ以上小さくするのはメモリ的に厳しいようだ。
- MapServer、PostGIS、Ka-Map、PostLBS
- jsmoothでexeファイル化
