* TODO
+ 国土数値情報（行政界・海岸線）の都道府県名、市区町村名を描画したい。
+ 国土数値情報の他の情報も使いたい。
+ 最短経路探索したい。
+ 駅を長方形にしたい。

* リリースノート
2006/12/03 5.01
- map.Const.Zoom.LOAD_2500で、数値地図2500（空間データ基盤）の道路データを読み込まないようにしました。（map.LoadMap）
-- この変更で、map.MapData#{load,free}LargeRoadArcは使われなくなりました。
- 国土数値情報の道路データを読み込んでCSV形式に変換するプログラムを作りました。（ksj.ConvertRoadToCSV）
- 国土数値情報の道路データをCSV形式に変換したものを読み込んで表示するようにしました。（まだ）

2006/11/04 5.00
- 国土数値情報の標高・傾斜度3次メッシュデータを読み込んで表示するようにしました。（map.MapPanel#drawHeight）
-- 国土数値情報の標高・傾斜度3次メッシュデータ（G04-a-81-[0-9]{4}.xml、1981年度）を加工したものを同梱しています。
-- XMLファイルを読み込んでCSVファイルに保存するプログラムを作りました。（ksj.ConvertHeightToCSV）
-- CSVファイルを読み込んでPNGファイルに保存するプログラムを作りました。（ksj.ConvertHeightToPNG）
-- 定数を集めたクラスを作りました。（map.Const$Ksj$Height）
- 国土数値情報の標高・傾斜度細分メッシュデータを読み込んで表示するようにしました。
-- 国土数値情報の標高・傾斜度細分メッシュデータ（G04-b-81-[0-9]{4}.xml、1981年度）を加工したものを同梱しています。
-- 表示倍率が国土数値情報の市区町村を読み込む縮尺以上のときに細分メッシュデータを描画します。
- 数値地図2500（空間データ基盤）のデータがない市区町村を灰色で塗りつぶさずに、半透明の黒で塗りつぶすようにしました。（map.MapPanel#drawKsj）
- 背景画像の描画が変わったので、ビットマップキャッシュを再生成するようにしました。（map.Const$Bitmap）

2006/10/28 4.18
- 縮尺を変えたときに、線の太さが正しくならないことのある不具合を修正しました。（map.MapPanel）
- 文字列の表示位置を決定するクラスでソースコードの整理をしました。（map.FixAttributeLocation）
- 国土数値情報の鉄道データの駅名を描画するようにしました。（map.{MapPanel,FixAttributeLocation}）
- 広域表示で数値地図2500（空間データ基盤）の鉄道データを読み込まないようにしました。（map.LoadMap）
- 背景画像の描画が変わったので、ビットマップキャッシュを再生成するようにしました。（map.Const$Bitmap）

2006/10/22 4.17
- 国土数値情報の鉄道データ（JPGIS準拠データ）を読み込んでUTM座標に変換し、CSVファイルに保存するプログラムを作りました。（ksj.ConvertRailway）
-- 国土市数値情報の鉄道データ（N02-05.xml、2005年度、全国）を加工したものを同梱しています。
- 国土数値情報の鉄道データに関する定数をサブクラスにまとめました。（map.Const.Prefecture）
- 都道府県が国土数値情報の鉄道データを持つようにしました。（map.Prefecture）
-- 高精度の市区町村を読み込むときに曲線と駅を読み込みます。
-- 町丁目を描画するときは国土数値情報の鉄道データを描画しません。
-- 文字列の描画はできません。
- 文字サイズの設定を変えたときに、Fontのみを新たに生成するようにしました。（map.DefaultMapPreferences#setFontZoom）
- 起動時に描画が乱れることがあったので、都道府県データがnullのときには画面を白く塗りつぶすようにしました。（map.MapPanel#paintComponent）
- 描画が変わったときにビットマップキャッシュを無効にするため、接頭辞を付けるようにしました。（map.Const$BitmapCache）
-- 以前のバージョンで生成されたビットマップキャッシュは使われなくなりました。

2006/10/14 4.16
- 町丁目を塗り分けたときに、色をファイルに保存するようにしました。（map.PaintTyome）
- 町丁目を塗り分ける前に、保存されている色を読み込んで設定するようにしました。（map.PaintTyome）
- NullPointerExceptionが出ないようにしました。（map.MapPanel#draw{Shops,Cities,Isj}）
- @authorをzenjiroにしました。
- 全ての{,Linked}HashMapをConcurrentHashMapに変えました。

2006/10/09 4.15（非公開）
- 都道府県の地図を全て読み込んで塗り分けるプログラムを作ってみました。（paint.Test）
- 試験的に全ての都道府県の地図を読み込んで塗り分けてみましたが、Zip圧縮しても5.9MBあるので、あきらめました。（paint）

