2地点の緯度経度から距離を求める(Google MAPS APIとの比較~結果報告編~)

my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~テスト結果GoogleAPI編~)で、3平方の定理を使用した方式(ここでは「ろっきー方式」とさせていただいてます)と、Google MAPS APIが提供している距離の算出(google方式)の結果の差を報告しました。
※ろっきー方式の計算式はバックナンバーを参照して下さい。

今回はいよいよどちらの精度がよいのかを検証してみたいと思います。
測量計算(距離と方位角の計算)より取得した結果を「正しい結果」として、それを画面上に描画した結果は以下の通りとなりました。

図1-3者の結果比較-
図1-3者の結果比較-

※青がろっきー方式、赤がgoogle方式、緑が正しい結果です。
※なお、上記のサイトで計算すると、緯度、もしくは経度0の時、正しい結果が得られなかったので、0度を0度0分0.001秒として計算しています。(多分バグだと思います)
※計算上、0度から0度0分0.001秒までの長さはわずか3cmである為、今回の計算結果には影響を与えない範囲と考えられます。

なお描画は、ろっきー方式、google方式、正しい結果の順に上書き描画しています。
「ろっきー方式」、「google方式」それぞれの計算結果が正しい場合は、緑の点に上書きされるので、上書きされなかった(残ってしまった)点が多いほど、精度が悪いという事になります。

上記の図1を見ると、赤の点(Google方式)がほとんど無く、青の点(ろっきー方式)が多い事が分かります。
その結果、ろっきー方式よりもgoogle方式の方が精度が高い事が判明しました。

ではgoogle方式はどの様な計算式で、距離を割り出しているのか?エンジニアの自分としては気になって仕方がありません。
やはり、3平方の定理を使用したろっきー方式より精度が良いという事であれば、地球を球体とみなして計算をしているに違いありません。
しかし、自分だけの力でこの計算式を割り出すのは到底無理なので、ダメもとでいろいろ検索してたら、ろっきー方式と違う計算式を見つけ出しました。

この計算式を使って、再度my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)で紹介した方法で描画して、google方式との差を比較したいと思います。
今回の目的は達成しましたが、番外編として比較結果を次回報告したいと思います。

2地点の緯度経度から距離を求める(Google MAPS APIとの比較~テスト結果GoogleAPI編~)

flashcast:フリーで働くITエンジニア集団のブログ: 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~テスト結果自作計算編~)の続編です。
Google Maps API リファレンス – Google Maps API – Google Codeで紹介されている2地点の距離の結果を、flashcast:フリーで働くITエンジニア集団のブログ: 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)で紹介した方法で図形化すると、以下の様な図が出来上がりました。

図1-google方式の結果-
図1-google方式の結果-

・・・なんか、前回紹介した「ろっきー」方式と似ているような、でもちょっと違うような・・・
改めてろっきー方式と、google方式の違いを一つの図で表示させて、両者を見比べてみたいと思います。

図2-両者の比較結果-
図2-両者の比較結果-

青がろっきー方式、赤がgoogle方式で描画しています。
ろっきー方式、google方式の順に上書き描画していますので、赤い点しかない部分はろっきー方式とgoogle方式の計算結果が同じという事になります。

図2を見ると、緑で囲った部分の差が大きいようです。
そこで、緑で囲った部分を含む東経0~180度、北緯0~90度の範囲(図2のオレンジで囲った部分)だけをクローズアップして見てみたいと思います。
ただ、10度刻みだと間隔が大きすぎるので、5度刻みにして描画してみました。
クローズアップして描画した結果は以下の通りになりました。

図3-クローズアップ-
図3-クローズアップ-

図3を見ると、青で囲った箇所は結果がほぼ一致していますが、赤で囲った箇所はかなりの差が出ているようです。
とりあえず現時点で分かった事としては、以下の通りです。
・ろっきー方式とgoogle方式は計算結果に違いがある。
・計算結果の違いは、B地点の緯度経度によって、大きかったり小さかったりする。
※B地点とは、背景の黄色い罫線が交差している点を指しています。
この事から、ろっきー方式と、google方式とでは、計算式が異なると言う事が確実となりました。

