このブログを検索

大文字小文字を区別する 正規表現

Atelierで“コメント”が含まれるブログ記事

2020年5月26日

隠居のPC備忘録:PC作業で、遭遇した案件について記録する。

  1. 花の名前の検索方法:Google の画像検索(Google の検索窓に、画像検索と入力)
  2. Google カスタム検索を設置する方法:https://support.google.com/customsearch/answer/4513751?hl=ja
  3. PhotoScapeで写真の合成をする:https://tsuyoshioka.co.jp/webpc/photoscape-2/  
  4. HTML5 audio の使い方。:https://stackoverflow.com/questions/5635365/html-5-audio-tag-width 
  5. ROXIO Creator NXT7 での CD  ファイナライズ:ツールバーの【ツール】のドロップダウンリストに【ファイナライズする】がある。CDを再度入れなおした方がいいかもしれない。
  6. Canon MG7130 プリンターで印刷がうまくいかない。LAN接続は問題ない。ジョブ(キュー)が詰まっていて進まない状態だったようだ。この印刷キューは、Windows10 の【設定】⇒【デバイス】⇒【プリンター】にある。「キューを開く」を実行すると印刷してくれた。
    参照:https://magazine.synapse.jp/info/post-7247
  7. Onedrive エクスプローラで、画像ファイルのサムネイル表示されなくなっていたが、PCを再起動すると表示されるようになった。<2020/5/26)
  8. いただいたコメントを公開するには、コメントを承認の上、編集で【変更を保存】しなければならない。
  9. Music Libraly を設置した。Google Drive には、収容しきれなくなったファイルを置く場所である。公開を避けるために、Basic認証を設置した。
  10. mp3ファイルを結合するソフト、Herium Audio Joiner は長さに限界がある。ファイル数ではなくて、結合した結果の長さ3時間22分54秒が限界のようである。
  11. Google カレンダーで定期的な予定を設定した。方法は、【googleカレンダー 定期的な予定】で検索でkる。(2021/9/20)
  12. 先月、旧のスマホ(SO-04H)の電池が熱を持ち裏面が膨れてくるなど支障がでてきたので、新しいスマホ(Xperia 8 Lite)に変更した。iPhoneにしたかったが、移行がいろいろと煩雑そうなので、android のままにした。変更した際に、楽天Edyの残額をうまく移動できなかった。結局、楽天に電話でヘルプしてもらった。チャットなどいろいろとトライしてみたが、うまくいかなかったので、結局電話のヘルプに頼った。調査をいれて約1か月ほど時間がかかったが、1万5千円ほどが戻ってきた。ありがとうございました。(2021/9/22)
  13. 65インチ4K対応の新しいTVを設置した。この頃のTVは、インターネットにも対応している。WiFiでネットに接続した。Google検索がTVの大画面でできる。音声検索ができるので、便利だ。(2021/9/27)
  14. しばらく無頓着にしてきたが、再度ブログ画面上に、Amazonアソシエイトのリンクボタンを置くのことを始めた。Amazonのページ下部にあるアソシエィトガイドをクリックすると目標URL作成ガイドがあるので、これに沿ってボタンを作成し、ブログ画面上に設置すればよい。(2021/10/8)
  15. Portable SSD 1TB(Crucial X6)を導入した。これまで、いろいろなHDDのフォルダーに散在していた音楽ファイルを種別に(例えば交響曲ばかりを)集める(Media Monkeyを利用して)など、このSSDに収納することにした。接続は、C-typeのUSBコードなので、スマホとの接続もでき(両端がC-typeのコードがついている)、スマホにデータ転送も簡単そうである。(2021/10/24)
  16. NHK-FMなどで収録した音楽ファイルを特集して、CDに焼いたりする。できれば、収録したMP3のファイルの曲名・Artist・作曲者(クラシックでは、ベートーベンのピアノ協奏曲というように他の曲と区別するのに必要である。)をリストしてExcelの表にでもして印刷しておきたい。このために、今更なんだが、[コマンドプロンプト]と Excel を使う方法を学習したので、ブログの記事にしてアップしておきたい。(1921/11/8)
  17. 先日、BHK BS-1で、昨年暮れのショパンコンクールの模様を放送していた。これを、BD レコーダーで録画した。BD-REにダビングしてパソコンで見ることにしていた。が、DELLのデスクトップを置き換えたNEC Lavieで再生しようとすると、できない。階下に置いているFujitsu のノートブックでも再生できない。いろいろと調べてみると、どちらのパソコンも内蔵しているプレーヤーがブルーレイのデスクには対応していないことが分かった。購入するときに対応しているかどうかのチェックを抜かしたしまったらしい。(今時、PCのドライブが、BDに対応していないものがあるとは思っていなかった。)以前に買っていた外付けのプレーヤーをみるとBD対応になっている。これを使えば、録画ダビングしたBDのディスクが再生できた。(2022/1/26)
  18. 重宝していた、NAS DS115に突然アクセスできなくなった。FM録音のMP3ファイルを多く収納していたので、青くなった。ハード的にLANケーブルを変えるなどしてエラーがないことを確認した。再度、初めに設置したように、セットアップもこころみたが回復しない。どうやら、セキュリティの問題らしいことが分かったので、最近の行為を思い浮かべてみると、McAfeeのセキュアVPNが無効だったのを有効にしたことが原因らしいと突き詰めた。元通り無効にしてみると、サーバーとして動くようになった。セキュリティの強化に越したことはないが、このようなことも起こる。(2022/7/16)
     だが、残念ながら、いろいろといじっているうちに、クラッシュしてしまった。オリジナルのファイルは、他のディスクに残っていたのでほっとしている。(2022/7/19)
  19. PCからSony WALKMAN(XRJ-65X90J)に転送した曲(MP3)が、WALKMAN画面で表示されなく再生もできないことがあった。原因をいろいろ探るとファイルの名前が長すぎることが原因だった。字数制限を調べたが不明だった。(2022/7/17)
  20. Line トークのグループ相手に相手先が簡単に再生できるように、音楽を送付する方法が分かった。自身のスマホで送ろうと思う曲を収納しているアルバムなどから選曲し(音楽プレーヤーなどで)、曲名の右横の縦3点リーダーをタップする。表示される項目からシェアを選択すると表示される画面から Line を選択する。トークグループから、対象とする相手(グループ)に転送するだけでよい。受信先には、プレーヤーが表示される。(2022/7/124)
  21. Amazon Music で流している曲をmp3ファイルで保存する方法。ラジ録で、ダイレクト録音を選び、録音(REC)ボタンをクリックしてから、曲を流す。曲が終わったら、STOPボタンをクリック、デスクトップにできたアイコンを取り込む(「musicーamazon music」フォルダーでいいだろう。あとは、通常の録音ファイル処理をすればいい。ファイル名をつけるのに手間がかかるかもしれない。違法かもしれないが。

2017年1月 6日

隠居のブログ:XServerでMovable Typeの日時指定投稿を設定する方法(備忘録)

MT4 で投稿日時指定をするときに、いつも「どのようにするんだっけ」と手さぐりになるので、手順を備忘録として残しておきたい。
  1. レンタル・サーバー Xserver のCon設定画面を開ける。(Xserver へのログインは、サーバーパネルからである)
  2. MT自動投稿とコメントしているコマンドはそのままで、日時を変更する。
    投稿月日を例えば、1月1日1時5分と指定したい時は、以下のように行う。曜日は、月曜が1で土曜日が6だが、日曜日は、0か7である。しかし、*印を入力すれば、何曜日でもOKである。

    cron01.JPG

  3. コマンドについては、以下のようなページを参考にしたようであるが、変更は不要である。
    XServerでMovable Typeの日時指定投稿を設定する方法

2015年2月 4日

隠居のスマホ備忘録:Google+ フォト Google+ おまかせビジュアル を使う


 私は、色々なカメラ(スマホの写真も含め)で撮った写真を、Picasa(現在v3.9.)で整理している。
 この Picasa3 と同じ Google が運営する Google+ とは、本人の意図とは別に(?)、連携している。Google+(グーグルプラス)とは、Googleが提供するソーシャルネットワーキングサイト(SNS)らしい。全く知らない間に、そのSNS の仲間になっていたらしい。
「Facebook(フェースブック)」と主要な機能はよく似ているらしいが、Googleが長年にわたり積み上げてきた情報の検索と管理を生かして、『情報の共有』が簡単にできることが大きな特徴となっているらしい。   Google+の機能については、"Picasa3"の使い方というサイトに、次のような説明があるので引用させてもらう。
【Google+(グーグルプラス)の主要機能】
  1. サークル
    「Facebook」では「友達」とひとくくりで呼ばれていますが、Google+(グーグルプラス)では、「友達」をさまざまなタイプで分類し、「会社関係」、「趣味の友達」、「家族」、「学校関係」など、ユーザーの人間関係をさまざまなグループに分け、そのコミュニティごとに情報が共有できるのが大きな特徴です。サークルの名前は自由に付けることができ、いくつでも作ることができます。

    サークル内の人とは、「Facebook」のようにリアルタイムにコミュニケーションをとったり、写真や動画のアップロードができ、「+1」や「共有ボタン」でシェアしたり、コメントを付けることもできます。

    そして、「Facebook」との大きな違いは、Google+(グーグルプラス)のアカウントを持っていない人でもGメールだけでサークル・リストに入れて情報を共有できることです。

  2. ハングアウト(ビデオチャットルーム) 「サークル」の人と気軽にビデオチャットできる機能です。ビデオチャットルームを使えば最大 9 人と顔を見て話すことができ、「Facebook」のビデオ電話よりも評価が高く、将来的にはユーザーが拡大しそうなサービスです。

  3. モバイル Google+(グーグルプラス)の「インスタントアップロード」を使えば、携帯やスマートフォンで撮影した写真や動画が自動的に Google+ の非公開アルバムにアップロードされます。
    Google+(グーグルプラス)の「メッセンジャー」を使えば、ひとつのグループチャットでまとめて複数の人と話しが出来るので、メールよりも連絡が簡単になります。
     


 もともと SNS とはあまり関わりのないIT生活をしているので、写真まで公開してコミュニケーションする勇気はないが、カメラから Picasa3 に写真をインポートするとGoogle+ に自動的にアップロードされる。
 私は、google ドライブを契約(100GB月1.99$) していて、 外付けHDD 的に使用させてもらっている。(先日、この外付けHDDが、ご臨終でえらい目にあった。)この google ドライブには、色々と苦労して集めた音楽ファイルを中心にアップロードしているが、Gmail で送受信した添付ファイルやメール メッセージも保存されている。
 メール関連のファイルは、保存容量としてカウントされるが、Google+ で保存される写真は、標準サイズ2,048×2,048ピクセル以下の写真(動画は15分以内)であればドライブの容量にカウントされない。

 この Google+ におまけみたいに付いているのが、おまかせビジュアルという機能である。Google+は、スマホとも連携している。私はスマホは、Android のSO-04E を使っているが、このスマホで記録的に撮った写真も、Google+に取り込まれる。
 前回のエントリーにUPしたモーション・ピクチャーは、このおまかせビジュアルで作っている。ただし、これはスマホで作る。PC では、googlechrome という Google のOS を搭載したPC でしかできない。
 おまかせビジュアルは、スマホでは iPhone の方が機能が多い。雪をふらせたりなどいろいろの修飾ができるらしいが、私の Android 4.2.2 SO-04E では、モーションミックスという機能しかない。
 ミックスというのは、Picasa3 でいうコラージュである。 選択した写真を、自動的に 一枚の写真に収めてくれる。例えば、次のような写真を合成してくれる。

おまかせビジュアル で作成したミックス写真
泉北ニュータウン鴨谷台で見つけたマンホール
manhole150129.jpg



 motion というのは、いわば簡易化した GIFアニメーションである。連写で撮った写真などを元にして、写真に動きをつけてくれる機能である。
 私は野鳥の写真を撮るときには、連写モードにしていることが多い。結果として、同じポイントで被写体が角度を変えたりしている。おまかせビジュアルは、そのような写真がGoogle+ にアップされると、自動的に motion.gif を作成する。自分で、写真を選択して作成することもできる。
 次にUPしているのは、そのようにして作成された motion.gif である。

おまかせビジュアル で作成したモーション写真
堺市野々井で撮ったカシラダカ
kasiradaka.gif



 スマホで作成したおまかせビジュアルをパソコンに送信する方法は、Google ドライブや Picasaアルバムに送るなど、いろいろな方法が用意されているが、私は Gmail で送っている。添付ファイルとして送られてくるので、これをダウンロードして、適切なフォルダーに収納しておけば、このようなときにも使える。

2013年2月 3日

隠居のブログ備忘録:JQuery lightbox 2.51 をカストマイズする

 
 昨年夏に、サムネイル写真をクリックするとウインドウ中央に写真が拡大表示される Llightbox を jQuery という JavaScript のライブラリーを使用した Lightbox2.51 を導入した。
 その時、カストマイズしたのは、デフォールトでは黒である背景画面の色を緑にしたのと、写真ページを閉じるボタンを デフォールトのclose.png から、自作の closelabel.gif に変更しただけである。

 私が管理している友人の Lightbox は、prototype.js という JavaScript のライブラリーを使った旧バージョン Lightbox2.0 を使っている。背景画面に、蝶をあしらった壁紙を使っていて、これを Lightbox2.51 で使う方策が分からなかったからである。
  Lightbox2.51 のカストマイズは、【jQueryのlightBoxプラグインの使い方】【jQuery LightBox Pluginの使い方】 などに詳しい。これらのプラグインは、新たに JavaScript を付け加えてカストマイズする方法である。だが、私のやり方が悪かったのか上手く行かなかった。
 そこで、当初導入した時にいじったJavaScript lightbox.js と スタイルシート lightbox.css 再度いじって見ることにした。 私にコードが理解できるわけではないから、やりかたは ここはと思われるスクリプト ないしは CSS をいじって、FTP でサーバーにアップロードし、実際のページでの変化を観察する方法である。幸い、JavaScript と CSS の変更は、すぐにページに現れるから楽である。この結果を備忘録として記録しておきたいと思う。

  1. 自作の closelabel に置き換える。
    lightbox.js の41行目を下のように独自の画像に置き換える。
          this.fileCloseImage = 'http://n-shuhei.net/atelier/Jquery2.51/images/closelabel.gif';

  2. セットで写真を表示している場合の表示を "image"(default) から "画像"に置き換える。44行目
          this.labelImage = " 画像 "; 

  3. セットの写真の何枚目を示す、表示を例えば "1 of 8" を " 1 / 8 "に置き換える。45行目
          this.labelOf = "/";  

  4. 背景画面を単一色から、壁紙画面に変える。lightbox.ccs の7行目あたりの背景色をコメントアウトして、壁紙イメージを挿入する。
    /*  background-color: #000000; */
    background-image: url("http://n-shuhei.net/atelier/lightbox2/images/overlay_1.jpg") ; 

  5. 画像の枠(台紙)の色をかえる。lightbox.ccs の35行目あたり。デフォールトは、"white;"
       background-color: #ffffe0;

  6. 画面の"前画面" "次画面" へのボタンを独自のボタンに置き換える。lightbox.ccs の112行目、117行目あたり。 
        background: url(http://n-shuhei.net/lightbox2/images/prevlabel.gif) left 40% no-repeat;

    background: url(http://n-shuhei.net/lightbox2/images/nextlabel.gif) right 40% no-repeat;

  7. 写真の説明文字の色を変える。lightbox.ccs の145行目あたり。デフォールトは灰色。
     color: #ffffff;

 その他、細かい部分も、CSS をいじることで変えられそうだ。
サンプル画像は、次のエントリー【隠居の探鳥ウォーク:ハリエンジュ 花芽ついばむ 鷽(ウソ)4羽 】などで確認できます。

  

2013年1月11日

隠居のパソコン備忘録: ブログ(MT4.1)の表示レイアウトを変更する


 私のブログ(Atelier Shuhei Weblog)に訪問してくださる方たちの訪問内容を分析するサービスがある。私は、古くから Reasearch Artisan Lite というサービスを使わせてもらっている。

 この分析項目の一つに、訪問者がどのような解像度のモニターで表示されているかが示される下のスクリーンショットのような表がある。最近3ヶ月の訪問内容を調べてみた。

0111_1.JPG
 最近の液晶モニターは、解像度が向上してブラウン管のモニターが大勢であったころの 1024x768 のモニターは少数派となってしまった。私のブログは、1024x768 のモニターで見てもらうことを前提に、ブログのレイアウトを構成してきた。
 ブログのテンプレートは、MovableTypeのエキスパートである小粋空間が提供するテンプレートから、横幅がモニターの解像度に合わせて伸縮するリキッドレイアウト(2段)を使ってきた。もともと横幅を1024ピクセルに合わせて、テーブルなどを作成してきたので、最近の横幅 1280 や 1600 などのモニターで画面一杯表示させると、非常に間抜けた表示になってしまう。多くの方が、このレイアウトの崩れた画面を見ておられることになる。
 実は私も、普段は横幅 1600 ピクセルのモニターを使っていて、自分のブログを表示するときには、縮小モードで横幅を 1024 近くで表示させているのだ。
Google や Yahoo! のページでは、どのような解像度で見ても対応できるように作られているが、このようなページを作るには難易度が極めて高そうだ。
 それで、先の小粋空間さんのページをはじめ多くのページで採用されている横幅が固定したレイアウトに変更することにした。それほど難しくは無いだろうと始めた作業は、結局丸2日ぐらいかかってしまった。今後のために、試行錯誤の作業を記録しておきたい。

  1. 小粋空間のサイトで探し当てた【テンプレートセットの入れ替え】というページにもとづいて、「2カラム(右サイドバー)・リキッドレイアウト(layout-two-column-liquid-right)」から、「2カラム(右サイドバー)・固定レイアウト(layout-two-column-right)というレイアウトにデザイン適用を行った。だが、これからが大変だった。
  2. 後でわかったことであるが、レイアウトを入れ替えると、ブログのテンプレートが初期化された。(追記:2013/1/17)私のブログだけだったようで、初期化されるのはスタイル・シートだけである。 問題は、長い間にわたってカストマイズしてきたインデックス・テンプレートの、スタイル・シート、メインページが、テンプレート・モジュールのヘッダー、サイドバー2、サイドバー、コメント入力フォームが初期化されたことである。幸い私の場合、友人のブログをほぼ同じようにカストマイズしてきていたので、これらの内容をコピペすることで、かなりの部分が助かった。だが、私のブログ用にかなりいじっている部分もあったので、これを修復するのが大変だった。
    カスタマイズしたテンプレートは、事前に別ファイル名でコピー保存しておくことが必要だ。
  3. 一番の苦労は、2カラム(右サイドバー)・固定レイアウト用に、スタイル・シートをいじることであった。レイアウトの全幅は #box、 記事部分は #content 、右サイドメニューは #links-right-box、にピクセル数を与えながら設定した。

まだ、原因が判明できないバグがあるが、おいおいと修正したいと思う。まあ、苦労したお陰で、仕組みの理解は少し進んだかもしれない。
歳をとっての、このような作業は辛いが、ボケ防止になるだろう。

2012年9月22日

隠居のパソコン備忘録: Google Maps API JS V3 で、番号付きマーカーを表示する

 
 従来、右フレームの【晩秋の宍道湖私的観光地図】は、Google Maps API のV2版で作成したものを置いていた。V2 でかいた地図はまだ動くが、2010年5月に廃止されており、V3 へ移行することが奬められている。
 この地図では、必要性はあまりないが、マーカーに番号を表示させていた。新しく V3 で作りなおすときにも、学習も兼ねて番号を表示させたかった。

 ところが、番号入りマーカーを表示するサンプルコードが見つからない。V2 で作成したコードを V3 に置き換えることも試みたが、悲しいかな十分な知識がないし、一から勉強する意欲もないので、うまく行きそうにない。
 今までに成功した V3 のコードを眺めていると【Google Maps API JS V3 で、カテゴリー別に色違いマーカーを表示する】 で使ったコードを、わかる範囲でいじってみれば、なんとかなるのではないかと思われた。色違いのマーカーを、番号付きマーカーに置き換えるのである。この地図では、category 別に赤・青・黄色・緑などのマーカーにしているが、これを番号つきのマーカーに置き換えるのである。また、また、一つずつのマークを、一つのカテゴリーと考えるのである。
 このコードでは、マーカーを立てる地点の経度・緯度や吹きだしに表示するHTMLなどは、XML ファイルを読み込んでくることになっている。V2 で作成した地図では、HTMLの中に直接入力されていた。

 とりあえずうまく表示できるようなので、自分用の備忘録として、XML ファイルおよびHTML コードを記録しておきたい。よくわかった人から見れば、へんてこなコードとなっていると思うが、古希を超えるとほとんど羞恥心はなくなっている。

使用したXML ファイル。項目 category は num01, num02・・・のようになっている。
<?xml version="1.0" encoding="utf-8" ?> 
- <markers>
  <marker name="1:宍道湖温泉" address="   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4820-1.JPG" title="宍道湖の夕焼け" rel="lightbox[sinjiko]">宍道湖の夕焼け</a><br/>   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4831.JPG" title="宍道湖の朝" rel="lightbox[sinjiko]">宍道湖の朝</a>" lng="133.053875" lat="35.469199" category="num01" /> 
  <marker name="2:米子水鳥公園" address="   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01539.JPG" title="コハクチョウ" rel="lightbox[sinjiko]" >コハクチョウ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01510.JPG" title="オナガガモ:♀を追いかける♂たち" rel="lightbox[sinjiko]" >オナガガモ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01529.JPG" title="マガンの群れ:沖の州" rel="lightbox[sinjiko]" >マガンの群れ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01591.JPG" title="キンクロハジロ?" rel="lightbox[sinjiko]" >キンクロハジロ</a>" lng="133.284674" lat="35.44333" category="num02" /> 
  <marker name="3:宍道湖グリーンパーク" address="   <a href="http://n-shuhei.net/atelier/video/digisco_1.wmv" target="_blank">コハクチョウ(video)</a><br/>   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01620.JPG" title="セグロセキレイ" rel="lightbox[sinjiko]" >セグロセキレイ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_digisco/DSC01632.JPG" title="トビ?" rel="lightbox[sinjiko]" >トビ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_birds/0911211.jpg" title="ジョウビダキ?" rel="lightbox[sinjiko]" >ジョウビダキ</a><br/>   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4872.JPG" title="ゴビウスにある水槽" rel="lightbox[sinjiko]">ゴビウスにある水槽</a>" lng="132.866077" lat="35.444729" category="num03" /> 
  <marker name="4:出雲大社" address="   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4886.JPG" title="出雲大社にて" rel="lightbox[sinjiko]">出雲大社にて</a>" lng="132.685919" lat="35.401434" category="num04" /> 
  <marker name="5:足立美術館" address="   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4908.JPG" title="足立美術館の紅葉" rel="lightbox[drive]">足立美術館の紅葉</a><br/>   <a href="http://n-shuhei.net/atelier/photo_drive/Stitched_003.JPG" title="枯山水の庭:3枚の合成写真" rel="lightbox[drive]">枯山水の庭</a><br/>   <a href="http://n-shuhei.net/atelier/DSC_4932.JPG" title="足立美術館:絵画を観ているように" rel="lightbox[drive]">仏間から庭を望む</a>" lng="133.198242" lat="35.377854" category="num05" /> 
  <marker name="6:米子自動車道大山PA" address="   <a href="http://n-shuhei.net/atelier/photo_drive/DSC_4720-1.JPG" title="雪化粧した大山:大山PAより" rel="lightbox[sinjiko]">大山の紅葉</a>" lng="133.419342" lat="35.386531" category="num06" /> 
  </markers>


 作成した地図作成の稚拙なHTMLコード(Google Maps API V3 のJavaScript を含む)は、右フレームに掲載している【晩秋の宍道湖私的観光地図】のソース・コードを見ていただければ、わかると思うが、参考までに下に記載し、少しのコメントを加えたいと思う。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 

<title>Google Maps Javascript API v3 Example: Marker Categories</title> 

<!-- jQuery lightbox2.51 -->
<script type="text/javascript" src="http://n-shuhei.net/atelier/Jquery2.51/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="http://n-shuhei.net/atelier/Jquery2.51/js/lightbox.js"></script>
<link rel="stylesheet" type="text/css" href="http://n-shuhei.net/atelier/Jquery2.51/css/lightbox.css" media="screen" />

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript" src="http://n-shuhei.net/atelier/maps/V3test/downloadxml.js"></script>
    <title>Google Maps</title>
<style type="text/css">
html, body { height: 100%; } 
</style>
    <script type="text/javascript">
    //<![CDATA[
      // this variable will collect the html which will eventually be placed in the side_bar 
      var side_bar_html = ""; 
      var gmarkers = [];
      var gicons = [];
      var map = null;
var infowindow = new google.maps.InfoWindow(
  { 
    size: new google.maps.Size(150,50)
  });

gicons["01"] = new google.maps.MarkerImage("http://n-shuhei.net/Googlemaps/Markers/marker_01.png",
      // This marker is 20 pixels wide by 34 pixels tall.
      new google.maps.Size(20, 34),
      // The origin for this image is 0,0.
      new google.maps.Point(0,0),
      // The anchor for this image is at 9,34.
      new google.maps.Point(9, 34));
  // Marker sizes are expressed as a Size of X,Y
  // where the origin of the image (0,0) is located
  // in the top left of the image.
  // Origins, anchor positions and coordinates of the marker
  // increase in the X direction to the right and in
  // the Y direction down.

  var iconImage = new google.maps.MarkerImage('http://n-shuhei.net/Googlemaps/Markers/marker_01.png',
      // This marker is 20 pixels wide by 34 pixels tall.
      new google.maps.Size(20, 34),
      // The origin for this image is 0,0.
      new google.maps.Point(0,0),
      // The anchor for this image is at 9,34.
      new google.maps.Point(9, 34));
  var iconShadow = new google.maps.MarkerImage('http://n-shuhei.net/atelier/maps/V3test/msmarker.shadow.png',
      // The shadow image is larger in the horizontal dimension
      // while the position and offset are the same as for the main image.
      new google.maps.Size(37, 34),
      new google.maps.Point(0,0),
      new google.maps.Point(9, 34));
 
function getMarkerImage(iconNum) {
   if ((typeof(iconNum)=="undefined") || (iconNum==null)) { 
      iconNum = "01"; 
   }
   if (!gicons[iconNum]) {
      gicons[iconNum] = new google.maps.MarkerImage("http://n-shuhei.net/Googlemaps/Markers/marker_"+ iconNum +".png",
      // This marker is 20 pixels wide by 34 pixels tall.
      new google.maps.Size(20, 34),
      // The origin for this image is 0,0.
      new google.maps.Point(0,0),
      // The anchor for this image is at 6,20.
      new google.maps.Point(9, 34));
   } 
   return gicons[iconNum];
}

function category2num(category) {
   var num = "01";       
   switch(category) {
     case "num01": num = "01";
                break;
     case "num02": num = "02";
                break;
     case "num03": num = "03";
                break;
     case "num04": num = "04";
                break;
     case "num05": num = "05";
                break;
     case "num06": num = "06";
                break;
     default:   num = "01";
                break;
   }

   return num;
}

      gicons["num01"] = getMarkerImage(category2num("num01"));
      gicons["num02"] = getMarkerImage(category2num("num02"));
      gicons["num03"] = getMarkerImage(category2num("num03"));
      gicons["num04"] = getMarkerImage(category2num("num04"));
      gicons["num05"] = getMarkerImage(category2num("num05"));
      gicons["num06"] = getMarkerImage(category2num("num06"));
      // A function to create the marker and set up the event window
function createMarker(latlng,name,html,category) {
    var contentString = html;
    var marker = new google.maps.Marker({
        position: latlng,
        icon: gicons[category],
        shadow: iconShadow,
        map: map,
        title: name,
        zIndex: Math.round(latlng.lat()*-100000)<<5
        });

        // === Store the category and name info as a marker properties ===
        marker.mycategory = category;                                 
        marker.myname = name;
        gmarkers.push(marker);

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(contentString); 
        infowindow.open(map,marker);
        });
}

      // == shows all markers of a particular category, and ensures the checkbox is checked ==
      function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(true);
          }
        }

        // == check the checkbox ==
        document.getElementById(category+"box").checked = true;
      }

      // == hides all markers of a particular category, and ensures the checkbox is cleared ==
      function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(false);
          }
        }

        // == clear the checkbox ==
        document.getElementById(category+"box").checked = false;
        // == close the info window, in case its open on a marker that we just hid
        infowindow.close();
      }

      // == a checkbox has been clicked ==
      function boxclick(box,category) {
        if (box.checked) {
          show(category);
        } else {
          hide(category);
        }

        // == rebuild the side bar
        makeSidebar();
      }

      function myclick(i) {
        google.maps.event.trigger(gmarkers[i],"click");
      }

      // == rebuilds the sidebar to match the markers currently displayed ==
      function makeSidebar() {
        var html = "";
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].getVisible()) {
            html += '<a href="javascript:myclick(' + i + ')">' + gmarkers[i].myname + '<\/a>' + ' ' ;
          }
        }

        document.getElementById("side_bar").innerHTML = html;
      }

  function initialize() {
    var myOptions = {
      zoom: 10,
      center: new google.maps.LatLng(35.430603,133.012136),   //松江
      mapTypeId: google.maps.MapTypeId.HYBRID
    }
    map = new google.maps.Map(document.getElementById("map"), myOptions);
    google.maps.event.addListener(map, 'click', function() {
        infowindow.close();
        });

      // Read the data
      downloadUrl("http://n-shuhei.net/atelier/maps/V3_sinnjiko_num.xml", function(doc) {
  var xml = xmlParse(doc);
  var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new google.maps.LatLng(lat,lng);
          var address = markers[i].getAttribute("address");
          var name = markers[i].getAttribute("name");
          var html = "<b>"+name+"<\/b><p>"+address;
          var category = markers[i].getAttribute("category");
          // create the marker
          var marker = createMarker(point,name,html,category);
        }

        // == create the initial sidebar ==
        makeSidebar();
      });
    }

    //]]>
    </script>
  </head>