2006/10/07 4.14（非公開）
- 試験的にビットマップキャッシュを作ってみました。
- 同じ町丁目がビットマップキャッシュのタイルごとに違う色になってしまう不具合があります。
- 背景画像の描画と文字列の描画を別のメソッドに分けました。（map.MapPanel#drawMap)
- 地図を読み込むときにNullPointerExceptionが出ることのある不具合を修正しました。（map.LoadMap#loadMaps）
- 手抜きのExceptionをやめました。（map.{LoadMap#loadMap,PaintTyome#paintTyome,JoinPolygon#joinPolygon}）
- 未使用定数を削除しました。（map.Const${Smbc,Sej}）
- ビットマップキャッシュに関する定数を集めたクラスを作りました。（map.Const$BitmapCache）
- 町丁目の読みを読み込むメソッドをMapPanelクラスに移動しました。（map.BackGroundThread#loadYomi）
- 冗長な条件判定を削除しました。（map.MapPanel#loadYomi）
- repaint()を使わずに、同期的に再描画するようにしました。（map.MapPanel#forceRepaint）
- visibleRectangleをビットマップキャッシュのタイルに合わせて大きくしました。（map.MapPanel#getVisibleRectangle）
- 表示倍率によってビットマップキャッシュ生成の有無を切り替えるようにしました。（map.MapPanel#createBitmapCache）
- ビットマップキャッシュ生成を並行して行うようにしました。（map.BackGroundThread#run）
- 読みがなのフォントサイズを小さくしました。（Map.DefaultMapPreferences）
- ConcurrentHashMapを使うことにより、synchronizedブロックをなくしました。（Main、map.MapPanel）
- 先にフレームだけを表示することで、見かけの起動時間を短くしました。（Main、map.MapPanel）

2006/10/01 4.13
- SVGファイルを出力できるようになりました。（svgout.{SVGOut,Paintable}、map.{MainFrame,MapPanel}）
-- SVGの出力にはBatik SVG Toolkit（http://xmlgraphics.apache.org/batik/）を使用しています。
- 以下のホームページから緯度経度を抽出して地図中に表示するようにしました。（shop.Shop）
-- タイムズ（shop.LatLongTimes）
-- ツタヤ（shop.LatLongTsutaya）
-- ブックオフ（shop.LatLongBookOff）
-- 三菱東京UFJ銀行（shop.LatLongMUFJ）
-- みずほ銀行（shop.LatLongMizuho）
-- りそな銀行（shop.LatLongResona）
-- 日産レンタカー（shop.LatLongNissan）
- 2006年8月3日にユニクロのURLが変わって、店舗の位置が取得できなくなっていた不具合を修正しました。（shop.LatLongUniqlo）
- 店舗の座標をキャッシュするファイル名の接頭語に「_」をつけました。（shop.LatLong{AmPm,Famima,Lawson,SUnks,Teng,Uniqlo,YellowHat}）
- マピオンから座標を抽出する抽象クラスを作りました。（shop.LatLongMapion）
- メソッドの未使用引数を削除しました。（map.MapPanel#drawMap）
- 店舗の座標をマルチスレッドで取得するようにしました。（shop.{Shop,LatLongCallable}）
-- Java 5.0のjava.util.concurrent.Callableなどを使ってみました。
- 通信にタイムアウトを設けました。（shop.LatLong{Mapion,AmPm,BookOff,Famima,Lawson,Sunks,Teng,Times,Tsutaya,Uniqlo,YellowHat}、map.Const）

2006/08/18 4.12
- 緯度経度を指定して移動できるようにしました。（map.LoadMapPanel）
-- 「読み込み」テキストボックスに「34.6494, 135.0015」「34/38/57.9, 135/00/05.2」などと入力すれば移動できます。
-- 「tokyo: 34.6462, 135.0042」「tokyo: 34/38/46.1, 135/0/14.8」などと入力すれば、日本測地系として扱います。
- 日本測地系を世界測地系に変換するユーティリティクラスを作りました。（map.WGSUtil）
-- http://homepage3.nifty.com/Nowral/02_DATUM/Molodensky.htmlのperlスクリプトをJavaに移植したものです。
- 店舗のホームページから緯度経度を抽出するためのインターフェイスを作りました。（shop.LatLongParser）
- 以下のホームページから緯度経度を抽出して地図中に表示するようにしました。（shop.Shop）
-- ローソン（shop.LatLongLawson）
-- ファミリーマート（shop.LatLongFamima）
-- am/pm（shop.LatLongAmPm）
-- サンクス（shop.LatLongSunkus）
-- ユニクロ（shop.LatLongUniqlo）
-- イエローハット(shop.LatLongYellowHat)
-- テンアライド（shop.LatLongTeng）
-- アドレスマッチングで得られたものより位置が正確になりました。
-- マルチスレッドにしていないので、店舗の取得が遅くなりました。
- 今後経度緯度を取得する予定のお店は、以下の通りです。
-- タイムズ（一覧）
-- 三菱東京UFJ、みずほ、りそな、日産レンタカー、モスバーガー、ドトール、マクドナルド、吉野家、すかいらーく（マピオン）
-- 松屋、ココイチ（ちず丸）
-- ツタヤ（Google）
-- ブックオフ（パスコ）
- すかいらーくの店名が地図中に表示されていたので、短い表記に直しました。（shop.Skylark）
- すかいらーくグループの表記に「ジョナサン」「藍屋」を追加しました。（shop.Skylark）

2006/08/05 4.11
- 店舗の取得をマルチスレッドで行うようにし、高速化しました。（shop.Shop、shop.ShopThread）
-- ショップ99が異様に遅いので、無視することにしました。
- 郵便番号データから読みがなを検索するときに、表記揺れを吸収するようにしました。（zipcode.ZipCode）
-- [ヶケけが]、[ノ乃之の]、[冶治]、[祗祇]をそれぞれ同一視します。
-- 魚住町金ヶ崎、鍛冶屋町、東仲ノ町、上ノ丸、霞ヶ丘、桜ヶ丘町、鴨子ヶ原、琴ノ緒町、木月祇園町、井田中ノ町、市ノ坪、蟹ヶ谷などの読みがなが振られるようになりました。
- 4.10で三井住友銀行を「SMBC」と表示するように変更してしまいましたが、「三井住友」に戻しました。（shop.SMBC）
- ConvenienceをShopsに置換しました。（map.City）

2006/07/30 4.10
- みずほ銀行、りそな銀行、三菱東京UFJ銀行をコンビニとして取得するようにしました。（shop.Mizusho、shop.Resona、shop.UFJ）
- 三井住友銀行、セブンイレブンをコンビニとして取得するようにしました。都道府県別ページからたどるのではなく、市区町村ページを直接取得するようにしました。（shop.SMBC）
- 銀行関連のコードを削除しました。（map.City、map.MapPanel、map.FixAttributeLocation、map.Prefectures）
- Emap関連のコードを削除しました。（map.City、map.Emap）
- 店舗が同じ位置にあったときに、後から追加された店舗で上書きされてしまう不具合を修正しました。（map.Shop）

2006/07/29 4.09
- タイムズをコンビニとして取得するようにしました。（shop.Times)
- モスバーガーをコンビニとして取得するようにしました。（shop.Mos）
- マクドナルドをコンビニとして取得するようにしました。（shop.McDonalds）
- ミスタードーナッツをコンビニとして取得するようにしました。（shop.MisterDonut）
- すかいらーくをコンビニとして取得するようにしました。（shop.Skylark）
- 松屋をコンビニとして取得するようにしました。（map.Matsuya）
- 吉野家をコンビニとして取得するようにしました。（map.Yoshinoya）
- 駐車場、飲食店関連のコードを削除しました。（map.City、map.MapPanel、map.FixAttributeLocation、map.Prefectures）
- Convenience、ConvenienceParserの名前をそれぞれShop、AddressParserに変えました。（shop.Shop、shop.AddressParser）

2006/07/24 4.08
- CoCo壱番屋の住所をコンビニとして取得するようにしました。（shop.Cocoichi）
-- ○○市□□区を○○市に置換していたために大阪市で検索結果が増えすぎ、住所が取得できなくなっていた不具合を修正しました。（shop.Cocoichi）
-- 都道府県を指定していると神戸市灘区の検索結果が表示されないので、指定をやめました。（shop.Cocoichi）
-- 新型店舗が取得できていなかった不具合を修正しました。（shop.Cocoichi）
- ケンタッキーフライドチキンをコンビニとして取得するようにしました。（shop.KFC）
-- ホームページのデザインが変わって、住所が取得できなくなっていた不具合を修正しました。（shop.KFC）
- 現在コンビニとして取得している店舗の表示優先順位は以下の通りです。
-- ローソン→ファミマ→サンクス→am/pm→ココイチ→KFC→ダイソー→ドトール→ツタヤ→ブックオフ→ショップ99（shop.Convenience）

2006/07/22 4.07
- コンビニのホームページから住所を抽出するクラスが実装しているメソッドをインターフェイスにまとめました。（shop.ConvenienceParser）
- コンビニのホームページをダウンロードして解析する部分を独立したクラスにしました。（shop.Convenience）
- コンビニのホームページから住所を抽出するクラスを実装しました。（shop.Lawson、shop.Famima、shop.Sunkus、shop.AmPm）
- am/pmの店舗一覧URLが変わって、住所が取得できなくなっているのに気づいたので、修正しました。（shop.AmPm）
-- 接続するサーバはwww.mapion.co.jpに変わりました。
- コンビニに関しては、抽出部分がかなり楽に書けるようになりました。
- ダイソーをコンビニとして取得してみました。（shop.Daiso）
-- 接続するサーバはwww.daiso-sangyo.co.jpです。
- ドトール、エクセルシオールカフェをコンビニとして取得してみました。（shop.Doutor）
-- 接続するサーバはwww.mapion.co.jpです。
- ツタヤをコンビニとして取得してみました。（shop.Tsutaya）
-- 接続するサーバはwww.tsutaya.co.jpです。
- ブックオフをコンビニとして取得してみました。（shop.BookOff）
-- 接続するサーバはwww2.info-mapping.comです。
- ショップ99をコンビニとして取得してみました。（shop.Shop99）
-- 接続するサーバはwww.shop99.co.jpです。

2006/07/19 4.06
- 「一丁目」「二丁目」…「九丁目」を「1丁目」「2丁目」…「9丁目」に置換することで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- 「.+[0-9]+番[0-9]+号(　.+)?$」にマッチするときに「番[0-9]+号(　.+)?」を削除してみることで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
-- CoCo壱番屋のJR武蔵新城駅前店、JR武蔵中原駅前店が表示されるようになりました。
- 高精度の市区町村を描画するときは、画面中央の住所をステータスバーに表示するようにしました。（map.MapPanel）
- ステータスバーのスタックにダミーの半角スペースを入れるのをやめました。（map.MapPanel）

2006/07/18 4.05
- 読み取られない変数を削除しました。（map.MapPanel、map.FixAttributeLocation）
- マウスの左ボタンをダブルクリックすると、ダブルクリックした地点が画面の中央になるように地図を平行移動するようにしました。また、詳細図以外のときは、1レベル細かい情報が表示される縮尺に拡大するようにしました。（map.MapPanel）
- マウスの右ボタンをダブルクリックすると、1レベル荒い情報が表示される縮尺に縮小するようにしました。（map.MapPanel）

2006/07/17 4.04
- タイムズ（http://www.times-info.net/）の住所を取得して描画するようにしました。（shop.Times）
-- 接続するサーバはmap.times-info.netです。
-- ページをめくるのがJavaScriptで、よく分からなかったので、1つの市区町村では最初に表示される20件しか取得できません。

2006/06/25 4.03
- Fedora Core 5で、さざなみゴシックやM+とIPAフォントの合成フォントを表示したときに、アンチエイリアスなしでは見苦しすぎるので、アンチエイリアスをかけることにしました。
-- フォント関係の定数を集めたクラスを作りました。（map.Const.Fonts）
-- 今まではKochi GothicやKochi Minchoがあるか調べていましたが、やめました。（map.Const）
-- MS UI Gothicがないときは地図の文字列にアンチエイリアスをかけるようにしました。（map.MapPanel）
- 検索テキストボックスとボタンの間が白くなっていた不具合を修正しました。（map.LoadMapPanel、map.IsjPanel、map.SearchPanel）

