dポイントプレゼントキャンペーン実施中!

日本の白地図画像(例えば http://www.craftmap.box-i.net/japan.php のもの)を使用し、
都道府県ごとに色を指定、データを入れたら自動で色をマッピングしてくれるようなプログラムを書こうと思ってます。
簡単に言うと、 http://aoki2.si.gunma-u.ac.jp/map/map.html のような仕組みのプログラムを作りたいのですが…。
画像を取り込んで、色を塗りつぶす場所と色を指定、というプログラムを書けばいいのは分かるのですが、「指定した範囲だけ塗りつぶす」ということが調べても全く分からなかったので質問しました。

どのようなサイトが参考になるのか、またはどの書籍を参考にしたら良いのか教えて頂けないでしょうか?
宜しくお願い致します。

A 回答 (4件)

う~ん、私ならsvg形式の白地図を使いますね。

たとえばwikipedia
の「日本地図.svg」なんかは県境を描画して中身を#bbee66で塗りつ
ぶしたデータです。これの各都道府県のpathにidを振っておいて、
javascriptからDOMをいじってfill属性を付加してやれば、簡単に好
みの色で塗りつぶすことが出来ます。

私はjavascriptもあんまり詳しくないんですけど、とりあえずDOMイ
ンスペクタやテキストエディタでいじってみて簡単に出来たので。
    • good
    • 0
この回答へのお礼

ありがとうございます。
svg形式やDOMという言葉を初めて聞いたので、まずはそこから理解してみます。

質問する前は何か本を一冊読めば出来るだろうと考えていたのですが、安直でしたね…。勉強します。

お礼日時:2008/10/16 23:59

塗りつぶせるかどうかは、?ですが、もしやるとしたら



各都道府県の画像を背景を透明にして、土地の部分だけを塗りつぶした画像を白地のものとそれ以外の色でつくります
各県の配置は、白地の画像を絶対値指定で配置します

指定された県だけ、色付きの画像に変えればできると思います

提示されたサイトは、おそらくアウトラインデータをビットマップに変換しています
なのでPHPとかでなら、同じ機能を実現できると思います
でも道のりは、かなり遠いと思います
    • good
    • 0

「塗り潰し」は面倒なので、考え方を変えましょう。



「白地図を、パレット付きのインデックスカラーの画像データ」にして、最初からすべて違う色で塗り分けてしまえば良いのです。

例えば、256色カラーの画像にして
カラー0:海岸線(黒)
カラー1:北海道(白色)
カラー2:青森(白色)
(略)
カラー47:沖縄(白色)
カラー48:県境いの線(灰色)
カラー49:湖沼、海洋(白色)
カラー50~255:未使用
という画像を用意します。

ここで「北海道を水色にする」なら「カラーパレットデータの1番を水色に書き換える」と、北海道が水色になります。

画像をファイルにして置いておくなら「1番のカラーパレットデータが格納されている場所」は「ファイルの先頭から○○バイト目」と言う感じで固定されているので、ファイルの中身を書き換えるのは簡単です(※)

カラーパレットデータは、0番から255番まで、規則的に順番通りに並んでいるので、計算で位置を求めるのも可能な筈です。

※PNG画像ファイルの場合は、ファイルの一部を書き換えたらチェックサムも書き換えないと上手く行かないので、簡単には行きません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
「パレット付きのインデックスカラーの画像データ」という言葉の意味が理解できないので、勉強不足ですね…。
まずは調べて、自分で実装してみます。

お礼日時:2008/10/16 23:49
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせて頂きます。

お礼日時:2008/10/16 23:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!