<body style="margin:0px; padding:0px;" onload="initialize()"> 
    <!-- you can use tables or divs for the overall layout -->
    <table border=1 >
<tr><td align="center"style="width:1000px; background-color: #ffffe0;" ><br /><h2>晩秋の宍道湖私的観光地図</h2></td></tr>      
<tr><td>
           <div id="map" style="width: 1000px; height: 500px"></div>
        </td></tr><tr>
<td valign="top" style="width:1000px; background-color: #ffffe0; font-size: small;"> 
 上の地図は、Google Mapsの機能を持っています。拡大・縮小・移動ができます。下の該当番号をクリックすると該当番号マーカーに吹きだしが出てきます。その吹き出しにある青文字をクリックすると写真(一部 動画)がでてきます。</td></tr><tr>
        <td valign="top" style="width:1000px; background-color: #ffffe0; font-size: small;"> 
           <div id="side_bar"></div>
        </td>
      </tr>
    </table>


    <noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b> 
      However, it seems JavaScript is either disabled or not supported by your browser. 
      To view Google Maps, enable JavaScript by changing your browser options, and then 
      try again.
    </noscript>

<br /><br />
<!-- Google AdSense -->
<script type="text/javascript"><!--
google_ad_client = "pub-8556873278052332";
/* AdSense foot ad */
google_ad_slot = "1589991765";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
  </body>