2006/03/12 4.02
- 読みが漢字と離れた位置に描画されることのあった不具合を修正しました。（map.FixAttributeLocation）
- みずほ銀行（http://www.mizuhobank.co.jp/）の店舗情報を取得して表示するようにしました。（shop.Mizuho）
-- 接続するサーバはvip.mapion.co.jpです。
-- 住所中の「—」を「-」に置換することで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- りそな銀行（http://www.resona-gr.co.jp/resonabank/）の店舗情報を取得して表示するようにしました。（shop.Resona）
-- 接続するサーバはwww.mapion.co.jpです。

2006/03/12 4.01
- ステータスバーを表示するようにしました。（map.MainFrame）
-- 画面が狭くなりました。すみません。
-- MapPanelがステータスバーに表示するメッセージを持つようにしました。（map.MapPanel）
- デバッグメッセージをコンソールに表示しないようにしました。（map.MapPanel）
- マクドナルドの住所が取得できなくなっていた不具合を修正しました。（shop.McDonalds）
- 場所がもったいないので、吉野家を吉牛にしました。（shop.Yoshinoya）

2006/03/10 4.00
- 昭文社のでっか字まっぷでは全ての町丁目に読みがなが振ってあって便利だったので、このソフトでも読みがなを付けるようにしました。
-- 「ノ」「の」「ケ」「ヶ」「が」などの表記揺れを吸収していないので、一部読みがなが振られません。
-- 読みがなは街区番号より優先して配置しています。
- 郵便番号データ（http://www.post.japanpost.jp/zipcode/download.html）を読み込むパッケージを作りました。（zipcode）
-- 郵便番号データを加工したものを同梱するようにしました。
- PolygonDataが読みと読みの描画位置を持つようにしました。（map.PolygonData）
- 全ての情報が描画されているときには、町丁目の読みを描画するようにした。（map.MapPanel）
- 半角カタカナを平仮名に置換するプログラムを作りました。（zipcode.Hiragana）

2006/03/09 3.19
- 市区町村を指定して地図を読み込んだときに、まず道路と鉄道が表示され、しばらく経ってから駅と文字列が表示される不具合を修正しました。
-- map.MapData#getOthers()を呼び出す前にmap.MapData#hasOthers()で調べるようにしました。（map.MapPanel）
-- map.MapData#getLargeRoadArc()を呼び出す前にmap.MapData#hasLargeRoadArc()で調べるようにしました。（map.MapPanel）
-- 最初は、国土数値情報の細かい市区町村界と、数値地図2500の道路、鉄道、駅、文字列が同時に表示されるようになりました。
-- 同じ都道府県内を市区町村名の検索によって移動した場合、国土数値情報はすぐに表示され、その後道路、鉄道、駅、文字列が同時に表示されます。
- 地図の状態が変化したときに、強制的に文字列を再配置することで、画面の一部分に文字列が描画されない不具合を修正しようとしましたが、まだ完全ではありません。（map.BackGroundThread）
- マウスを離したときにmap.MapPanelが勝手に自分を再描画しないようにすることで、画面の一部分に文字列が描画されない不具合を修正しました。（map.BackGroundThread、map.MapPanel）
-- 余分に再描画されることが増えました。
- 同期を厳しめにしました。（map.BackGroundThread）
- 手抜きのExceptionをなくしました。（map.JoinTatemono）

2006/03/09 3.18
- 町丁目の境界色を濃くしました。（map.DefaultMapPreferences）
- 地図を読み込んだときに文字列が描画されないことのある不具合を修正しようとしましたが、原因が特定できず、諦めました。パネルをクリックすると正しく描画されます。
- 三菱東京UFJ銀行を取得できるようにしました。1つの市区町村内では20店舗しか表示されません。（shop.UFJ、map.City）

2006/02/26 3.17
- タブ文字を半角空白に置き変えました。（history.txt）
- 地図を読み込むスレッドをjavax.swing.Timerからjava.util.Timerに変え、ダウンロード中にも操作ができるようにしました。（map.BackGroundThread）
- java.util.ConcurrentModificationExceptionが発生したときに無視していたのをやめました。（map.BackGroundThread）
- ロックをかけることにより、ダウンロード中に操作をしてもjava.util.ConcurrentModificationExceptionが発生しないようにしました。（map.MapPanel、map.BackGroundThread）
- マウスポインタを砂時計にしないようにしました。（map.BackGroundThread）

2005/12/10 3.16
- セブンイレブンとファミリーマートを同じリストに格納するようにしました。（map.City）
- emapとfamimaをまとめました。（shop）
- ローソンの住所を取得するクラスを作りました。（shop.Lawson）
- サークルK、サンクスの住所を取得するクラスを作りました。（shop.Sunkus）
- 「番地の[0-9]+$」を取り除いてみることで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- am/pmの住所を取得するクラスを作りました。（shop.AmPm）
- UFJ銀行の住所を取得するクラスを作りました。（shop.UFJ）
- 銀行を同じリストに格納するようにしました。（map.City）
- 「番地$」を取り除いてみることで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- 駅の近くにある建物が表示できないのがいやなので、属性描画位置の計算順序を変えてみましたが、セブンイレブンに邪魔されて阪急三ノ宮駅が表示されなくなるのでやめました。（map.FixAttributeLocation）
- マクドナルドの住所を取得するクラスを作りました。（shop.McDonalds）
- モスバーガーの住所を取得するクラスを作りました。（shop.Mos）
- 「‐」を「-」に置換することで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- ミスタードーナッツの住所を取得するクラスを作りました。（shop.MisterDonut）
- ケンタッキーフライドチキンの住所を取得するクラスを作りました。（shop.KFC）
- 正規表現を使わずに、ファイル名を指定して読み込むことができるようにしました。（ksj.LoadKsj）
- 店舗の座標を置くキャッシュディレクトリの場所を「.map/shops」に変更しました。（shop.*、map.Const）
- ガスト、バーミヤン、夢庵、すかいらーくの住所を取得するクラスを作りました。（shop.Skylark based on shop.AmPm）
- 「セブイレ」を「セブン」に変えました。（map.City）
- 「マクド」を「マック」に変えました。（shop.McDonalds）
- CoCo壱番屋の住所を取得するクラスを作りました。（shop.Cocoichi based on shop.AmPm）
- 吉野家の住所を取得するクラスを作りました。（shop.Yoshinoya based on shop.Famima）
- 現在地図に表示されるお店は、以下の通りです。
-- 銀行
--- 三井住友銀行（http://www.smbc.co.jp/）
--- UFJ銀行（http://www.ufjbank.co.jp/）
-- コンビニ
--- セブンイレブン（http://www.sej.co.jp/）
--- ローソン（http://www.lawson.co.jp/）
--- ファミリーマート（http://www.family.co.jp/）
--- サンクス、サークルK（http://www.sunkus.co.jp/）
--- am/pm（http://www.ampm.co.jp/）
-- 飲食店
--- マクドナルド（http://www.mcdonalds.co.jp/）
--- モスバーガー（http://www.mos.co.jp/）
--- ケンタッキーフライドチキン（http://www.kfc.co.jp/）
--- ガスト、バーミヤン、夢庵、すかいらーく（http://www.skylark.co.jp/）
--- CoCo壱番屋（http://www.ichibanya.co.jp/）
--- 吉野家（http://www.yoshinoya-dc.com/）
--- 松屋（http://www.matsuyafoods.co.jp/）

2005/12/04 3.15
- 座標変換済みの街区レベル位置参照情報をキャッシュとして保存することにより、読み込みを高速化しました。（isj.ISJUtil）
- LoadMapをLoadKsjに変えました。（ksj.LoadKsj）
- キャッシュディレクトリが存在しない場合に国土数値情報（行政界・海岸線）を読み込めない不具合を修正しました。（map.Prefectures）
- 座標変換済みの国土数値情報（行政界・海岸線）をキャッシュとして保存することにより、読み込みを高速化しました。（ksj.LoadKsj）
- （メモ）ここら辺の改良でだいぶましになったなー。後は2500の座標変換済みキャッシュかな…。