では今回のシリーズの本題である「ろっきー方式とgoogle方式とではどちらが精度が良いのか?」を検証してみたいと思います。
そこで、正しい結果を取得するべく、過去にも何度かお世話になっている測量計算(距離と方位角の計算)よりクローズアップ部分のみの結果を取得して、この図に描画してみる事にしました。
※このサイトで得られた結果を正解として、ろっきー方式と、google方式を比較してみたいと思います。

描画してみた結果は、次回報告したいと思います。

●バックナンバー
第1回:flashcast:フリーで働くITエンジニア集団のブログ: 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)
第2回:flashcast:フリーで働くITエンジニア集団のブログ: 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~テスト結果自作計算編~)

2地点の緯度経度から距離を求める(Google MAPS APIとの比較~テスト結果自作計算編~)

my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)の続編です。
googleAPIが提供している距離計算「google方式」と、3平方の定理を使用した距離計算(ここでは「ろっきー方式」とさせていただきます)の精度の差を比較すべく、先ずはろっきー方式のテスト結果を報告します。

早速計算結果を描画してみたところ、以下の様な図が出来上がりました。

図1-ろっきー方式の結果-
図1-ろっきー方式の結果-

・・・う~ん。。。一見おかしな図形ですが、とりあえずこれはこれで良しとします。
ちなみにこの図形は、google方式との比較をする為のもので、この図形自体には何の意味もありませんのでご注意下さい。。。

では次にいよいよ「google方式」の検証です。
同じ3平方の定理(ろっきー方式)を使用していれば、同じ様な図形を描くはずですが、この方式は誤差が大きい為、別の方法を採用している可能性があります。

「google方式」はどの様な図形を描くのでしょうか?
ちなみに、googleの2地点の距離を求める方法については、もじゃもじゃさんの記事flashcast:フリーで働くITエンジニア集団のブログ: iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(iPhoneでテスト編)を参考にしました。

結果は次回報告したいと思います。

2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)

my-hobby : 2地点の緯度経度から距離を求める(global化 2/2)でglobal化が完了して一段落しましたが、メンバーのもじゃもじゃさんから、以下の様な話が出ました。
「GoogleMAPS APIにも、2地点の緯度経度から距離を求めるAPIがあるんだけど、ろっきーが紹介している方法とどちらの方が精度がいいのか知りたい」

googleの精度(以降「google方式」とします)に勝つつもりは無いですけど、ろっきーが紹介した方法(以降「ろっきー方式」とします)とどれだけ精度に差があるのか気になるところなので、せっかくだからこの疑問に対して自分なりの答えを出してみたいと思います。
ではどの様にして両者を比較すればよいのか?

比較と言うからには、やっぱり2地点のそれぞれの緯度経度から、「ろっきー方式」と、「google方式」を使用して、どの様な距離が算出されるかを比較すればよいという事になります。
ではテスト対象となる、2地点の緯度経度はどの様に決めるべきか?
ただ、単に1ケースだけでは、全体的な計算結果の差を把握する事は出来ません。
やはり全世界を網羅し、かつ簡単な(解り易い)テストケースであるのが、現時点では望ましいと言えます。

とりあえず最も単純な方法として、以下の様な方法を考えました。(1~4を順番に行なう)
1.東経0度、北緯0度の位置にポイントを打ち、これをA地点とします。
2.東経0~180度、西経0~180度、北緯0~90度、南緯0~90度の範囲(地球全体)で、それぞれ10度毎に線を引き、線が交差した部分にポイントを打ち、これをB地点とします。

図1-A地点とB地点の配置イメージ-
図1-A地点とB地点の配置イメージ-

※世界中にB地点として、703個のポイントが打たれます。
703=横(経度10度間隔)×縦(緯度10度間隔)=37×19=(360÷10+1)+(180÷10+1)=(360÷10+1(経度0度上のポイント))+(180÷10+1(緯度0度上のポイント))

3.A地点と、703箇所のB地点それぞれに対して、「ろっきー方式」「google方式」で距離を求める。
4.両者で算出された距離を比較する。

この結果をそれぞれ比較すれば、両者の計算結果にどれだけの違いが出てくるかが解ります。
ただ、それぞれの計算結果(数値)を比較しても個々の差がどれくらいあるかは解りますが、全体的な差のイメージが湧きません。