</html>


  • 番号付きマーカーは、dLINKbRING というサイトからダウンロードできる
  • 表示する地図を、ラベル付き航空写真とするには、mapTypeId: google.maps.MapTypeId.HYBRID とすればよい。通常は、HYBRID の部分が、ROADMAP となっている。
  • マーカーをクリックしてでる吹きだしの中に表示される写真リンクをクリックして出てくる写真を、同一画面の中央に表示するJavaScript ソフト lightbox は機能する。 jQuerylightbox2.51 を使った。


2012年2月 8日

隠居のスマートフォン備忘録:(20) Xperia acro をEvernote を利用するデジタル・メモ帳として使う


 Masajii's Blog のオーナーが、最近スマホを使い出した。70を過ぎた我々の仲間では、珍しい方だ。彼はもともと新聞記者だから好奇心が旺盛である。それに、読書家・勉強家でもある。まだ、中国語の勉強をしている。そのようなこともあって、なんでもメモに残しているようだ。
 どこで仕入れたか、Evernoteなる ツールの知識を得て、これに獲得した情報を整理することを試みているようだ。この Evernote というツールで何ができるかの説明ページを読んでみてすぐに頭に浮かんだのは、梅棹忠夫の【知的生産の技術】である。Evernote は、この技術を現代のITで具現化したものと思えた。この新書が発刊(1969年)されてから40年以上たっているが、知的生産の技術はIT を利用することで驚異的な進化を遂げているのである。

 彼は、中国語を勉強した時などに残したメモ(学習帳?)をスマホのカメラ機能でスキャンし、Evernote にアップロードしたいが、写真がうまく取れない、何かいい方法はないかと聞いてきた。私はメモを書くことなどはあまりないが、探鳥ウォークするときには、A7 ぐらいの小型のメモ帳に場所別に観察した野鳥と羽数などを記録に残している。これをもとに、「探鳥日誌」をブログにアップしている。Evernote を使えば、元の記録を散逸せずに、梅田望夫が〘ウェブ進化論〙でいう【あちら側】に預かってもらえそうだ。

 そこで、ネットでググッてみると、どうやらスマホのカメラでメモの写真を撮る(スキャンする)ときに特化したノートが売り出されていることが分かった。KING JIM の SHOT NOTE がはじめに開発されたようであるが、コクヨも CamiApp という製品を追随して出している。 SHOT NOTE は最初 iPhpne 向けであったが、すぐ Android にも対応するようになった。これらのノートはノート自身には、4隅にマークがついている(SHOT NOTE)か、黒い枠で囲まれる(CamiApp)ようになっているか、だけで普通の紙である。そういう仕掛けがなければ、100円ショップでも売っていそうなメモ帳である。どちらも、値段は3倍位ほどする。スマホでスキャンしやすくするための工夫は、それらのノートに合わせたアプリが開発されていることにある。どちらも、ノート名と同じ名前のスマホ向けアプリを無償で提供している。
 このアプリを比較してみた。