2005/12/04 3.14
- 文字の大きさや塗り分けの彩度を変えたときに再描画されない不具合を修正しました。（map.MapPanel）
- 描画時に縮尺をチェックすることにより、本来数値地図2500が描画されるべきでない縮尺で描画されてしまう不具合を修正しました。（map.MapPanel）
-- これでも不十分でした。
- 属性配置位置を決定するときに縮尺をチェックすることで、「Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space」とならないようにしました。（map.FixAttributeLocation）

2005/12/03 3.13
- ファミリーマートの住所を取得するクラスを作りました。（famima.Famima）
- 街区レベル位置参照情報を読み込んだ直後に住所を整形するようにしました。（map.ISJUtil）
- ファミリーマートの住所をダウンロードしてアドレスマッチングを行い、表示できるようになりました。（famima.Famima）
- アドレスマッチングをするメソッドを移動しました。（isj.ISJUtil）
- 字を取り除いてみることで、アドレスマッチングの精度を向上させました。（isj.ISJUtil）
- 三井住友銀行の支店、出張所のみを取得するようにしました。（emap.Smbc）
- パターンをループの外に出しました。（emap.Smbc、emap.Sej、famima、Famima、isj.ISJUtil）

2005/12/03 3.12
- セブンイレブンをセブイレに、三井住友銀行を三井住友にしました。（map.City)
- タイプセイフにしました。（map.FixAttributeLocation、map.MapData）
- マウスドラッグ中はアンチエイリアス表示しないようにしました。
- アンチエイリアスなしで表示したときに美しくなるように、道路の輪郭線を太くし、色を薄くしました。また、町丁目界の色を薄くしました。（map.DefaultMapPreferences）
- 街区レベル位置参照情報関連のパッケージを作り、街区レベル位置参照情報を取得するメソッドを独立させました。（isj.ISJUtil）

2005/12/02 3.11
- 三井住友銀行、セブンイレブン関連のパッケージをまとめました。（emap）
- 三井住友銀行とセブンイレブンの共通部分をインターフェイスにしました。（emap.Emap）
- セブンイレブンの住所をダウンロードしてアドレスマッチングを行い、表示できるようになりました。（emap.Emap）

2005/11/28 3.10
- ファイルから三井住友銀行の住所を読み込んで座標に変換し、描画できるようになりました。（map.City#loadSmbc）
- アドレスマッチングで必要なので、Cityクラスが都道府県名を持つようにしました。（map.City）
- 三井住友銀行関連のパッケージを作りました。（smbc）
- 三井住友銀行の住所をダウンロードしてアドレスマッチングを行い、表示できるようになりました。（smbc.SMBC）

2005/11/28 3.09
- 街区レベル位置参照情報に平成16年のデータがない場合は平成15年のものを取得するようにしました。（map.City、map.Const）
-- 兵庫県氷上郡氷上町（現在は兵庫県丹波市）、兵庫県養父郡八鹿町（現在は兵庫県養父市）、岐阜県羽島郡川島町（現在は岐阜県各務原市）などの番地が表示されるようになりました。
- map.LoadMapPanelで市区町村名を指定して数値地図2500（空間データ基盤）を読み込んだときに、市区町村の大きさによってはせっかく読み込んだデータが捨てられることがあった不具合を修正しました。（map.LoadMapPanel）
-- 数値地図2500（空間データ基盤）を読み込む縮尺に変更するので、指定した市区町村が全て表示されない場合があります。

2005/11/27 3.08
- 三井住友銀行、セブンイレブンの住所を取得するプログラムを作ってみました。（SMBC、SEJ）
-- まだ表示できません。
- 試験的に、街区レベル位置参照情報をダウンロードするようにしてみました。（map.City）
-- 点の数が多いので、読み込みにかなり時間がかかります。
- 街区レベル位置参照情報に関する定数を集めたクラスを作りました。（map.Const.Isj）
- 街区レベル位置参照情報を検索するパネルを作ってみました。（map.IsjPanel）
- 街区レベル位置参照情報から得られた番地を地図に描画するようにしました。（map.MapPanel、map.FixAttributeLocation）
-- ごちゃごちゃしました。
- 全てのデータを表示する表示倍率を変更しました。（map.Const、map.MainFrame）

2005/11/26 3.07
- 表示倍率関係の定数を内部クラスにまとめました。（map.Const）
- 画面の解像度（dpi）を取得するようにしました。（map.Const）
- 情報の精度が切り替わる縮尺を変更しました。（map.Const）
- 以前の「広域表示」を「中域表示」にし、「広域表示」で数値地図2500（空間データ基盤）が表示される最小の表示倍率にするようにしました。（map.MainFrame）
- 表示倍率を変更するメニューアイテムに縮尺を表記するようにしてみました。（map.MainFrame）
- 地図を描画するパネルがフォーカスを持てるようにしました。（Main）
- printBitmapをprintRasterに変えました。（map.MapPanel）
- アンチエイリアスの設定をdrawMapの呼び出し側に移動させました。（map.MapPanel）

2005/11/26 3.06
- 描画高速化の準備として、裏Imageを持つのをやめました。（map.MapPanel）
-- 拡大縮小時のプレビューがなくなりました。（map.MapPanel）
- フィールドneedsRepaint、isIdle、isCancel、isBusy、isZoomChangedをなくしました。（map.MapPanel）
- ラベル配置を別のスレッドで行うのをやめ、map.MapPanel#drawMapで行うようにしました。（map.BackGroundThread）
-- map.MapPanel#drawMapがIOExceptionを吐くようになりました。
- 手抜きのExceptionをなくしました。（map.FixAttributeLocation）
- ConcurrentModificationExceptionが出ないように、this.maps.values()のコピーをとってから描画するようにしてみましたが、変わらないのでやめました。（map.MapPanel#drawMap）
- フィールドをいろいろ減らしました。（map.MapPanel）
- drawMapがboolean値を返すようにし、ConcurrentModificationExceptionなどによる描画途中の美しくないもの見せないようにしてみましたが、真っ白になるのでやめました。（map.MapPanel）
- image、isChangedを復活させました。（map.MapPanel）
- ConcurrentModificationExceptionが出ないように、地図を読み込むスレッドの代わりにjavax.swing.Timerを使うようにしてみました。（map.BackGroundThread）
-- 地図を読み込んでいる間に操作ができなくなりました。
- 地図を読み込んでいる間、マウスポインタを砂時計にするようにしました。
- 起動直後に日本地図が表示されない不具合を見つけました。
-- フレームを表示してからパネルを強制的に再描画することにより、修正しました。（Main）

2005/11/18 3.05
- 拡大縮小時にRenderingHints.VALUE_INTERPOLATION_BILINEARを適用することで、プレビューを滑らかにしました。（map.MapPanel）
-- 拡大縮小が重くなりました。

2005/11/15 3.04
- 国土数値情報の都道府県界や市区町村界が表示倍率に関わらず常に同じ太さで描画されるようにしました。（map.MapPanel）

2005/11/15 3.03
- テストプログラムを削除しました。（DownloadTest、ZipTest）
- [Ctrl]+[+]の拡大率が[Ctrl]+[-]の縮小率よりも小さいのが気持ち悪いので、縮小表示のときほどホイールに敏感に反応させていた処理をやめました。（map.MapPanel）
- 最大の表示倍率を1にしました。（map.MapPanel）
- 左側のパネルで市区町村名を指定して地図を読み込んだときに、日本全体が2度と表示できなくなる不具合を修正しました。（map.MapPanel）

2005/11/14 3.02
- 国土数値情報を自動的にダウンロードするテストプログラムを作りました。（DownloadTest）
- ZIPファイルを展開するテストプログラムを作りました。（ZipTest）
- 定数を階層的に整理しました。（map.Const）
- SEPARATORをなくしました。（map.Const）
- 国土数値情報から必要な都道府県の行政界・海岸線をダウンロードするようにしました。（map.Prefecture、map.Prefectures、ksj.LoadMap）
-- 市区町村界を同包しなくて済むようになったので、配布ファイルの容量が小さくなりました。
-- 国土数値情報を読み込むたびにUTM座標に変換しているので、以前よりも読み込みが遅くなりました。
- 「同胞」を「同包」に修正しました。（history.txt）

2005/11/14 3.01
- 高精度のデータを読み込むべき表示倍率なのに荒い市区町村が表示される不具合を修正しました。（map.Prefectures）