そこで、計算結果の距離をビジュアル的に表現してみたいと思います。
では、距離をどの様にして表現するのか?
とりあえず今回は以下の様な方法を考えてみました。

A、Bの2地点に対して距離を求めた場合、通常の2次元の世界であれば、A地点からB地点までを直線で引いた長さが距離となります。

しかし、3次元である円い地球を、図1の様に2次元上で表現している為、A地点とB地点を直線で結んだ長さが実際の距離にはなりません。
例えば単純に2次元上でA地点(0,0)、B地点(150,30)の2点に対して3平方の定理を使用して、斜辺の長さを求めると、152.97となります。
これに1度あたりの距離111Kmを掛けると、16979.73Kmとなります。
これを実際の地球に想定して、東経0度、北緯0度と、東経150度、北緯30度としての2地点の距離を「ろっきー」方式で求めると、15427.82Kmとなります。
上記の計算方法についてはmy-hobby : GoogleAPI~2つの住所から距離を求める~を参照して下さい。

図2-2地点の実際の距離-
図2-2地点の実際の距離-

上記の計算結果で得られたこの結果(図2)の距離を点として画面上に描画して、これを703のポイントに対して全て行ないます。
そうすると、A地点(東経0度、北緯0度)からB地点(703個のポイント)のそれぞれに対しての距離が点として描画される為、距離を基準とした「703個の点の集合からなる図形」が出来上がります。
これを「Google方式」、「ろっきー」方式のそれぞれに対して行い、先ずはビジュアル的に両者の計算結果を確認してみようという作戦です!

結果がどうなるか分かりませんが、興味がある方はこの「研究」にお付き合い下さい。
※研究なので失敗する事もあります。。。
なおこのテストの為に、専用のアプリをVB.netで開発してしまいました!

では先ず手始めに、「ろっきー」方式から試してみたいと思います。
さてどの様な図形が浮かび上がるのか?
結果は次回報告したいと思います。

Google ウェブマスターツールを使ってみる

Webサイトの検索エンジン対策(SEO)について色々調べていたら、偶然にも「Googleウェブマスターツール」という存在を知りました。
どんな機能があるかは知りませんでしたが、タイトルからして「面白そう」な感じなので、とりあえずアカウントを取得してユーザーになってみました。
ユーザーになる為には、メールアドレスとパスワードがあれば基本的になれます。
pic1

ログイン後に、解析したい自分のサイトのURLを申請します。
登録時に、申請したURLが自分のサイトであるかを証明する為に、以下の作業をGoogleより求められます。
1.指定したURLのRootにgoogleが示すファイルをアップロードする。
2.指定したURLのRootにあるhtmlファイルのmetaタグにgoogleが示す文言を挿入する。
上記いづれかの操作を行なった後、登録作業を続行すると正常に登録されます。
pic12

自分は1の方法で登録を行いました。
登録を行った後は、ファイルを削除しても問題は出ませんでした。

早速登録されたURLをクリックすると、「ダッシュボード」画面に遷移しました。
pic13

ここでは、「上位の検索クエリ」と「クロールエラー」を確認する事が出来るようです。
「上位の検索クエリ」をヘルプで調べてみると、以下の様な記述がありました。

[上位の検索クエリ] ページには、サイト内のページの検索に使用されたクエリの情報が表示されます。これらのクエリに関連したコンテンツをサイトで提供することで、ユーザーはサイトが価値あるものと判断し、サイトにリンクする可能性が高くなります。

コレは便利!SEOに役立ちます!!
順位が高いクエリに対して、SEOを行なえば効果が上がると言う事が分かります。
※あくまでGoogle検索上での話ですが・・・
zipnaviは予想通り「郵便番号検索」が1位になっていました。
ちなみに、2位以下はヒミツです。。。

「クロールエラー」は以下の様な意味があるようです。

[クロール エラー] ページでは、クロール時にアクセスできなかった URL の詳細を確認できます。モバイル用のクロール エラー ページでは、モバイル ウェブサイトの URL のクロール時に発生した問題の詳細を確認できます。