KING JIM :SHOT NOTEコクヨ:CamiApp
Xperia acro で撮った写真。
四隅のマークをスマホ画面に表示される枠内に納めてタップする。比較的簡単。
360x480px(A8メモ用紙)
SHOT NOTE のメモ用紙
比較に使った用紙
 貼ってはがせるタイプ A8:70枚¥350
価格はAmazon の送料込み価格。
iPhone 対応となっていても Android で使える。
ShotNote_1;クリックすると大きな写真になります Xperia acro で撮った写真。
メモの台紙となる黒い枠をスマホ画面に納めてタップする。なれないとかなり難しい。
1114x1600px
CamiApp のメモ用紙
比較に使った用紙
 ツイリングメモ A7:50枚¥457
貼ってはがせるタイプはない。(アプリの方式で作りにくい?)大きさは、実質A8である。
価格はAmazon の送料込み価格。店頭で買えば、もっと安いようだ。
CamiApp_1;クリックすると大きな写真になります
Xperia acro での編集画面
元の写真は、バックに薄く表示されている。
Evernote と同期しておけば、タイトル・タグは、Evernote に登録しているノートブック・タグが選択できるようになっている。
メモの作成日付と番号は、OCR で読み取ることになっているが、完全ではない。作成日付の入力は、簡単に入力できるようになっている。
Evernote への登録は、メニュー・ボタンから〘エクスポート〙をタップする。
SHOTNOTE_2;クリックすると大きな写真になりますXperia acro での編集画面
元の写真と編集項目は上下に表示される。
タイトルは、その都度入力する必要がある。タグは、Evernote に登録しているタグが選択できるようになっている。ただし、設定画面で事前にEvernote からダウンロードしておく必要がある。
メモの作成日付の入力は、簡単に入力できるようになっている。
Evernote への登録は、メニュー・ボタンから〘共有〙をタップする。ただし、私の設定が悪いのか、IE での Evernote には、CamiApp というノートブックを作って、そこに同期するようである。
CamiApp_2;クリックすると大きな写真になります
PC本体 InternetExplorer の Evernote での〘ノート〙表示画面。上のスマホで撮った写真を表示している。
スマホで編集した作成日付、番号、撮影日付は、メモ写真の下に表示される。
メモ写真の大きさは、360x480px である。(A8 のメモ用紙の場合)
SHOTNOTE_3;クリックすると大きな写真になります PC本体 InternetExplorer の Evernote での〘ノート〙表示画面。上のスマホで撮った写真を表示している。
スマホで編集した作成日付、撮影日付、コメントは、メモ写真の上に表示される。
メモ写真の大きさは、1114x1600px であり、SHOTNOTE に比べて約3倍の大きさである。
アクションマーカーという機能があり、メモ用紙についている7つのマーカーを塗り分けることでタグを設定してくれる。
CamiApp_3;クリックすると大きな写真になります


 好みにもよるのかもしれないが、私は、KING JIM の SHOTNOTE の方が使いやすいと思った。
これを上手く利用すれば、色々な手書きメモを散逸せずにすむ。宅急便でモノを送るときの宛先住所メモを Evernote にあげておくとか、買い物メモなどを収録しておけば、スマホだけを携行するだけで良い。
 なお、Evernote については、スタートガイドをみるとよくわかる。まだ、使い始めたばかりなので、おいおい学習していきたいと思う。

2011年3月14日

隠居に何ができるのか:東北関東大震災後の東京近辺の状況


 3月11日14時46分頃、マグニチュード9.0(当初は、8.8 と発表されていた)の地震が、太平洋三陸沖で発生した。これに伴って発生した、場所によっては高さ20m以上の大津波が、海岸から4kmの奥まで船舶・自動車・家屋などを巻き込みながら襲いかかっている状況が、TV (NHK 動画)で刻々と報道された。

 当然のことながら、私事ではあるが、12・13日に予定されていた奥飛騨地方への旅行は中止になった。
 普段、メールでコミュニケートしている仲間(ほとんどは、東京近辺に在住している)に、無事かどうかメーリングリストでメールしてみると、皆さん無事ではあったが、いろいろと影響を受けたようだ。中には、地震当夜の行動を詳しくメールしてくれた友達がいる。許可を得て、少々長いが、掲示板的に、記録としてブログに掲載してみたいと思う。

東京もだいぶ揺れたようですね。
皆さん、ご無事でしょうか。

土日に、平湯・高山への旅行予定だったのですが、中止となりました。
2011年3月12日8:47  n_shuhei(大阪堺在住)

ご心配いただきありがとうございます。
私は地震発生時、横浜駅地下街にいました。揺れを感じて地上に上がったのですが、周囲のビルがゆらゆらと動くさまを初めて見ました。もちろん家に帰る電車はストップしていましたので、徒歩で自宅に帰りました。おかげ様で自宅は無事でほっとしました。
楽しみにされていた平湯、高山の旅行が中止になり、お気の毒に思います。

みなさま、特に現役のみなさまは、昨夜は自宅に帰ることが出来ましたでしょうか? ご無事であったことを願っています。
2011年3月12日10:00  yamako(横浜在住)

太平洋沖から長野へも波及しており、これが駿河湾地震に連鎖しないかちょっと心配ですね。

我が家も外に出ている娘たちとの連絡がなかなかとれなかったのですが、深夜になりそれぞれ勤務地から住まいに無事戻りました。
友人や遠い親類が、太平洋側海岸近くにも住んでおり心配しています。

私は昨日は勤務日。
地震直後に停電となり、レジや店舗コンピュータが動かず、緊急物のみの販売を、勤務者6人の手作業で続けました。私は医薬品担当でお客様相談を。
販売した水、ローソク、ライター、ガスボンベ、乾電池は在庫完売でした。
近隣のスーパーやコンビニはすぐ閉店してしまったため勤務しているドラッグストアにお客様が集中。でも多くのお客様に「お疲れさま、ありがとう」などと声をかけてくださいました。
なかには緊急時なので必要なものはすべて販売しろ!なんて抗議してくる方もいましたが・・・・(:>_<:)

電気が停まるとすべて動かなくなることを再認識したところです。

7時半ころ家に戻りましたが、横浜青葉区はまったく停電もなかったとのこと。慌ててサイレン付携帯ラジオのチェックをした次第です。

余震が続いています。一ヶ月くらいは要注意とのこと、お互い気をつけましょう。

しかし、各国に支援の動きは素早い!日本も見習わないといけないです。
まずはここは与野党一致して対応してほしいいもの。
子ども手当なんかなくして緊急対応費用にまわすくらいの決断でもして欲しいものです。

また余震です。(:>_<:)
2011年3月12日16:42  edaats(薬剤師:横浜在住)

K@小山市です。

通常勤務で浮間事業所の5Fで仕事をしていました。
はじめはゆっくりの上下動が次第に大きく横揺れも加わり、これはやばいと机の下に一旦隠れたのですが、PCのディスプレイが机から落ちそうになっていのを見ていられずしばらく、押さえていました。
ちょっと落ち着いてから、ビルの外に避難したのですが、1時間ほどはビル内に戻れず、花粉を大量に被爆してしまいました。

当然ながら夜は家に帰ることができず会社に泊まりました。
社員の半数以上が泊まっていました。

私は、本日(12日)の11:00頃に退社したのですが、JRは新幹線、在来線がダメで私鉄を使って大きく迂回して帰ったため、家に着いたのは15:00前(4時間近くかかり、疲れました)でした。

交通機関はゆくりと回復しているようですが、福島の原発が大変なことになっていますね。

昨夜は、インターネットのUSTREAMを大きなモニターに出して、泊まり組は見ていたのですが、映画の日本沈没のようでした。
2011年3月12日18:58  K(栃木県小山市在住)

H@さいたま市です。

職場で通常勤務しておりました。

初期微動が非常に長かったため、皆警戒しておりましたが、次第に揺れが強まったため、机の下に入りました。直後に揺れが本格化し、それも随分長く続きました。

揺れの後、職場の人たちは、一斉に家族の安否確認を始めましたが、電話は相当かかりにくくなっていたようです。
僕は部長の指示で行方不明の部員を探しに、館内を駆け回ったのですが、エレベーターに閉じ込められたか、ラックに押しつぶされたか、ああ彼はもうダメかもしれない、と諦めたころ、ひょっこり現れて無事が確認できました。外に逃れて家族と連絡を取っていたそうです。

その後、僕も家族と連絡を取り始めましたが、家内と息子の安全はすぐに確認できました。職場の電話は、事業所電話でしかもアナログ回線であるため、比較的つながりやすいものだったようです。後日総括が必要と思いますが、回線が混雑する中でも、どうもつながりやすさの特徴があったようです。
たとえば、たとえ現在位置が東京であっても、東北在住の人の携帯電話は、つながりにくかったり、池袋駅周辺より大塚駅周辺のほうがつながりやすかったり、というようなことです。

それから、行方不明の娘を探すために、池袋まで徒歩で移動しました。
都バスは動いておりましたが、春日通り西方向はすでに大ラッシュとなっており、バス、タクシーとも動かない状況でした。
また、不忍通りは、北方向はガラガラでしたが、南方向はぎっしりつまっていました。
池袋にはサンシャイン60を通って行きましたが、ビル内のコンコースでは、壁に寄りかかって座っている人が多数おりました。夜になって気温も急激に下がってきましたし、ビル内コンコースに留まったのは賢い選択だと思います。ただ、娘は、サンシャイン60から締め出されて、二度と中に入れてくれなかったということで行方知れずになったので、そのギャップが理解できませんでした。

池袋の駅前はものすごい人でごったがえしていました。というより、ごった返す余地がないほど、人があふれていました。
立派だったのは、そんな状況でもティッシュ配りの兄ちゃんが働いていたことで、軽装で会社を飛び出してきた僕は、寒さでハナが垂れてきたため、申し出てティッシュをもらいました。いかがわしいティッシュでした・・・。
また、居酒屋の呼び込みも盛んでした。営業を再開しました!!時間調整にぜひご利用ください!!と言っていましたが、これもなかなか良い考え。

池袋駅前のバス停は、渋谷、西新井、赤羽、春日、東京ドーム方面などの方面別に停留所がありますが、いずれも大行列になっていました。ただ、バス一台には多くの人数を収容できますので、めげずに並ぶことが肝要かと思います。それに、池袋は始発ですので、いつかは確実に乗ることができます。
駅前の派出所では、ものすごい剣幕で警官に因縁をつけている若い男性がいました。なんか、言っていることがわけわからない感じで、単にヒステリーをおこしているだけのようでした。いわゆる「キレる」という現象でしょう。
けれど、ああいう非常時に迷惑なものです。その人の胆力が試されますね。

結局娘は見つからず、いったん会社に戻ることにしました。
池袋駅前ではまったく携帯がつながらず、自分の携帯から家内の携帯、娘の携帯、自宅の加入電話、宇都宮の実家の加入電話、実家の携帯など、一切つながらないため、会社に戻って出直すことにしたわけです。
帰る途中で、会社から、娘と友人の一行4人を保護したという連絡がありました。
まずはめでたし、めでたし。