2005/11/12 3.00
- 表示されている範囲内の数値地図2500（空間データ基盤）を自動ダウンロードできるようになりました。（map.Prefectures、map.LoadMap）
-- 日本地図を拡大するだけで読み込めるようになりました。
-- スクロールで日本中に移動できます。
- 複数の都道府県の市区町村を指定したときに正しく読み込めるようにしました。（map.LoadMapPanel）
-- 尼崎市と大阪市西淀川区を読み込むと、町丁目ポリゴンが海に上書きされる不具合が見つかりました。
- 文字列配置位置の再計算を背景スレッドに要求するためのリスナを取得できるようにしました。（map.MapPanel）
- 地図の読み込み後に文字列配置位置の再計算を要求するようにし、2.31の不具合を修正しました。（map.LoadMapPanel）
- URLを指定して地図を読み込むメソッドを抽出し、LoadMapクラスに移動しました。（map.LoadMapPanel）
- 高精度の領域と市区町村を一元化しました。（map.Prefecture）
- 先に海を描画するようにしました。（map.MapPanel）
-- 尼崎市と大阪市西淀川区を読み込んだときの不具合が修正されました。
- 国土数値情報の行政界・海岸線を加工したものを同包しています。（N03-11A-2K_01.txt〜N03-11A-2K_47.txt、平成11年、全国）

2005/11/12 2.32
- いろいろ復活させました。
- 高精度の市区町村の一覧のファイル名をcities_fine_[0-9][0-9].csvに変えました。
- 荒い市区町村のデータも読み込むようにしました。（map.City）
- 高精度の市区町村のデータがあればそちらを描画するようにしました。（map.MapPanel）
- （メモ）配布ファイルの容量が11MBになってもうた。これじゃ誰も落としてくれへんな…。
- （メモ）そのうち、高精度の市区町村はネットから落とすようにしよう。
- 国土数値情報の行政界・海岸線を加工したものを同包しています。（N03-11A-2K_01.txt〜N03-11A-2K_47.txt、平成11年、全国）

2005/11/11 2.31
- 国土数値情報の行政界・海岸線からリンク中間点を読み込めるようになりました。（ksj.LoadMap）
-- 全ての荒い都道府県界がprefectures.csv、1つの細かい都道府県界がprefecture_[0-9][0-9].csv、都道府県内の細かい市区町村の一覧がcities_[0-9][0-9].csvです。
- 市区町村を読み込むときに、高精度の都道府県界も読み込むようにしました。（map.Prefecture、map.Prefectures）
- 高精度の都道府県界があれば荒い都道府県界を描画しないようにしました。（map.MapPanel）
- 最初に地図を読み込んだときに、駅名などが表示されないことのある不具合が見つかりました。
- 国土数値情報の行政界・海岸線を加工したものを同包しています。（N03-11A-2K_01.txt〜N03-11A-2K_47.txt、平成11年、全国）

2005/11/10 2.30
- いろいろ消しました。
- 国土数値情報関連のパッケージを作りました。（ksj）
- 国土数値情報の行政界・海岸線を読み込んで緯度経度をUTM座標に変換し、テキストファイルに保存してみました。（ksj.LoadMap、ksj.ShapeIO）
- 都道府県の領域を管理するクラスを作りました。（map.Prefecture）
- 都道府県界と海岸線を描画できるようになりました。（map.MapPanel）
- 1つの都道府県を管理するように設計を変更しました。（map.Prefecture）
- 1つの市区町村を管理するクラスを作りました。（map.City）
- 数値地図2500（空間データ基盤）が読み込まれていないときは最大、最小の座標を日本全体のものにするようにしました。（map.MapPanel）
-- 起動直後に日本地図が表示されるようになりました。
-- Ctrl+0を押すと、詳細図がないときは日本全体、詳細図があるときは詳細図の全範囲が表示されます。
- 都道府県を塗り分けるようにしました。（map.MapPanel）
-- 2.29の彩度が反映されます。
- 都道府県に関するユーティリティクラスを作りました。
- 必要に応じて市区町村界の情報を読み込み、表示できるようになりました。（map.Prefectures、map.Prefecture、map.City）
-- まだ都道府県名や市区町村名を表示することはできません。
-- まだ自動ダウンロードもできません。
-- 国土数値地図の荒いデータしか読み込んでいないので、数値地図2500（空間データ基盤）と重ね合わせたときに海に駅が描画されます。
- 数値地図2500（空間データ基盤）のデータがあるかどうかを調べて市区町村に持たせました。（map.Prefecture、map.City）
-- 市区町村を読み込むたびにURLの一覧にアクセスするので、遅いです。
- 数値地図2500（空間データ基盤）のデータがない市区町村を灰色で塗りつぶしてみました。（map.MapPanel）
- 国土数値情報の行政界・海岸線を加工したものを同包しています。（N03-11A-2K_01.txt〜N03-11A-2K_47.txt、平成11年、全国）

2005/11/05 2.29
- コマンドラインオプション（-Dswing.aatext=true）でできることが分かったので、アンチエイリアスをやめました。（map.SidePanel、map.LoadMapPanel、map.SearchPaenl、map.MainFrame）
- 彩度を調整できるようにしました。（map.MainFrame、map.MapPanel）
-- 設定の保存はできないので、起動するたびに彩度がリセットされます。
-- 町丁目の色しか変わりません。
-- 一旦RGBからHSBに変換し、再びRGBに戻しているので、遅いです。
- incrementFontSize、decrementFontSizeをincreaseFontSize、decreaseFontSizeに変えました。（map.MapPanel）
- @Override注釈をつけました。（map.ArcData、map.BackGroundThread、map.LoadMapPanel、map.MainFrame、map.MapData、map.MapPanel、map.PointData、map.PolygonData、map.PrintUtil、map.SearchPanel、search.CellSearch）
- フィールドを隠すローカル変数をなくしました。（map.LoadMapPanel、map.MapPanel）
- JPaenl#paintComponent(Graphics)をオーバーライドするようにしました。（map.MapPanel）
- 未使用変数を削除しました。（map.LoadMapPanel、map.SearchPanel、map.SidePanel）

2005/11/03 2.28
- GUI部品にアンチエイリアス表示をかけました。（map.SidePanel、map.MainFrame）
-- テキストボックスでカーソル位置や選択範囲がおかしくなる不具合があります。
- 未使用変数を削除しました。（map.FixAttributeLocation、map.MapData、map.MapPanel）

2005/10/22 2.27
- 座標系をUTM座標にしました。（map.MapData）
-- 平面直角座標を緯度経度に変換してUTM座標に変換するので、地図の読み込みが更に遅くなりました。
-- 緯度経度を直接描画するのに比べて長さが正確になり、角度の歪みも減りましたが、北が真上でなくなりました。
- UTM座標に関するユーティリティクラスを作りました。（map.UTMUtil）
- LONGTITUDE_ZOOM、LATITUDE_ZOOMをなくしました。（map.Const）
- longtitudeをlongitudeに修正しました。（map.JasmineUtil）
- 戻り値を（経度、緯度）に変更しました。（map.JasmineUtil#toLatLong）
- Shift+Ctrl+Altを押しながらマウスを移動したときにUTM座標が表示されるようにしました。（map.MapPanel）
- 札幌市のために「１０丁目」から「３０丁目」を「10」から「30」に、「丁目$」を「」に置換するようにしました。（map.MapData）
- 属性がnullのときにjava.lang.NullPointerExceptionが出ないようにしました。（map.SearchPanel）

2005/10/15 2.26
- 地図をマウスでドラッグしたときに、新しく表示される部分の背景地図を描画するようにしました。（map.MapPanel）
- 手抜きのExceptionをなくしました。（map.MapData）
- 2.25でデバグのために海を描画しないようにしていたままリリースしていた不具合を修正しました。（map.MapPanel）
-- 座標系を変えた影響で図葉のすき間に海が描画される不具合が見つかりました。
- MapDataが外接長方形ではなくShapeを持つようにし、海が陸地に描画される不具合を修正しました。（map.MapData）
- 座標系を変えた影響で図郭にまたがるポリゴンの一部が結合されなくなる不具合が見つかりました。
-- 逆向きの線分もedgePolygonsに追加することでとりあえず修正しました。（map.MapData）
- 「1つの座標を」を「座標を」に修正しました。（history.txt）
- 「城地」を「場地」に修正しました。（history.txt）