コレも便利!バグの検知に役立ちます!!
クロールエラーがあると言う事は、ホームページ上で何らかの異常が起きていると言う事なります。
ちなみに、zipnaviはほぼ0件。「見つかりませんでした」の2件は市町村合併等が原因で無くなってしまったページと思われます。

他にも色々な機能があるようですので、今後も有効活用したいと思います。
自分のサイトを持っている方は、ぜひお薦めします!

Trendプロテクトで「未テスト」となっているページを「安全」なサイトにする方法

自宅のPCにはウィルスバスター2009がインストールされていますが、IEやFireFoxを使用してGoogleなどで検索すると、検索結果一覧のflashcastのタイトルの横に「?」マークが表示されてしまいます。
更に「?」マークにマウスのカーソルを当てると、「未テスト」として表示されます。
pic0
コレって何?
もしやウィルスバスターがサイトをクロールして、安全なサイトか、そうで無いかをチェックしてるの?

flashcastはブログを掲載しているサイトなので「安全」ですが、「未テスト」となっている意味がわかりません。
とりあえず「安全」なサイトとして表示させたいので、色々と調べていると、[memo] Trendプロテクトで自分のページが「未テスト」になっている場合の対応まとめ – RinGoon POP!!というサイトを見つけました。

このサイトの内容から以下の事が分かりました。
・「未テスト」を「安全」なサイトにしてもらう為には、トレンドマイクロのHPから申請をする必要がある。
・申請をする為には、ウィルスバスターのシリアル番号を取得する必要がある。

前者は仕方の無い事ですが、後者は意味が分かりません。
とりあえず、自分はウィルスバスターのライセンスを契約していたので、早速このHPを参考にしながら申請してみる事にしました。

今回参考にしたHPに貼られていたリンクから、トレンドマイクロのHPにアクセスすると、以下の様なページにたどり着きました。

pic1

内容を確認すると、「安全」なサイトとして表示されないのは、以下の理由である事が分かりました。

これは、最近作成されたページなど、弊社サーバでの評価がまだ行われていないページや、Trendプロテクトでサポートされていないプロトコル (HTTPまたはHTTPS以外のプロトコル) が使用されているページで表示されます。そのページが「危険」と判断されたわけではありません。
もしご自身のページが「未テスト」となっていて評価を希望される場合は、以下リンクにあるWEBフォームよりお問合せください。

flashcastはオープンして1年経っているのに、まだ「最近作成されたページ」扱いされているようです。
とりあえず、上記の案内文に従って、申請作業を続けます。

1.「トレンドマイクロ サポートセンター 受付フォーム」をクリック

2.次ページで「Step1:お問合わせ先の確認」メニューの「個人製品向けお問い合わせ」をクリック
※このページには色々それらしいリンクがあったのですが、個人で購入したライセンスなので、このリンクをクリックしました。
pic2

3.次のページに遷移し、「STEP2:サポートに問い合わせる」メニューの「操作、設定、トラブルについて」をクリック
ここでも問い合わせ方法が色々ありましたが、今回はWebフォームからの問い合わせにしました。
pic3

4.次ページに遷移すると「シリアル番号」の入力を求められます。
※シリアル番号が無いとこの先には進めません。
pic4

5.次ページに進むと、個人情報、及び問い合わせ内容を入力する欄があるので、参考にしたHPの内容を踏まえて、以下の様に入力して申請。
pic5
※「お問い合わせ内容」に注意して入力する。以下の様な感じで入力しました。
以下のサイトにおいて「Trendプロテクト」が「未テスト」の状態となっていますので評価をお願いいたします。
・評価を希望するWebページのURL:http://flashcast.jp/
・上記Webページの概要:ブログ

申請してから、1営業日後に問い合わせに対する受付のメールが届き、更にそれから1営業日後、「安全」なサイトとして認定されました。
pic6
同じ様に自分が運営するサイト「zipnavi」も申請して、「安全」なサイトとして認定されました。

今回の様に検索一覧に表示されるコンテンツが「未テスト」と「安全」では、ユーザーの心理としては当然「安全」なサイトの方が、クリックしやすいのは当たり前です。
ただそれを、ウィルスバスターのライセンスを持っている人しか申請できない、というのは改善して欲しいと思いました。