戻るとき、不忍通りは、北方向南方向ともにぎっしりで、全く動かない状態でした。
春日通りは、西方向はぎっしり、東方向はそれでも流れている状態でした。
あくまで大塚から小石川周辺の様子ですので、上野御徒町方面ではどうなのか、わかりません。

僕の職場部署では、泊りが4人。うち女性一人は女子更衣室の休憩スペースで寝ることにして移動。
僕を含めて男性社員3人と女子中学生4人が残りました。
そのほかの社員は夕方6時ごろには帰宅の途につきましたが、その後の消息は知りません。自宅まで歩いて帰った人、ターミナル駅まで歩いてそこで野宿した人、池袋近辺のホテルに飛び込んだ人、いろいろいたものと想定しています。
女子中学生一人の父親が、スクーターで迎えに来ました。
道路は大混雑で、二輪だから何とか来られたということでした。

その後コンビニに買い出しに出ましたが、弁当や中華まん、ドック類の主食惣菜関係はのきなみ売り切れ。
しかし、お湯を使う必要のある、カップ麺、スープ類は潤沢に残っていました。
ただし、カップヌードル(R)は売り切れで、カップヌードルカレー味だけがたくさん残っているのが印象的でした。

コンビニのトイレは行列になっていました。首都大震災を想定して、帰宅ルートの整備を進めてきたことは、確実に役立っていると感じました。
春日通の歩道には、おびただしい数の人が、西に向かって歩いていましたが、コンビニは格好の中継地であり、そこで食料飲料を補充したり、暖を取ったり、たばこを吸ったり、見知らぬ人とコミュニケーションをとるなど、いろいろな役に立っているように見えました。

僕は、徒歩での帰宅を考えましたが、娘は20キロも歩けませんし、娘の友人たちへの責任もあるので、会社に泊まることにしました。
状況がある程度落ち着く、情報がある程度把握できるまでは、動かないことが得策だったようです。会社には屋根も暖房もトイレもお湯もありますので、これだけでも相当に楽だったと思います。椅子を並べて寝るのには慣れていますしね!!(中学生は、椅子を並べて寝るのは辛かったようです。まあ、応接室が女子社員でいっぱいでしたから、仕方ないでしょう。それに、総務担当執行役が、女子用の応接室に入れないので、女子中学生が自力で突撃しろ、と励ましてくれたのですが、中学生は尻込みしていました(笑))。

深夜0時ごろには、私鉄、地下鉄が運転を再開しました。
深夜2時ごろ、春日通、後楽園駅などを偵察しましたが、南北線春日駅では入場制限をしているということで、何百人・・・おそらく二千人近く・・・の行列ができていました。あれほどの数の人間が、いったいどこから出てくるのかと思ったら、春日通を通るバスがつくたびに、続々降りてくるのです。
JRが運転をあきらめているので、大塚駅まで行くよりは、ここで地下鉄に、という判断なのだと思います。
丸ノ内線は動いていましたが、ガラガラでした。南北線は入場制限の上、乗れるかどうかわからないと放送されていました。みんな、少しでも自宅の近くへという感じでしょう。同じ春日駅でも、大江戸線は入場制限がないそうで、警察官が多数出て誘導していました。
車のほうは、ものすごい混雑でした。ラッシュはまだまだ続く。まるで、バブル期の目白通りのようです。金曜の夜、深夜残業後タクシーで帰ろうとすると、なかなか独身寮に帰り着かなかったことを思い出します。

上野駅から職場の職場まで、3キロ程度ですから、歩くことはたやすいことです。しかし、道路不案内な人は、バスに乗らざるを得ません。
夜8時からバスに並んで、やっとバスが来たのが10時、職場に着いたのが、2時という難民がいました。これは、上野から職場まで6時間かかったことになります。道さえわかれば、這ってきても、これほどの時間はかからなかったでしょう。

娘の捜索や、夜中の偵察などで、僕の当日の歩行距離は、およそ15キロほどになりました。

一晩中余震が続きました。
あまりよく眠れませんでしたが、まあ、うつらうつらと。
翌朝、午前6時過ぎに、ひばりが丘在住の中学生が自力で帰宅。茗荷谷から丸ノ内線で池袋、池袋から西武池袋線でひばりが丘、通常45分程度のルートですが、6時20分ごろ出て7時40分ごろ到着したようです。
昨夜から動いている鉄道は、比較的朝から安定していました。
前夜2時ごろには全く解消されていなかった春日通の大混雑も、朝6時過ぎには解消されていました。あれほどの数の車がどのように消えて行ったのか、不思議な感じがしました。
ただ、茗荷谷は田舎なので、普段と変わらないようなのどかな風景でしたが、他の幹線道路がどうなっているのか、そこに行ってみないとわかりません。

僕は埼京線で、JRの出方は不明。それでも運転再開したらしいということで、8時半ごろ会社を出て丸ノ内線で池袋へ。間引き運転なのでかなり混雑していましたが、ラッシュアワーほどでは ありませんでした。
池袋のJR改札まで行きましたが、入場させていませんでした。
埼京線は、駅間の安全を確認しながらノロノロ運転ということです。インターネットには、JRの状況についていろいろ出ていましたが、現場に行ってみないとわからないことがたくさんあります。現場では運転再開などほど遠い状況だったりします。
営団地下鉄の改札口ではトラブルが起こっていました。
駅員が言い返しているセリフは、「申し訳ありませんが、こちらでは東葉高速鉄道の払い戻しは承れません、東葉高速鉄道の方に行ってください!!!」ということでした。
東西線利用者が、何らかのクレームをしていたのでしょう。

このころ僕の一行は、僕と娘、実家の母親と妹の4人に増えていましたので、電車は負担が大きいだろうと考えて、タクシー乗り場に並びました。しかし、なかなか駅にタクシーが入ってこないため、繁華街のほうで流しのタクシーを拾いました。
9時10分ごろタクシーに乗り、自宅に着いたのは10時50分ごろでした。 1時間40分で料金は7500円ほど。通常、池袋から自宅までは7000円弱ですから、時間がかかった割には無駄な費用は発生しませんでした。
17号をまっすぐ帰ってきたのですが、やはり、環状7号、環状8号、外郭環状を節目とした渋滞がひどかったです。
戸田公園のあたりから、裏道に入ってもらい、そこからはかなりスムーズに帰ってきました。幹線道路は混雑で厳しいということです。
また、外環が通行止めになっているため、その下の国道は、大混雑でした。特に、東方向が大混雑だったのは、東名、中央方面から東京を避けていくトラックが多いためかと思います。
なお、首都高5号線も、高島平で強制排出ということで、新大宮バイパスは大混雑。川越街道も大混雑とタクシードライバーが言っていました。
隣の奥さんと、帰宅がちょうど同じようになりました。
8時半新宿始発の埼京線に乗り、武蔵浦和着が10時半ごろ、ものすごい混雑で相当痩せたといっていました。池袋ですかさずタクシーに乗ったのは正解だったと思われます。

反省点としては、情報源がインターネットしかなかったこと。
あの状況下で、テレビもラジオもないのは、圧倒的に情報量が少なくて・・・。
ただ、テレビを見ていて首都圏の様子がほとんど報道されていないような気がします。
あれは、都内はアナウンサーや中継車、報道用の機器が移動したり現場に行ったりできなかったためではないかと想像しています。
いったん新宿駅に派遣したら、もうそこに行きっぱなし・・・というような状況ではなかったでしょうか。
インターネットは、サイトによって情報の速さや充実度が違うことを、つくづく実感しました。普段は何気なくいつものサイトを見ていますが、サイトを選ぶことが重要だとしみじみ感じました。
電話や携帯のメールがなかなか通じないところ、インターネットメールは威力を発揮しました。有線には有線の良さがありますね。
それから、NTT171番ですが、これは役に立ちませんでした。
NTT171にダイヤルして、伝言を入れようと2番を選ぶと、被災地の電話番号をいれなさいという指示があります。048から始まる自宅の電話番号を入れると、「被災地の番号でなければ使用できません」と使用を拒否されました。
仕方ないので、家内の実家、岩手県の、0191で始まる番号を入れたところ、これまた「被災地の番号ではありません」と拒否されました。
要するに、NTTから「被災地」として認定されなければ使用できないシステムで、しかも、NTTがどこを被災地として認定したかを知る方法はないわけです。
これでは伝言ダイヤルとして役に立ちません。
今回の災害では、さいたま市、および一関市は、被災地として認定されていませんでした。
したがって、東京に大量に発生した帰宅難民は、この伝言ダイヤルを使用することができなかたということで、それで本当に良かったのか、と思います。
運用の見直しが課題ではないでしょうか。

日通のペリカン便は、昨日は止まっていたそうです。
通常土曜日に来る荷物が先ほど届きました。今日から正常化しているとのことです。
ガソリンスタンドが混雑しており、行列してガソリンを入れているとの情報が、家内の友人から入りました。しかし、17号線をずっと北上してきた段階では、ガソリンスタンドに行列は見られませんでした。刻一刻と、人々の状況判断や行動は変化しているでしょうから、それが今現在はどうなっているか、ちょっとわかりません。

僕の周辺から収集できた情報は、だいたいそんなところです。
一関市の家内の実家では、まだ停電中、水は昨日から出るようになったとのことです。
家の中は続いている余震の影響もあり、ぐっちゃぐちゃ。
テレビが壊れてしまったということで、電気が通っても情報が入手できないようです。
実家の電話は黒電話なので、いろいろな人が借りにくるようです。
今どきの電話は、高機能化の影響で、電気がないと動かないものも多いですからね。

今、ジャスコに買い物に行った家内から電話が入りました。
食料品売り場は大混雑、買占めが始まっているそうで、食料品が品薄だとのこと。

今回、地震の後の都内をうろついてみて、特需が発生したのは、居酒屋、コンビニ、ホテル、自転車屋ではなかったかと想像しています。
2011年3月13日10:42 H:製薬メーカ勤務

Nです。

私は、Kさんの浮間から荒川を挟んだ、埼玉:戸田の4F建ての1Fに居ました。免震構造の建物のせいか、揺れよりも建物が「ギシギシ」と音がしたのが不気味でした。
この建物の隣リに、築20年程の耐震の5F建てが有り、4Fの連絡通路で結ばれています。
避難をして外からこの連絡通路を見て、免震・耐震の建物揺れの違いを見ることが出来ました。(この連絡通路は、免震側の接続部分が外れてしまいました)

長女、長男共に1時間ぐらいでE_Mailで連絡が取れて安心しました。
長女は、スカイツリーの直ぐ近くで地震に会い、揺れるのを見たそうですが、残念ながら携帯の動画の撮影は出来なかったようです。インターン・シップの時の会社近くにあり、そこで泊まらせて貰ったそうです。
長男は、家におり、少しの断水したそうですが、直ぐに回復し、以前の家より揺れは少なかった様です。
私も岸さん同様に、会社に泊まり翌日、11:30 頃家に帰りました。

昨日から、断続的に人に感じる地震が続いています。
今、セキスイ・ハイムの1年点検が終了しましたが、千葉の海岸沿いん場所では、液状化の影響での、建物の不具合が数多く出ているようです。

S さんのお住まいの近くは、どうだったでしょうか?

明日は、会社で化合物の自動倉庫システムが、問題なく動くか少々心配です。
2011年3月13日11:17  N (製薬メーカー勤務:埼玉在住)

H です

地震の直接の被害はありませんが、物流が不自由になっていることと、消費行動に変化があることから、小売店の店頭には変化が出ているようです。