2005/10/15 2.25
- DANGANさんのライセンスを同包するのを忘れていたので、同包するようにしました。すみません。（dangan_licence.txt）
- JasmineSoftさんの座標変換クラスライブラリを使って座標系を変換するユーティリティクラスを作りました。（map.JasmineUtil）
- 座標を読み込んだときに緯度経度を定数倍したものに変換するようにしました。（map.MapData）
-- 後々他のデータと重ね合わせるときに座標が緯度経度の方が楽なのと、座標系の違う都道府県を同時に表示したいので、変えました。
-- だいたいメートルに近くなるように拡大していますが、不正確になりました。
-- 座標を読み込むたびに変換するので、地図の読み込みが遅くなりました。
- Shift+Ctrl+Altを押しながらマウスを移動したときに緯度経度が表示されるようにしました。（map.MapPanel）

2005/10/11 2.24
- 建物、場地、公園、内水面、駅名も検索できるようにしました。（map.MapData）
- 検索に正規表現を使えるようにしました。（map.SearchPanel、map.LoadMapPanel）
- 複数の都道府県の市区町村を読み込むように指定したときに発生していた例外を無視するようにしました。（map.LoadMapPanel）
- 幼稚園を幼に置換するようにしました。（map.MapData）

2005/10/10 2.23
- 検索用のパネルを作りました。（map.SidePanel、map.SearchPanel）
- MapDataクラスが属性と代表点の一覧を持つようにしました。（map.MapData）
- デバグのために、Shift+Ctrl+Altを押しながらマウスを移動すると地図の仮想座標が表示されるようにしました。（map.MapPanel）
- 少しだけExceptionをIOException、NumberFormatExceptionに変えました。（map.MapData）
- 読み込むように指定した地図のみを表示するようにしました。（map.LoadMapPanel）
- 町丁目名を検索して移動できるようになりました。検索文字列が描画されない場合があります。（map.SearchPanel、map.MapData、map.MapPanel）

2005/10/04 2.22
- 地図の拡大、縮小をメニューから行えるようにしました。（map.MainFrame、map.MapPanel）
- 地図のスクロールをメニューから行えるようにしました。（map.MainFrame、map.MapPanel）
- メニューの階層を浅くしました。（map.MainFrame）
- >を>=に変えました。（map.LoadMap）
- 印刷できるようにしました。（map.MainFrame、map.PrintUtil）

2005/10/03 2.21
- 文字の大きさを変えられるようにしました。（map.MainFrame、map.MapPanel、map.FixAttributeLocation、DefaultMapPreferences、MapPreferences）
-- これで目の悪い人でも地図が見えるようになりました。
-- メニューのアクセラレータキーやショートカットキーは暫定的なものです。
-- 文字の大きさを大きくするショートカットキーが日本語キーボード以外で操作できないかもしれません。
-- 現在はFirefoxに合わせてCtrl++で拡大、Ctrl+-で縮小、Ctrl+0で初期値にしていますが、地図の拡大縮小に割り当てるつもりです。
-- 文字の大きさは終了時に忘れます。
- 背景スレッドに再計算を要求するためにアクションリスナを使うことにしました。（map.MapPanel、map.BackGroungThread）
- ラベル配置を行うクラスにフォントが直書きされていたのを直しました。（map.FixAttributeLocation）
- メニューの「終了」アイテムにショートカットキーを与えました。（map.MainFrame）
- 「消えてしまいまった」を「消えてしまった」に修正しました。（history.txt）

2005/09/27 2.20
- 全域表示のときに市区町村界を描画してみましたが、海岸線が描画できないのでやめました。（map.MapPanel）
- Areaを使わずに属性配置を行うことで高速化しました。（map.FixAttributeLocation）
- 全画面表示しようとしましたが、無理でした。（map.MainFrame）

2005/09/20 2.19
- sidepanelパッケージをなくしてmapパッケージに統合しました。（sidepanel.LoadMapPanel、sidepanel.SidePanel）
- 逆向きのパスをキャッシュするようにしました。（map.ArcData）
- パスを直線にしたものも持つようにしました。（map.ArcData）
- 試しに鉄道を直線で描画してみると、ポートライナーが消えてしまったのでやめました。（map.MapPanel）
- 高速道路、国道、主要地方道の弧データ持つようにしました。（map.MapData）
- 全域表示と広域図のときに高速道路、国道、主要地方道を読み込んで描画するようにしました。広域図では直線で描画します。（map.MapPanel、map.LoadMap）
- 全域表示のときに長方形を描画するのをやめました。（map.MapPanel）
- 表示されていない部分の駅データが開放されていなかったのを修正しました。（map.LoadMap）
- まだ「separatedPath.length == 4」が残っていたので直しました。（map.LoadMapPanel）
- 展開が終了するとファイルに記録するようにし、無駄な展開をなくしました。（map.LoadMapPanel）

2005/09/17 2.18
- サイドパネルの大きさを変えられるようにしました。（map.MainFrame）
- コンポーネント間のすき間を狭くしました。（map.Const）
- 背景色を指定するのをやめました。（sidepanel.SidePanel、map.MainFrame）
- サイドパネルの最小サイズを0×0にしました。（map.MainFrame）
- いろいろfinalをつけました。（map.MainFrame）

2005/09/16 2.17
- yuさんにご指摘いただいた、「サーバ上のデータの存在する階層の深さを直書ききめ打ち」していた部分を修正しました。（sidePanel.LoadMapPanel）
- 「yuさんにご指摘いただいた」の記述を追加しました。（history.txt）
- 「○」を「*」に変えました。（history.txt）
- 「This file is written in UTF-8.」の記述を削除しました。（history.txt）

2005/09/15 2.16
- CellSearchクラスをsearchパッケージに移動しました。（cell.CellSearch）
- 地図データのあるURLを2箇所で指定していたのを1箇所にまとめました。（web.WebUtilities）
- 不要なキャストをなくしました。（map.ArcData、map.JoinPolygon、map.LoadMap、map.MapPanel）
- フレームの配置をOSが制御できるようにしました。（map.MainFrame）
- SwingのLook & FeelをOceanからOSデフォルトのものに変えました。Linuxではどっちにしろ限りなくダサいけど、Windows XPなら少しだけましに見えます。（map.MainFrame）
- GridBagLayoutを使うようにして、少しレイアウトを改善しました。（sidepanel.LoadMapPanel）
- コンポーネント間のすき間を狭くしました。（map.Const）
- 行頭記号を「-」に変えました。（history.txt）

2005/09/13 2.15
- SWTを使うのをやめました。
- アプレット版をやめました。
- 自宅サーバにデータのコピーを置くのをやめました。
- 不要なキャストをなくしました。
- MS UI Gothic→Kochi Gothic、ＭＳ Ｐ明朝→Kochi Minchoの順にフォントを探すようにしました。

2005/05/29 2.14
- SWT版を公開しました。
- SWT版ではファイルへの出力ができません。
- Windows版では描画がちらつきます。
- Windows用のパッケージを作りました。
- Linux用の簡易インストーラを作りました。
- SWT版で、地図を読み込んだときにスクロールバーの値が初期化されない不具合を修正しました。
- SWT版で、メニューから終了を選んだときに終了するようにしました。
- SWT版で、起動時に市区町村を検索するテキストボックスにフォーカスを与えるようにしました。
- SWTのテストを行うプログラムを作りました。

2005/05/22 2.13（非公開）
- SWT版でサイドパネルから地図の検索ができるようになりました。
- （メモ）そろそろクラスを整理した方が良さそうです。

2005/05/15 2.12（非公開）
- SWT版で何とか地図が動かせるようになりました。
- 地図の横にスクロールバーをつけざるを得ませんでした。
- ツールバーに手のひらツールと虫眼鏡ツールを置き、実装しました。
- 虫眼鏡ツールかスクロールバーを使えば、ホイールのないマウスでも操作できるようになりました。
- （現状）サイドパネルが機能していないので、地図の検索、ダウンロードはできません。
- （現状）メニューが機能していないので、ファイル出力ができません。
- （現状）ビットマップの再利用をしていないので、地図の移動や縮尺変更の操作感が良くありません。
- （メモ）やっぱSWTはかっこいい！EclipseとNetbeansくらい見た目が違う。
- （メモ）ビットマップの再利用できてなくても、検索ができるようになった時点で公開しようかなー。
- （メモ）とりあえず、シェルスクリプトとバッチファイルで公開かなー。
- （メモ）動作確認できないので、Macは対応OSから外そうかなー。

2005/05/15 2.11（非公開）
- SWT版で地図が表示できるようになりました。縮尺変更や移動はできません。
- 地図を読み込むスレッドにSWTのウィンドウを渡すようにしました。

2005/05/14 2.10（非公開）
- サイドパネルを表示するようにしたら、Swingが格好悪すぎてやってられないので、SWT版を作りはじめました。
- SWT版のウィジットのみが表示されるようになりました。
- SWT版でGraphics2Dが描画できるようになりました。