我が家にいる難民のために、携帯電話の充電用ケーブルを買いに駅前の電気屋に行きました。その道すがらに見かけたことを報告します。

  • ・小学校校庭では、少年野球の練習が普段通りに行われていました。
  • ・ジャパンというディスカウントストアの駐車場は大混雑でした。
    トイレットペーパー、ティッシュペーパーを大量にカートに積んでいるひとが多くみられました。
  • ドラッグストアから出てきた若い夫婦が持っているレジ袋には、はちきれんばかりに、カップめんとペットボトルが入っていました。
  • 電気屋のレジは大行列でした。懐中電灯と乾電池は払底していました。
    これほどに、懐中電灯のない家庭が多かったというのは意外でした。
  • AC電源からの充電ケーブルは買うことができました。しかし、電池式の充電器は完売だそうです。
  • ガソリンスタンド大行列。
  • オリンピックのエスカレータは停止していました。
  • ジャスコは1F食料品のみ営業。

以上のようなことから、物流に対する不安と、電気の供給に対する不安、ガソリンに対する不安が、さいたま市南区の特徴とみられます。
こういうことには地域差があると思いますが、他の地域ではどうでしょうか・・・?
2011年3月13日12:19 H:製薬メーカ勤務(埼玉在住)

H さん

半ば主婦の様な生活なので
  1. スーパに簡単に食べられる物が少ない
    • 豆腐、油上げ、納豆
    • カップ麺のたぐい → 水も電気も無いと食べられないのに何故?
    • 牛乳 → 実はこれを買いに行った

    ※:通常の日曜日、14:00頃は、スーパはすいているのにかなり混雑している。 買いだめする必要ないのに
    ※:地元のスパー → 売る商品がかなり少ない
    ※:西友  → エスカレータが壊れており、年寄りが困っている
  2. 我が家の今晩の夕食は
    • 鶏肉としょうがの炊き込みご飯
    • まぐろのやまかけ
    • チキンソテー

    ※:とにかく、よく「ゆれる」

2011年3月13日15:02   N (製薬メーカー勤務:埼玉在住)

N さん
返信ありがとうございました。

  1. 我が家の今晩の夕食は
    • 鶏肉としょうがの炊き込みご飯← これ、うまそうですねー。
    • まぐろのやまかけ← これから魚は値上がりして食べられなくなるのでは??いまのうち、いまのうち。
    • チキンソテー← ビールに合いそうですね。

    ※:とにかく、よく「ゆれる」← うちもです。いちにちじゅう、ゆ~らゆら・・・。

2011年3月13日15:35  H:製薬メーカ勤務(埼玉在住)

宇都宮の実家の父と話しました。
宇都宮市は、震度6強という揺れを観測したためか、市民はあまり平静ではないようです。

  • 市内はあちこちで大渋滞。
  • スーパーでは食料品が軒並み売り切れ。
  • ガソリンスタンドは半数が休み、半数が給油量制限で、長蛇の列。もともと日曜は定休日のところが多いのではないかと思うのですが、こんな状況なので余計に不安をかきたてるのかもしれません。
  • 福田屋ショッピングセンターは、食料品と学生服のみ営業。

そしてポイントですが、やはり牛乳がまったくないそうです。
N さんと同じですね。
一方で家内は、ジャスコ北戸田には潤沢に牛乳があったと言っていますので、けっこう地域差があるのでしょうね。

テレビの情報では、首都圏の交通網がかなりビジーだということがわかりません。
僕は、幹線道路の大渋滞を自分で見てきたので、物流が混乱していて店頭への供給が途絶えているのではないかと想像していますが(正しいかどうかはわかりませんが)、やはり、供給不安に駆られた人は買いだめに走ると思います。
本当は、政府から、「首都圏は交通網が回復して物流の混乱が収まれば物資は安定供給される」ぐらいのコメントを出してほしいところです(出ないということはやはり供給不安があるのか?!!!)。

まあ、のんびり構えていますが、食べ物がなくなって泣きを見るかもしれません。
その時には、非常食の乾パン(賞味期限切れ)の処理ができると思っています。
ふ、ふ、ふ。 
2011年3月13日17:44  H:製薬メーカ勤務(埼玉在住)

皆さん

大変な生活になっているようですね。
東京は明日から、輪番(時間)停電になるようですね。
心からお見舞い申し上げます。

しかし、日本人というのはすごいものです。暴動も略奪もおこりません。
今朝の新聞に、中国人の話として、中国では50年経ってもこのように行儀よくならないだろう というのが載っていました。
2011年3月13日17:54  n_shuhei(大阪堺在住)

ご心配ありがとうございます。
心強いです。

僕も、日本人は大したものだと思いますが、一方で、西日本が健全な状態であるがゆえに(つまり「日本」である部分が全面的に被災したわけではないので)、破滅的な不安に陥らずに済んでいるのではないでしょうか。ある程度落ち着いていられるゆえんです。

あちこちで、駅員や警官にかみついている人もいましたが、こぜりあいやトラブルはほとんど見かけませんでした。春日通りをゾロゾロ歩いている俄か難民の人々も、大変行儀よく振舞っていたと思います。
コンビニでも、レジに行列している人たちは、おおむね順序良く。一人割り込みのおぢさんがいましたが、後ろの人が礼儀正しく注意したら、あっさり後ろに回っていましたね。ちょっとハラハラしたのですが何事もありませんでした。

そういえば、上野駅では、新幹線・在来線が運転見合わせとなったため、行き場を失った人が大量に出たのですが、その人たちが、駅で野宿しようとしていたところ、すかさず駅から排除されたそうです。駅員が並んでロープを持って、文字通り、駅からしめ出したそうです。どこへ行けというんだ!!という抗議に対し、駅員は、上野公園に行けと言ったといいますから、ひどいものです。 当地の避難場所は上野公園でしょうから、駅員の言うことは正論かもしれませんが、上野駅には土地勘のない旅行者(主に東北人)が多数いたと思われます。そういう人たちを上野公園の寒空に放り出すのは、あまり人間味のある対応とは言えないような気がしました。

明日は通常通り出勤できるでしょうか・・・。
2011年3月13日18:25  H:製薬メーカ勤務(埼玉在住)

浦安は埋立地の為液状化現象により歩道を中心に少なからずダメージがあります
地震当日家内と長男は都心から歩いて帰りました。翌朝2時39分!!。
近所に住む娘は亭主が出張中なので安全のため吸収しました
私は地震当時は高松におりまして当夜は羽田空港の床で一泊しました。

私は共同住宅の防災担当でもあり居住者の方々とご一緒にマンション共有地の修復作業をしていますが体力の強化にもなると思い頑張っています
みなさんよい人ばかりでうれしいです
現在上水道、下水道ともだめで困っています
自衛隊や市の職員の尽力をありがたく思っております

浦安以外の地区のところでもなにかしらご不便があろうかと思います
皆様のご無事を祈ります
2011年3月13日23:25 S (浦安在住)

皆さま,K です.
たいへんな状態になっていることは,こちらでも報道されています.
どうか気をつけてください.
2011年3月14日7:20 K (製薬メーカからの出向:米国アトランタ勤務)

 このメールのやりとりで、TV では報道されていないけれども、今回の地震で東京近辺に住む人たちがどのような影響を受け、どのように行動したかがよくわかる。良い記録だ。 隠居のできることはそれぐらいのことだ。

(追記:2011/3/14)
こんばんは

「被災地」としての東京、続報です。

計画停電が関心を集めていますね。
東京電力のずさんな対応が、注目の的です。
政府が問題なんでしょうねぇ。政府の無責任体制が、東電の迷走につながっているのでは?
政権が延命したからと舞い上がってしまい、節電大臣などと大臣ごっこをやっている場合では ないでしょう。
だいたい、本当の被災地である茨城県までが計画停電の範囲に入っているという噂を聞きましたが、本当でしょうか?????
本当だとしたらとんでもないことではないでしょうか・・・。

今日は、鉄道各社の運行情報が二転三転しました。
これは、東京電力からの情報が錯綜したことに起因していると聞いています。
また、聞いたところによると、乗っている電車が計画停電で止まった場合は、そこで運転打ち切り、電車からおろされてさようなら・・・なんですって????
もう無茶苦茶です。帰宅難民と出社難民を計画的に作り出すための無計画停電計画が、今行われている「計画停電」の実態ではないでしょうか。

今朝早く、京浜東北線が動いていると聞いて、駅に行きました。
しかし、駅のシャッターはしまっていました。
続々とバスに乗った通勤客が到着しているので、駅のバス停、タクシー乗り場には長蛇の列ができていました。
次に、埼京線が動いていると聞いて、埼京線の駅に行きました。
これまたシャッターがしまっていました。

仕方ないので、いったん帰宅して着替え、自転車で会社まで行きました。
片道20キロ、往復40キロの道のりです。
くたびれました。

会社で仕事していても、ネットの情報で、「○時から××線が止まるらしい!!」と知り、あわてて帰る人もいたりして。
どうやら、いったん出社したら帰れないつもりで、宿泊の支度をしてでかけるか、あるいは、オートバイ等、自前の足を確保するか、いずれかしかないようです。
とはいえ、今日のような無様な状態が明日以降も続くとは思えませんけどね。
いくら総理大臣が舞い上がっていても、官僚がもう少しましな状態にしてくれるでしょう。

自転車で街を走ってみて気づいたことは、確かに営業しているガソリンスタンドが少ないということです。そして、その少ないスタンドに、30台から50台もの車が行列しているということです。 特に、トラックは深刻だと思います。「運ぶ」「働く」ことに、燃料は不可欠ですからね。
本当にガソリンが不足しているなら、輸送機関とか、ごみ収集車とか、運送業者とか、日常生活を支える車に、優先的に燃料を供給するようにしないと、とんでもない悪循環に陥るような気がします。

一方で、幹線道路の猛烈な渋滞はなかったと認識しています。
もちろん、かなり混雑している、渋滞しているという印象はありますが、猛烈な渋滞がなくなれば、流通はある程度安定するのではないでしょうか。
それを期待しています。
流通のダメージと消費者行動の悪循環を断ち切らなければ・・・。

あー、それにしても、出たとこ勝負の交通機関、これがものすごいストレス。
行ってみないことには交通機関の様子がわからないというのは、すごいことです。
これまでの日本がいかに便利であったか、しみじみ感謝しています。
2011年3月14日18:48 H:製薬メーカ勤務(埼玉在住)

(追記:2011/3/15)
N です。

3/14は、千葉市は、総武線(緩行、快速)、京葉線、京成線と全く動かなかった為、朝5:10頃、駅に行ったんですが帰って来ました。

それからは、自宅がサテライト・オフィース状態でした。
私が管理する部門の人に連絡を取り、徒歩・自転車で来られる主な人以外は、自宅待機の指示を出したりしていました。
(管理するシステムは、3/12にシステムを停止していましたので問題ありませんでした)

それから、食料を買いにいったんですが、チョットしたスーパーは、「買うものが無い(特にカップめん等)」状態でした。
  家の近所には、昔から有る個人商店があるのですが、そこでは、結構ものが有り、店の人が「数日で流通が回復します」と言っていました。

15:00頃には、出勤していた人が帰りましたので、サテライト・オフィースも店じまいしました。

後は、3/15の準備で、「戸田公園近くの東横イン」を、15日/16日と予約し準備完了です。自宅の停電対策をしたのですが、「空振り」でした。