2005/05/13 2.00
- 市区町村名を指定して地図を検索し、国土地理院のホームページからダウンロードして表示できるようになりました。
- 地図を検索して読み込むGUI部品を作りました。
- デフォルトの地図データディレクトリがないときにエラーを表示しないようにしました。
- キャッシュディレクトリにある地図全てを表示するのではなく、リストで指定された市区町村のみを表示するようにしました。
- キャッシュディレクトリの場所を起動したディレクトリ直下の .map/cache に変更しました。
- ウィンドウの大きさを640x480に変更しました。
- 地図を表示するパネルのコンストラクタに地図を渡すようにしました。
- バックグラウンドで地図を読み込むスレッドで、地図の枚数が変化したときに地図を再び読み込むようにしました。
- バックグラウンドで地図を読み込むスレッドで、地図を読み込んでいるときのConcurrentModifinationExceptionを無視するようにしました。

2005/05/07 1.19（非公開）
- 地区町村名と地図データのURLの対応表を作りました。
- 対応表をもとに、コマンドラインから検索語を指定して、ネットから圧縮ファイルをダウンロードできるようになりました。
- ダウンロードしたファイルは、プログラムを起動したディレクトリ以下にcacheという名前のディレクトリを作り、その下に置かれます。
- 既に圧縮ファイルがキャッシュに存在してファイルサイズが等しい場合、重複してダウンロードをしないようにしました。
- 検索に引っかかった圧縮ファイルを展開できるようになりました。
- LHA展開のライブラリとしてMichel Ishizukaさんの LHA Library for Javaを使っています。
- （現状）java Test 神戸市 && java Main cache/hyougo を実行すると、キャッシュにある兵庫県の地図が見られます。
- （メモ）作ってみて気付いたけど、例えば兵庫県全域がダウンロードされているときに神戸市全体を表示するための工夫が必要やな。（実装済み）
- （予定）ダウンロードした市区町村（のうち1つ）がちょうど収まる縮尺を調べて地図を表示するようにする。結構しんどそう。（実装済み）
- （予定）GUIで検索する仕組みがないとWindowsの人が使えないので、なんとかする。（実装済み）
- （予定）キャッシュの場所を変える。起動ディレクトリに .map/cache とかでいいかな？（実装済み）
- （メモ）そのうち .map/map.ini とかを作りたいし。
- （メモ）Windowsの人が嫌がると思うので、ホームディレクトリは使いたくない。
- （メモ）Linuxの人には悪いけど、Eclipseみたいに、起動したディレクトリにキャッシュとか設定ファイルを置くディレクトリを作るようにします。

2005/05/06 1.18
- 倍率変更時にプレビュー画像を表示するようにし、操作感を改善しました。
- 画面の裏描画中にマウスホイールを操作すると描画を中止することにより、操作感を改善しました。
- 画面の裏描画中に砂時計が表示されるようにしました。
- 危険なキャストをなくしました。

2005/05/05 1.17
- 政令指定都市の区界を描画するようにしました。
- 駅名が表示できないときに、駅の点も表示されない不具合を修正しました。

2005/05/03 1.16
- アプレットのときはネットワークモードに、アプリケーションのときはオフラインモードにしました。

2005/05/03 1.15（非公開）
- 初期状態よりも広域の表示にならないようにしました。

2005/05/03 1.14（非公開）
- 茨城県を表示したときに、文字列が重なって表示される不具合を修正しました。
- ネットワークのアプリケーション版で、コマンドライン引数を短くしました。

2005/05/03 1.13（非公開）
- アプレット版で、URLに引数を設定することでデータディレクトリを指定できるようにしました。

2005/05/03 1.12（非公開）
- アプレット版を作りました。

2005/05/03 1.11（非公開）
- ネットワーク版で、建物データがないときに例外が表示されないようにしました。

2005/05/03 1.10（非公開）
- 広域図のときほど大きく表示倍率を変更するようにし、操作感を向上させました。

2005/05/03 1.09（非公開）
- 地図をネットワークからダウンロードしながら実行できるようになりました。

2005/03/21 1.08
- 広域図でポリゴンの結合を行っていた無駄をなくし、広域図での応答を高速化しました。
- ポリゴンの結合を2重に行っていた無駄をなくし、中域図、詳細図での応答を少し高速化しました。
- 表示されていないポリゴンの結合をやめることにより、ポリゴンの結合を高速化しました。
- 地図の描画中にConcurrentModificationExceptionが発生しても無視するようにしました。

2005/03/20 1.07
- 広域地図で、駅だけでなく鉄道路線も表示するようにしました。
- ラスタ画像とPSファイルの出力を別のメニュー項目にしました。
- 丁目の塗り分け中にArrayIndexOutOfBoundsExceptionが出ることのあった不具合を修正しました。

2005/03/10 1.06
- PNG、JPG、BMPファイルを出力できるようにしました。
- 拡張子を指定しないと保存できません。

2005/02/28 1.05
- PSファイルを出力できるようにしました。
- メニューをつけました。
- データディレクトリをコマンドライン引数で指定できるようにしました。
- パッケージ管理するようにしました。
- 隣接グラフを計算するときにNullPointerExceptionが出ることのある不具合を修正しました。
- 「センター」と「センタ−」の表記揺れに対応しました。

2005/02/11 1.04
- 読みにくかったので、history.txtの書式を変更しました。
- ソースコードをjdk1.5.0対応にしました。
- フィールドへのアクセスにthisをつけました。

2005/02/05 1.03
- ソースコードとhistory.txtのエンコーディングをUTF-8にしました。

2004/03/14 1.02（非公開）
- 境界色、塗りつぶし色などを変更できるようにしようとしましたが、挫折しました。

2004/02/04 1.01
- 地図を描画する色、フォントを1つのクラスにまとめました。

2004/02/02 1.00
- ソフトの名称をMapに決め、タイトルバーに表示される文字列を「Map」にしました。

2004/01/27 0.30
- 鉄道の属性を表示できるようになりました
- 鉄道を、種類によって異なる線で描画できるようになりました
- 表示されていない地図の属性を表示しないことにより、文字が重なって表示される不具合を修正しました
- JR、JR新幹線を縞模様で描画することにより、描画に時間がかかるようになりました
- 地図の読み込み、ポリゴンの結合、塗り分け、属性配置位置の計算中に移動の操作ができないようにし、操作感を改良しました
- 「自動車道」で終わる道路も高速道路と判断するようにし、中国自動車道や山陽自動車道が高速道路の線種で描画されるようにしました。
- 第2神名道路や播丹連絡道路は一般道と同じ線種で描画されます
- 計算中はマウスポインタを砂時計の形にすることにより、操作をしやすくしました
- 駅の点データを、縮尺に関係なく表示することにより、目的の場所へ移動しやすくなりました。

2004/01/27 0.29
- 道路の属性を表示できるようになりました
- 文字が重なって表示される不具合が発生しました。

2004/01/24 0.28
- 高速道路、国道、主要地方道、県道を一般の道路と異なる色と太さで描画することができるようになりました。
- 道路の色が薄い順に何度も描画しているので、道路の描画が遅くなりました
- 「国道」で始まる道路は国道、「主要地方道」で始まる道路は主要地方道、「県道」で始まる道路は県道、「高速」を含む道路は高速道路と判断しています。
- このため、第2神名道路や中国自動車道など、「高速」を含まない高速道路は一般道と同じ色、太さで描画されてしまいます
- 道路の属性は表示できません。

2004/01/24 0.27
- 属性の配置をするときに、表示しない点を決定済みの属性と別のオブジェクトに格納することにより、属性の配置を高速化しました
- 属性が配置できるかどうかの判断の順序を変えることにより、属性の配置を高速化しました
- ポリゴンの内部表現をGeneralPathクラスからAreaクラスに変更しました
- ポリゴンを結合するときにRectangle2Dクラスのaddメソッドを使うことにより、ポリゴンの結合を高速化しました
- 全てのprotected、publicメソッド、フィールドにJavaDocコメントを書きました。

2004/01/22 0.26
- 駅名が表示できるようになりました
- 駅舎を表示しないようにしました。

2004/01/20 0.25
- 丁目の属性について、大きなフォントで完全に含まれる属性の配置を試み、失敗すれば丁目に接触する属性を小さなフォントで配置します
- 図郭にまたがる丁目について、Areaクラスを使って本気で結合することにより、地図の切れ目が全く見えないようになりました
- 属性が丁目に含まれているかを調べるようにしたため、属性の配置が非常に遅くなりました
- 建物のラベル候補は6枚、丁目のラベル候補は4 x 4 x 3枚、内水面、場地のラベル候補は1枚です
- 丁目のフォントは3種類、それ以外の属性のフォントは1種類です
- 内水面の属性は、結合されたポリゴンの中心に配置されるので、川の属性が、川から離れた場所に表示されることのある不具合があります。

2004/01/19 0.24
- 地図の読み込み、ポリゴンの結合、塗り分け、属性配置位置の計算、再描画を別のスレッドで実行するようにし、操作感を改善しました
- 表示されていない地図のラベル配置をしないことにより、ラベル配置を高速化しました
- あまり役に立っていなかったので、MapListener、MapEventクラスを使うのをやめました
- 再描画中にマウスが操作されたら、再描画を中断しようとしましたが、うまく行かなかったので、あきらめました
- Graphics2Dクラスのtransform、scaleメソッドを使うのをやめ、setTransformメソッドを使うようにしました。

2004/01/16 0.23
- メンテナンスをしやすくするために、文字列を配置する場所を別のクラスで計算するようにしました
- 丁目の属性が、どの丁目を指しているか分かりにくい場合があったので、配置率を下げました。

2004/01/15 0.22
- 文字列を描画する位置を少し上にすることにより、文字列が重なって描画されていた不具合を修正しました。（thanks to草木）
- マウスをドラッグしているときに地図の読み込み、塗り分け、ポリゴンの結合をして動作が遅くなっていた不具合を修正しました
- Windowsでマウスのホイールを動かしたときに、MouseWheelEventのgetClickCount()が常に0を返し、縮尺の変更ができなくなる不具合があったため、縮尺の変更の加速をやめました。

2004/01/12 0.21
- マウスを移動中は、直前に描画したImageを位置を変えて転送することによりスクロールを高速化しました。

2004/01/11 0.20
- 文字が重なって表示されないようになりました
- 今まで配置された文字列の領域の和集合を持つAreaオブジェクトを用意し、このオブジェクトに重ならないように文字列を配置しています
- 再描画時に文字列の配置を計算しているので、再描画が非常に遅くなり、使い物にならなくなりました。

2004/01/10 0.19
- 建物、場地、内水面の属性が表示されるようになりました
- 複数の図郭にまたがる場地、内水面はポリゴンを構成するアークの線種タグによって属性の表示位置を同じにし、建物は同じ属性を持つものの属性を同じ位置に表示するようにしました
- 丁目のポリゴンを読み込むときだけ「一丁目」を「１」に置換することにより、属性の読み込みを高速化しました
- 「十一丁目」が「十１」に置換されていた不具合を修正し、「11」に置換されるようにしました
- 建物を読み込んだときに、「明石郵便局」を「明石局」に置換することにより、属性を短くしました
- 丁目、建物、場地、内水面の属性を表示することにより、かなりの文字が重なって表示されるようになりました。

2004/01/09 0.18
- クラスを整理して、メンテナンスしやすくしました
- ウィンドウのサイズが変更されたときに、地図の縮尺を変更しないようにしました
- 1秒毎に地図の読み込みを調べるのではなく、マウスのボタンが離されたとき、ホイールが操作されたとき、ウィンドウのサイズが変更されたときに読み込み、ポリゴンの結合、塗り分けをすることにより、操作感を改良しました
- 地図の読み込み、ポリゴンの結合、塗り分けが全て終わってからパネルを再描画することにより、反応速度を高速化しました
- マウスのホイールを連続して操作したときに、縮尺の変更が加速されるようにし、操作感を改良しました。

2004/01/09 0.17
- 地図を読み込むときに、ファイル名の辞書式順序で読み込むことにより、塗り分けに失敗することが少なくなりました
- 丁目の色がまだ決まっていないときは白で塗りつぶすようにし、読み込み中に一旦画面が海の色で塗りつぶされる不具合を修正しました
- 地図のスクロールのさせ方によっては、正しく塗り分けられない不具合があります
- まだ、複数の図郭にまたがる丁目のポリゴンを正しく結合できない場合がある不具合があります。

2004/01/08 0.16
- 図郭にまたがるポリゴンは、属性が同じポリゴンのみを結合することにより、同じ場所に属性が表示されてしまう不具合を修正しました
- 隣接グラフに含まれないポリゴンも塗り分け対象にすることにより、埋め立て地などを正しく塗り分けられるようになりました
- ライセンスをGPLにしました。（まだ公開してないけど）

2004/01/06 0.15
- 図郭をまたがるポリゴンを正しく塗り分けられるようになりました
- 同じ属性を持つポリゴンを同じ色で塗り分けています
- 飛び地があるときに正しく塗り分けられない不具合があります
- 埋め立て地など、隣接するポリゴンがないときに正しく塗り分けられない不具合があります
- 元のデータに間違いがあるときは正しく塗り分けられません
- 単純な地図は6色で塗り分けることができます。8色必要になる場合があります。

2004/01/05 0.14
- 丁目単位で行政区画を塗り分けることができるようになりました。
- 図郭をまたがるポリゴンは正しく塗り分けられない不具合があります。
- 6色で塗り分けることができます。

2004/01/03 0.13
- 読み込んだポリゴンに隣接するポリゴンだけを結合することにより、ポリゴンの結合を高速化しようとしましたが、うまく結合できなかったので、あきらめました。
- 内水面、建物を読み込んでも正しく丁目のポリゴンが結合されるようになりました。

2004/01/03 0.12
- 図郭をまたがるポリゴンを結合して、ラベルをポリゴンの中央に配置することができるようになりました。
- 多数のファイルにまたがるポリゴンは正しく結合できない不具合があります。
- 丁目のみを読み込むと正しく結合されますが、内水面、建物などを読み込むとうまく結合されなくなる不具合があります。

2003/12/31 0.11
- 北が上に表示されるようにしました。
- 地図の縮尺を変えても文字が同じ大きさで表示されるようにしました。
- 画面の端で文字が途切れないようにしました。

2003/12/31 0.10
- 建物の境界線が太くなることのあった不具合を修正しました。

2003/12/18 0.09
- 道路と鉄道を読み込めるようになりました。
- 縮尺が小さいときは、道路を表示しないようにしています。

2003/12/17 0.08
- 建物のポリゴンを読み込んで表示できるようになりました。
- 複数の建物をつなぐ弧が表示されてしまう不具合があるので、図郭をまたがる建物が分かれたようにみえます。

2003/12/14 0.07
- 内水面、場地を読み込めるようになりました。
- 図郭をまたがるポリゴンが分かれたように見える不具合を、塗りつぶし色で輪郭を描画することにより、修正しました。
- 内水面、場地の属性を読み込んでいないので、ラベルを配置できません。

2003/12/14 0.06
- 行政界の属性ファイルを読み込んで表示できるようになりました。
- 図郭をまたがるポリゴンを結合していないので、1つのポリゴンに複数の属性が表示されます。

2003/12/13 0.05
- 行政界のポリゴンを読み込んで表示できるようになりました。
- 図郭をまたがるポリゴンを結合していないので、単色で塗りつぶすことしかできません。

2003/12/13 0.04
- 必要な地図をバックグラウンドで読み込むようにし、操作感を改善しました。

2003/12/13 0.03
- Drawableインターフェイスを使うのをやめ、地図描画に特化することにより、描画を高速化しました。

2003/12/12 0.02
- 必要な地図のみを読み込んで、行政界のアークを表示できるようになりました。
- マウスのドラッグ、ホイールの回転により、移動、倍率変更ができます。
- アークはGeneralPathクラスを使っているので、座標はdouble型です。
- 座標の変換をしていないので、西が上に表示されます。
- ポリゴンの結合はできなくなりました。

2003/11/01 0.01
- 数値地図2500（空間データ基盤）の地図が表示できます。
- マウスのドラッグ、ホイールの回転により、移動、倍率変更ができます。
- 行政区画のポリゴンを読み込んで、図郭にまたがるポリゴンを結合し、ランダムな色で塗り分けて表示しています。
- 北が上に表示されます。
- 起動時に全ての地図を読み込むので、広い範囲の地図を表示することができません。
- アークはAWTのPolygonクラスを使っているので、座標は整数に切り捨てられています。
- ポリゴンの代表点データを読み込んでいないので、ラベルはポリゴンの中央に表示されます。