3/15 は、4:38の電車で会社に来て、システムを立ち上げ、デイリーJOBの再実行を行なっています。
3/15の停電が9:20-13:00ですので、稼動確認後、システムのたち下げます。そのころには、部下も出勤するでしょう。

3月末で管理職勇退(4月末退職、再雇用)になりますが、最後に来て思い出に残る出来事になりそうです。
2011年3月15日7:33  N (製薬メーカー勤務:埼玉在住)


2010年1月29日

Google Maps API で旅行地図を作る:線画を描くなど

 Studio YAMAKO さんのオーナーが、昨秋、中欧(ドイツ・チェコ・スロバキア・ハンガリー・オーストリア)を旅行したときの写真をコメント付きで、12 回に分けて投稿されている。
 これを題材に、Google Maps API を使って、旅行地図を作ってみた。今まで、何回か同じような旅行地図を作成しているが、今回はいくつかの新しい試みをしてみたので、いままでに学習したことも含めて、備忘録として記録しておきたい。

 Google Maps API を使って、Web ページ上に自作地図を埋め込むには、
  • HTML(CSSを含む): 自分で Web ページが作れる。
  • JavaScript: 簡単な文法が分かる。
  • XML: タグの意味が分かるなど文法がわかる。
の知識が必要であるが、基本的な文法さえ知っておればなんとかなる。それ以上の細かいことは、ネット上で検索すれば教えてくれるサイトが沢山ある。どのサイトが親切かを知っている方が重要である。私は、英語のページであるが、 w3schools.com を重宝している。体系的によくまとめられており、独習にもってこいである。
 また、Google Maps API でWeb ページ上に地図を埋め込むには、サンプル・コードがネット上で提供されているので、これを Copy&Paste して、自分用に修正し利用すればよい。詳細な部分は、理解しようとすると学習に時間がかかる。ただ、自分用に修正するときに、上のような基本的な知識は必要だろう。
 サンプル・コードはいろいろなサイトで提供されているが、私は、これも英語のサイトであるが、"Google Maps API Tutorial" のコードを主として参照させてもらっている。自分のやりたいことが、整理された形で提供されている。
 今回、地図上に線を描くサンプル・コードは、XMLファイルを使いたいこともあって、このサイトのコードを自分なりに修正して使用した。
日本語のサイトでは、Ajax Tower の「Google Maps入門」に多くのサンプル・コードがある。
 書籍は、「Google Maps API 徹底活用ガイド」を購入した。Google Maps API の基本的なユティリティが解説されているので、理解を助けてくれる。

 今回作った地図は、次のような構成になっている。
  1. 中欧の全体地図: 訪問した都市に通常マークred-dot.pngが表示される。
    1. このマークをクリックするか、地図の右欄にある地名をクリックすると、吹き出しが表示される。
    2. 吹き出しの中に表示されている「詳細地図」をクリックすると市街地図にリンクする。
    3. 各都市間をブルーのラインで訪問順に結んでいる。
  2. 市街地図:初期に表示する地図のタイプを航空写真にしている。
    1. 地図の右欄にある場所のチェックボックスをクリックすると番号入りマークが表示される。
    2. 場所名の下の青字をクリックすると写真が lightbox 形式で表示される。
  3. いずれの地図にも、地図を拡大・縮小できるコントロール、地図のタイプを切り替えるボタン、地図の縮尺をあらわすスケールが表示されている。

   これらの地図は、上記に記したサイトからいただいてきたコードを猿まねで自分なりに修正したものである。
中欧の全体地図は、HTML ファイルのなかにある Javascript で XMLファイルを呼び込んでいる。この Javascript の中で、Google Maps API が提供するユティリティが使われている。 具体的なコードを以下に示す。

全体地図用HTML(include Google Maps API JavaScript)
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">

<head>
<style type="text/css">
    v\:* {   behavior:url(#default#VML);   }
    </style>
<title>Google Maps</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=???????????-TOJLbO9UBLVgjJC7W8hRCNFlWI0Fg132ssdjgyNcr14mm9hSKsn5??????????????_Ypmz1A" charset="utf-8" type="text/javascript"></script>
	
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />	

<!-- POPUP Window -->
<script type="text/javascript" src="http://n-shuhei.net/script/delcash.js"></script>

</head>

<body onunload="GUnload()">
<div align="center"> 
<table border="1" width="auto" cellspacing="0">
<thead><tr>
<td bgcolor="#FFFFCC" align="center" colspan="2"><font color="#000000"><strong><big>中欧(ドイツ・チェコ・スロバキア・ハンガリー・オーストリア)を巡る旅</big></strong><br /><small>Internet Explorer で問題が出る場合は、キャッシュを消去してください。<input type="button" value="消去方法" onClick="open_win()"></small></font></td></tr>
</thead>
<tbody>
<tr><td><div id="map" style="width: 760px; height: 500px"></div></td>
<td width ="160px" valign="top" style="color: #000000; font-size: small;" align="left">
左の地図は、Google Mapsの機能を持っています。拡大・縮小・移動ができます。下の地名をクリッ
クすると該当位置に吹き出しが出ます。吹き出しの中のリンクをクリックすると詳細地図あるいは
関連投稿に飛びます。<br /><br /><div id="side_bar"></div></td></tr>
</tbody>
</table>
</div>

<noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b> However,
it seems JavaScript is either disabled or not supported by your browser. To view Google
Maps, enable JavaScript by changing your browser options, and then try again.
</noscript>

<script type="text/javascript">
    //<![CDATA[

    if ( GBrowserIsCompatible()) {
// this variable will collect the html which will eventualkly be placed in the side_bar
     var side_bar_html = "";
// arrays to hold copies of the markers and html used by the side_bar
// because the function closure trick doesnt work there
      var gmarkers = [];
      var htmls = [];
      var i = 0;

// A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
// save the info we need to use later for the side_bar
        gmarkers[i] = marker;
        htmls[i] = html;
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
        i++;
        return marker;
      }

// This function picks up the click and opens the corresponding info window
      function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
      }

// create the map
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.addControl(new GScaleControl());
      map.setCenter(new GLatLng(48.810481,14.315529), 6);
//    map.setMapType(G_HYBRID_MAP);

// Read the data from xml file
      var request = GXmlHttp.create();
      request.open("GET", "http://n-shuhei.net/????????/Polyline_ex_1.xml", true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = request.responseXML;
// obtain the array of markers and loop through it
          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          
          for (var i = 0; i < markers.length; i++) {
            // obtain the attribues of each marker
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);

            var html = markers[i].getAttribute("html");
            var label = markers[i].getAttribute("label");
// create the marker
            var marker = createMarker(point,label,html);
            map.addOverlay(marker);

           }
// put the assembled side_bar_html contents into the side_bar div
          document.getElementById("side_bar").innerHTML = side_bar_html;
 
// ========= Now process the polylines =====================
          var lines = xmlDoc.documentElement.getElementsByTagName("line");
// read each line
          for (var a = 0; a < lines.length; a++) {
// get any line attributes
            var colour = lines[a].getAttribute("colour");
            var width  = parseFloat(lines[a].getAttribute("width"));
// read each point on that line
            var points = lines[a].getElementsByTagName("point");
            var pts = [];
            for (var i = 0; i < points.length; i++) {
               pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
                                   parseFloat(points[i].getAttribute("lng")));
            }
            map.addOverlay(new GPolyline(pts,colour,width));
          }
// ===========================================================           
        }
      }
      request.send(null);
    }

    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team
// http://www.commchurch.freeserve.co.uk/   
// http://www.econym.demon.co.uk/googlemaps/

    //]]>
    </script>

   </body>
</html>

このコードでの学習した点は、114行目あたりの各都市間を訪問順に結んでいるブルーのライン(Google Maps API では、polyline という)を描くための Javascript 挿入することである。この polyline を描くのは、IE8 では次の処理をしなくてもいいらしいが、IE7 以下では、HTML 上部(head 部より前)に、
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
という記述が(斜め書き部分)必要であり、head 部分に次のスタイルを設定する必要がある。
<style type="text/css">
    v\:* {   behavior:url(#default#VML);   }
    </style>

呼び込んでくる XML ファイル
<?xml version="1.0" encoding="Shift_JIS"?>
<markers>
<marker lat="49.40187" lng="8.680401" html="Heidelberg &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_heidelberg.htm' target='_blank'&gt;ハイデルベルク詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="ハイデルベルク" ></marker>
<marker lat="49.379691" lng="10.180206" html="Rothenburg &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_rothenburg.htm' target='_blank'&gt;ローテンブルク詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="ローテンブルク" ></marker>
<marker lat="47.680125" lng="10.900841" html="Wieskirche &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/091124_001.jpg'  target='_blank'&gt;Photo:ヴィース教会&lt;/a&gt;&lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/091124_002.jpg'  target='_blank'&gt;Photo:ヴィース教会の内部&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="ヴィース教会" ></marker>
<marker lat="47.546872" lng="10.739136" html="Hohenschwangau &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_Hohenschwangau.htm' target='_blank'&gt;ホーエンシュヴァンガウ詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="ホーエンシュヴァンガウ" ></marker>
<marker lat="49.014906" lng="12.104187" html="Regensburg &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_Hohenschwangau.htm' target='_blank'&gt;レーゲンスブルク詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="レーゲンスブルク" ></marker>
<marker lat="50.082701" lng="14.422302" html="Praha &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_Praha.htm' target='_blank'&gt;プラハ詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="プラハ" ></marker>
<marker lat="48.810481" lng="14.315529" html="Cesky Krumlov &lt;br&gt;詳細は、&lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/08_1653.php' target='_blank'&gt;中欧旅行 その8 チェスキー・クルムロフ&lt;/a&gt;で。&lt;br&gt;(2009/11/4)" label="チェスキー・クルムロフ" ></marker>
<marker lat="48.143182" lng="17.112579" html="Bratislava &lt;br&gt;詳細は、&lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/11_0858.php' target='_blank'&gt;中欧旅行 その9 ブラスチラバ&lt;/a&gt;で。&lt;br&gt;(2009/11/5)" label="ブラスチラバ" ></marker>
<marker lat="47.495864" lng="19.050293" html="Budapest &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_Butapest.htm' target='_blank'&gt;ブダペスト詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/2)" label="ブダペスト" ></marker>
<marker lat="48.20926" lng="16.372633" html="Viena &lt;br&gt;&lt;a href='http://n-shuhei.net/studio_yamako/?????????/maps_Viena.htm' target='_blank'&gt;ウィーン詳細地図&lt;/a&gt;&lt;br&gt;(2009/11/6)" label="ウィーン" ></marker>
<line colour="#0000ff" width="4" html="You clicked the red polyline">
   <point lat="50.107368" lng="8.686066" /> <!--フランクフルト-->
   <point lat="49.40187" lng="8.680401" /><!--ハイデルベルク-->
   <point lat="49.379691" lng="10.180206" /><!--ローテンブルク-->
   <point lat="47.680125" lng="10.900841" /><!--ヴィース教会-->
   <point lat="47.546872" lng="10.739136" /><!--ホーエンシュヴァンガウ-->
   <point lat="49.014906" lng="12.104187" /><!--レーゲンスブルク-->
   <point lat="50.082701" lng="14.422302" /><!--プラハ-->
   <point lat="48.810481" lng="14.315529" /><!--チェスキー・クルムロフ-->
   <point lat="50.082701" lng="14.422302" /><!--プラハ-->
   <point lat="48.143182" lng="17.112579" /><!--ブラスチラバ-->
   <point lat="47.495864" lng="19.050293" /><!--ブダペスト-->
   <point lat="48.20926" lng="16.372633" /><!--ウィーン-->
   <point lat="48.112933" lng="16.55777" /><!--ウィーン空港-->
</line>
</markers>


市街地図(例として、プラハ市街図)のHTML(include Google Maps API JavaScript)は、つぎのようなコードである。ここでは、XML ファイルは使っていない。(学習不足で使うことができなかった。)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="http://n-shuhei.net/litebox/???/lightbox.css" type="text/css" media="screen"/>
<script type="text/javascript" src="http://n-shuhei.net/litebox/???//prototype.lite.js"></script>
<script type="text/javascript" src="http://n-shuhei.net/litebox/???/moo.fx.js"></script>
<script type="text/javascript" src="http://n-shuhei.net/litebox/???/litebox-1.0.js" charset="utf-8"></script>
<title>Google Maps JavaScript API map_13</title>
<script src="http://maps.google.co.jp/maps?file=api&amp;v=2&amp;key=ABQIAAAA_--TOJLbO9UBLVgjJC7W8hRCNFlWI0Fg????????????
  mm9hSKsn5IFaeCnFgl????????????" charset="utf-8" type="text/javascript"></script> </head> <body onload="initLightbox()"> <div align="center"> <table width="auto" border="1" bgcolor="#FFFFCC"> <thead ><tr><td id="th1" colspan="2" align="middle" ><big><strong>プラハ<strong></big></td></tr></thead> <tbody align="left"> <tr><td> <div id="map" style="width:730px; height:530px"></div> </td><td width ="210px" valign="top" style="text-decoration: color: #000000; font-size: small;">左の地図は、Google Mapsの機能を持っています。拡大・縮小・移動ができます。
下のチェックボックスをチェックすると該当位置にマークが立ちます。また、青文字をクリックすると写真がでてきます。<br/><input type="checkbox" name="cb1" onClick="checkbox1clicked()">   1. プラハ城<br />   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_008.jpg" title="プラハ城からの眺め" rel="lightbox[os]">プラハ城からの眺め</a><br />
<input type="checkbox" name="cb2" onclick="checkbox2clicked()"> 2. 聖ヴィート教会<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_003.jpg" title="プラハ城 聖ヴィート教会" rel="lightbox[os]">聖ヴィート教会</a><br />
;   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_004.jpg" title="ミュシャのステンドグラス(部分)" rel="lightbox[os]">ミュシャのステンドグラス</a><br />
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_005.jpg" title="聖ヴィート教会の祭壇" rel="lightbox[os]">聖ヴィート教会の祭壇</a><br />
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_006.jpg" title="聖ヴィート教会前景" rel="lightbox[os]">聖ヴィート教会前景</a><br/>
<input type="checkbox" name="cb3" onclick="checkbox3clicked()"> 3. 聖イジー教会<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_007.jpg" title=""聖イジー教会と修道院 rel="lightbox[os]">聖イジー教会と修道院</a><br />
<input type="checkbox" name="cb4" onclick="checkbox4clicked()"> 4. カレル橋<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_009.jpg" title="カレル橋 水害の跡" rel="lightbox[os]">カレル橋 水害の跡</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_010.jpg" title="カレル橋" rel="lightbox[os]">カレル橋</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091130_011.jpg" title="カレル橋の聖像" rel="lightbox[os]">カレル橋の聖像</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_003.jpg" title="モルダウ川河畔" rel="lightbox[os]">モルダウ川河畔</a><br />
<input type="checkbox" name="cb5" onclick="checkbox5clicked()"> 5. 旧市街入口<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_004.jpg" title="旧市街入口" rel="lightbox[os]">旧市街入口</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_005.jpg" title="プラハ城を望む" rel="lightbox[os]">プラハ城を望む</a><br />
<input type="checkbox" name="cb6" onclick="checkbox6clicked()"> 6. 旧市街広場<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_006.jpg" title="火薬塔" rel="lightbox[os]">火薬塔</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_007.jpg" title="ティーン教会" rel="lightbox[os]">ティーン教会</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_008.jpg" title="旧市庁舎の時計塔" rel="lightbox[os]">旧市庁舎の時計塔</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_009.jpg" title="仕掛け時計" rel="lightbox[os]">仕掛け時計</a><br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_010.jpg" title="ヤン・フス像" rel="lightbox[os]">ヤン・フス像</a><br />
<input type="checkbox" name="cb7" onclick="checkbox7clicked()"> 7. レギー橋<br/>
   <a href="http://n-shuhei.net/studio_yamako/????????????/091203_002.jpg" title="プラハ城を眺める" rel="lightbox[os]">プラハ城を眺める</a><br />
<br />参照記事:<a href="http://n-shuhei.net/studio_yamako/????????????/01_1623.php" target="_blank">中欧旅行 その6 プラハ(1)</a></td></tr></tbody></table></div> <!-- 番号入りマーカーを表示する。-->     <script type="text/javascript">     //<![CDATA[     var map;     var marker1, marker2, marker3, marker4, marker5, marker6, marker7;     map = new GMap2(document.getElementById("map"));     map.addControl(new GLargeMapControl());     map.addControl(new GMapTypeControl());     map.addControl(new GScaleControl());     map.setCenter(new GLatLng(50.086473,14.410651),14);     map.setMapType(G_HYBRID_MAP);     var markerIcon1 = new GIcon();     markerIcon1.image = "http://n-shuhei.net/????????????/Markers/marker1.png";  //   markerIcon1.shadow = "./img/shadow.png";     markerIcon1.iconSize = new GSize(35, 40);  //   markerIcon1.shadowSize = new GSize(70, 56);     markerIcon1.iconAnchor = new GPoint(18, 40);     var markerIcon2 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker2.png");     var markerIcon3 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker3.png");     var markerIcon4 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker4.png");     var markerIcon5 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker5.png");    var markerIcon6 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker6.png");    var markerIcon7 = new GIcon(markerIcon1, "http://n-shuhei.net/????????????/Markers/marker7.png");     var opt1 = {icon:markerIcon1};     var opt2 = {icon:markerIcon2};     var opt3 = {icon:markerIcon3};     var opt4 = {icon:markerIcon4};     var opt5 = {icon:markerIcon5};     var opt6 = {icon:markerIcon6};     var opt7 = {icon:markerIcon7};     marker1 = new GMarker(new GLatLng(50.088814,14.395523), opt1);     marker2 = new GMarker(new GLatLng(50.090755,14.400759), opt2);     marker3 = new GMarker(new GLatLng(50.091023,14.402025), opt3);     marker4 = new GMarker(new GLatLng(50.086473,14.410651), opt4);     marker5 = new GMarker(new GLatLng(50.086129,14.413869), opt5);     marker6 = new GMarker(new GLatLng(50.087382,14.4208), opt6);     marker7 = new GMarker(new GLatLng(50.081186,14.410672), opt7);     var marker1_is_displayed = 0;     var marker2_is_displayed = 0;   var marker3_is_displayed = 0;   var marker4_is_displayed = 0;    var marker5_is_displayed = 0;    var marker6_is_displayed = 0;    var marker7_is_displayed = 0;     function checkbox1clicked() {       if (marker1_is_displayed == 0) {         map.addOverlay(marker1);         marker1_is_displayed = 1;       } else {         map.removeOverlay(marker1);         marker1_is_displayed = 0;       }     }     function checkbox2clicked() {       if (marker2_is_displayed == 0) {         map.addOverlay(marker2);         marker2_is_displayed = 1;       } else {         map.removeOverlay(marker2);         marker2_is_displayed = 0;       }     } function checkbox3clicked() {       if (marker3_is_displayed == 0) {         map.addOverlay(marker3);         marker3_is_displayed = 1;       } else {         map.removeOverlay(marker3);         marker3_is_displayed = 0;       }     } function checkbox4clicked() {       if (marker4_is_displayed == 0) {         map.addOverlay(marker4);         marker4_is_displayed = 1;       } else {         map.removeOverlay(marker4);         marker4_is_displayed = 0;       }     }     function checkbox5clicked() {       if (marker5_is_displayed == 0) {         map.addOverlay(marker5);         marker5_is_displayed = 1;       } else {         map.removeOverlay(marker5);         marker5_is_displayed = 0;       }     }     function checkbox6clicked() {       if (marker6_is_displayed == 0) {         map.addOverlay(marker6);         marker6_is_displayed = 1;       } else {         map.removeOverlay(marker6);         marker6_is_displayed = 0;       }     }     function checkbox7clicked() {       if (marker7_is_displayed == 0) {         map.addOverlay(marker7);         marker7_is_displayed = 1;       } else {         map.removeOverlay(marker7);         marker7_is_displayed = 0;       }     }    //]]>     </script> </body> </html>
 この市街地図での学習点は、最初の表示を航空写真と地図の合成(HYBRID)にすることと、番号入りのマークを表示することである。
 番号入りのマークを表示する方法については、以前のエントリーで記録している。
これだけのことをするために、基礎知識の少ない老人には、ずいぶん学習しなければならないことが多かった。痴呆予防には有効かもしれない。

 
Google Maps API徹底活用ガイド
稲葉 一浩
毎日コミュニケーションズ
売り上げランキング: 105350
おすすめ度の平均: 3.5
4 さらっと流しつつテンコ盛りの内容
3 前半は簡単。後半は難解。
4 Google Maps をゴリゴリいじってみたい人に


2009年12月23日

隠居のMT備忘録:Google Account でコメント認証する

 Movable Type(MT)の最新バージョンは、MT5 になっている。バージョンアップに伴う煩雑さにかまけて、まだMT4.1 のまま使っている。今のところ、特段の支障はないし、MT4.25 にすると写真を拡大表示するのに多用している lightbox 2.0 が上手く動かないというトラブルも報告されている。

 私と同じように、MT を使ってブログを運営されている友人のエントリーにコメントを入れようとすると認証画面が変わっていて、Google Account でサインインできるようになっている。友人のMT は私よりバージョンは低い。何か新しいプラグインを導入したかと、それこそコメントで聞いてみたが、どうもそうではないようだ。

 ネットで調べてみると、MT4.25 になって標準で、Google 認証や mixi 認証などができる選択肢が増えているらしいが、それ以下のバージョンで動く特別なプラグインはないようだ。
 それで、私のMT4.1 でのブログでコメント認証の動きを再度調べてみると、なんと私のサイトでも、TypeKey でサインインしようとすると、screenshot のように友人と同じ認証画面がでてくることがわかった。


 これは、どうやら TypeKey の認証サービスが、TypePad Connect というコメントサービスに進化したためらしい。 TypeKey でサインインしようとするときに、http://www.typepad.com/services/signin というページにつながり、そこでいろいろな認証サービスを受けらられる仕組みがされているのである。

 このポップアップ画面のセレクトボックスで、Google を選択すると、下のように Google メールアドレスでサインインできる。これなら、コメント用だけのID を入力しなくていいので楽である。私はよく知らないが、Yahoo! や MIXI など他のID も選択できるようになっている。
 もちろん、今まで使っていた TypeKey の ID でもサインインできる。
なお、CTL キーを押しながら「サインイン」をクリックすると別のWindowタブでコメントすることができる。
GoogleAccountでの認証画面
 クラウド・コンピューティングというのであろうか、ネットのサーバー側でいろいろと処理してくれるのはいいが、知らない間に処理法が変わってくると、古い頭ではなんとなく危なっかしい気持ちになる。