ラベル panorama ID の投稿を表示しています。 すべての投稿を表示
ラベル panorama ID の投稿を表示しています。 すべての投稿を表示

2020年3月2日月曜日

Publish API を使うためにphotoIdとplaceIdを得る方法

Publish APIを使うには"placeId"と"photoId"が必要です。

(1)先ずは"placeId"の取得方法です。
JavaScriptを使える方は「POI Click Events」にサンプルがあるのでご覧ください。

下記の方法でも"plaseId"を得ることが出来ます。
1.「自分の投稿」から「写真」のサムネイル一覧で場所名をクリックしてください。

2.アドレスバーの「place」の後ろに"placeId"があります。

(2)次に"photoId"の取得方法です。
JavaScriptを使える方は「Street View Events」に参考になるサンプルがあるのでご覧ください。

下記の方法でも"photoId"を得ることが出来ます。
1.「自分の投稿(Your contributions)」からサムネイルをクリックしてください。
2.タイトルカードのメニュー「」から「画像を共有または埋め込む」をクリックします。
3.「地図を埋め込む」をクリックします。
4.「HTMLをコピー」します。

5.HTMLコードの"!1s"と"!2m"の間に"photoId"が有ります。

得られた"photoId"は下記のURLに追記すると画像が表示されます。(参照)
https://www.google.com/maps/@?api=1&map_action=pano&pano=


2020年2月29日土曜日

Method: photos.batchUpdateを使ってまとめてアップデート

Method: photos.batchUpdateを使うとまとめてアップデート可能です。photo.updateを続けて複数書くような感じです。途中までやってみたら、下記の様に青い+マークをクリックしながら記入して行けば良いみたいです。一度に出来るのは20枚(?)までとの事。SVAで、すべて選択の時も20枚までにしなきゃダメなのかも。

アップデートするものが無いので、さわりだけです。
batchUpdate

Method: photo.updateを使ってplace変更

Method: photo.updateを使ってplaceを変更してみました。photoId, placeId, 場所名が必要です。updateMaskはplaces, Request bodyにはplaceId、名前、言語コードを記入します。下記の様に入力後、EXECUTEです。
updateで場所(リスティング)の変更
以前に二か所に登録された時期が有りましたが、そのまま残しておいた写真のデータをgetしてみると、下記の様になってました。"places"と複数形になっているので、本来は複数個所登録出来る仕様なのかも知れません。同様に入力したら今も二重登録可能かも。
場所が二重に登録された例

Method: photo.updateを使って結合(connections)

Method: photo.updateを使って結合(connections)してみました。シンプルに2枚の写真を互いに結合してみます。必要なのは各々のphotoIdで、updateMaskにはconnectionsを指定します。事前に結合した写真のデータを参考のためにgetしておくと分かり易いです。Request bodyのblue "add" circleをクリックして行き、idは結合相手のphotoIdを記入します。EXECUTEしたら、もう1枚の写真も同様に処理します。終わったら、Method: photos.listで確認すると結合されていることが分かります。但し、マップ上に反映されるまで時間が掛かります。あれ、これを書きながらマップを確認して見たらもう接続されてました。SVA使うよりも早いのかな、単にサーバーが暇だっただけかも。

Request bodyは下記の様な内容だけ書けばOK!
実際にやってみる方が簡単です。 Try this API
多分Method: photos.batchUpdateを使えば一度に出来るのかも。


{
  "connections": [
     {
        "target": {
          "id": "CAoSLEFGMVFpcE・・中略・・WHd1cVJRUjBk"
        }
      }
  ]
}

2020年2月28日金曜日

Let's try the Street View Publish API.

Publish APIを使ってみましょう!

公式の情報はココから読めます。英語だし、プログラマーでは無い私にはちんぷんかんぷんです。チラ見してガイドに進みます。前書きを読むとサードパーティアプリの開発者向けと書いてあるので、ど素人には難し過ぎです。でもAPIs Explorerを使うと1分間で体験出来るらしい。APIs Explorerをクリックすると、・・・1分で諦めました。

流し読みして、Method: photo.getを見つけました。画面右側に「Try this API」があります。これで何か出来そうだな。photoIdは何故か知っていたので、フォームに貼り付けて、LanguageCodeは日本語だから「ja」と記入、viewはプルダウンからBASICを選択です。EXECUTEをクリックしてみると、Googleのアカウント選択画面が表示されたので、該当アカウントを選択です。認証をパスすると、EXECUTEの下に結果が表示されます。あれ? API keyはどうなったんだろう。昔登録してたかも??

photoIdはHow to get Panorama ID を読めば取得出来ると思います。Panorama IDとかPano IDとか書き方が違いますが、64BITの文字列です。JavaScriptを使える人はStreet View Events 辺りを参照すればGUIで取得可能です。

続きは「Method: photo.getを使ってみた」を読んでください。拒否された写真と承認された写真のデータ例を書いています。

データ形式は難しいけど、位置情報を数値で見れたり、結合の状況が分かるので便利です。

※メモ photoIdの欄に使用したIDが蓄積されるけど、これはリスト表示の部分にマウスポインターをかざして、Shift + Deleteキーで削除出来ます。

2020年2月27日木曜日

Method: photo.update を使ってみる

Method: photo.updateのリファレンスを読んでみます。写真の向き、場所の関連付け、接続などのメタデータの更新が可能。写真のピクセルは変更出来ない。upfateMaskフィールドのみが使用される。これが無ければ全てのフィールドに適用される。要はアップデートしたいフィールド指定を忘れない事。


エラーコードは省略

updateMask:
    • pose.heading 写真のセンターの向き
    • pose.latLngPair ジオタグ緯度経度
    • pose.pitch 仰角
    • pose.roll 回転
    • pose.level 建物の階数 1F 2F など
    • pose.altitude 高度(地上高?) m単位
    • connections 他写真へのリンク
    • places 場所の関連付け(リスティング)
取りあえずやりたい事は位置情報のセットなので、これに注目pose.latLngPair

bodyはgetした内容を編集すれば良いのかな? この辺がちょっと不明
suggestionsに従って緯度経度だけ入力し、EXECUTEしてみました。結果はすぐに反映しないみたいなので、後日確認。エラーコードは返って来てないので成功なのだろうか?
追記:しばらく経つと、サムネイルをクリックした時に新しい位置にペグマンが移動しました。青点表示は更に時間が掛かるようです。getしても反映は遅いです。

数値で入力出来るので、タブレットを指先で動かすよりも正確に置けそうだ。

テスト用のアカウントでやってみたけど、APIキーを取得していなかったみたい。Chromeにログインさえしていれば「Try this API」は出来るのかも??

ジオタグ変更の様子を録画しました。


Method: photo.delete を使って削除

Publish APIMethod: photo.delete を使って削除してみました。「試してみる」をクリックするとパラメーターを入力するだけで、このAPIを試すことが可能です。使うにはCredentials(資格情報)として、GoogleのアカウントとAPIキーが必要です。

削除に必要なのは「photoId」、64bitのIDを入力しEXECUTEをクリックするだけです。しばらくすると、写真タブから削除されたことが確認出来ました。getしてみると、下記の様に"NOT_FOUND"で削除の確認が出来ました。


{
  "error": {
    "code": 404,
    "message": "Image not found for id: CAoSLEFGMVFpcE5wUEt6YU1zM3QzeXdDV21fYUp6aHRFRGxEYThxdUg1Z1E5dmto",
    "status": "NOT_FOUND"
  }
}

2020年2月26日水曜日

Method: photo.getを使ってみた

Publish APIMethod: photo.getを使ってみました。「試してみる」をクリックするとパラメーターを入力するだけで、このAPIを試すことが可能です。使うにはCredentials(資格情報)として、GoogleのアカウントとAPIキーが必要です。

photoId: IDを指定します。"CA"で始まる64bitの文字列です。
languageCode: 日本語ならば"ja"です。
view: プルダウンから"BASIC"を選択

EXECUTEをクリックすると、アカウント選択画面が表示されるので選択してください。APIキーを持っていると、APIが実行されて結果が表示されます。※初めての使用では画面が異なるかも知れません。

下記は拒否された写真の例です。
{
  "error": {
    "code": 503,
    "message": "Photo with id CAoSLEFGMVFpcE1zbkpwRkxhZTdyd2N2XzUwUHZjZnFFdW12VkU4NDA3aEpTT1cx is still processing. Please retry later.",
    "status": "UNAVAILABLE"
  }
}

下記は承認されている写真の例です。
{
  "photoId": {
    "id": "CAoSLEFGMVFpcFBaUFhKdDhFdkpuVk5fU1o3bHdNLVU5QnA3b3J0X2F5QjVGWTN0"
  },
  "pose": {
    "latLngPair": {
      "latitude": 33.510758081764017,
      "longitude": 130.490983016789
    },
    "altitude": "NaN",
    "heading": 34,
    "pitch": "NaN",
    "roll": "NaN"
  },
  "connections": [
    {
      "target": {
        "id": "CAoSLEFGMVFpcFB1XzFxVU9XU0s4ZG03QmNfUkNYckFHUnZTRGhkd0t3OUZoSDdV"
      }
    },
    {
      "target": {
        "id": "CAoSLEFGMVFpcE1saTRBX0taaU9vMHNXSTMzd2p6dXhfRzdiTjF1d1ROUzQ4N3lk"
      }
    }
  ],
  "captureTime": "2019-11-29T04:30:25Z",
  "places": [
    {
      "placeId": "ChIJ-Ta6fhiaQTURHrUsasHtMNs",
      "name": "太宰府歴史スポーツ公園",
      "languageCode": "ja"
    }
  ],
  "thumbnailUrl": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwgFhyphenhyphenxMDoLvzfgIcI4oNpa6-NMOPGIUDGe3nJ2D4YtTNW1rHrSmRGOzWMkLpQ0eN1dqI69zV9S0p38Mk2p2LIr57_UjT8zoOf9wMRlkmeQ5J-wWPICv1-xIbxN_lH1vL1CQq0CYtf8zk/",
  "viewCount": "390",
  "shareLink": "https://www.google.com/maps/@33.5107581,130.490983,3a,75y,34h/data=!3m4!1e1!3m2!1sAF1QipPZPXJt8EvJnVN_SZ7lwM-U9Bp7ort_ayB5FY3t!2e10",
  "transferStatus": "NEVER_TRANSFERRED"
}


Method: photos.list を使ってみる

Publish APIMethod: photos.listを使ってみました。「試してみる」をクリックするとパラメーターを入力するだけで、このAPIを試すことが可能です。使うにはCredentials(資格情報)として、GoogleのアカウントとAPIキーが必要です。API Explorerを使用する時にAPIキーは不要です。※APIs Explorer よくある質問

filter: "placeId="に続けてプレイスIDを入力します。
languageCode: 日本語ならば"ja"です。
pageSize: 取りあえずデフォルトの100を入力
pageToken: あれば入力してください。
view: プルダウンから取りあえず"BASIC"を選択

EXECUTEをクリックすると、アカウント選択画面が表示されるので選択してください。APIキーを持っていると、APIが実行されて結果が表示されます。※初めての使用では画面が異なるかも知れません。

プレイスIDに登録された自分の写真のリストを得ることが出来ますが、人の目にはちょっと見難いです。テキストとして保存して、数日後に再度実行してみると更新状況が分かるかも知れません。下記は3枚の写真がある名島豊川稲荷神社の例です。相変わらずですが、LatLngPairを見ると同じ場所になっているのが分かります。connentionsを見てみると結合されていることが分かります。targetの数だけ結合しています。
WinMerge日本語版を更新しておこう。


{
  "photos": [
    {
      "photoId": {
        "id": "CAoSLEFGMVFpcE1NVGpTNDBhZHZybEhYd1Z2U2pHdGhZU05wWkttSWV3cXNuQkFH"
      },
      "pose": {
        "latLngPair": {
          "latitude": 33.645629383125133,
          "longitude": 130.42260596824769
        },
        "altitude": "NaN",
        "heading": 3,
        "pitch": "NaN",
        "roll": "NaN"
      },
      "connections": [
        {
          "target": {
            "id": "CAoSLEFGMVFpcE1JdE56dlZlM3FZZHJ4c2dOcWN3RnBmeVQ1MVhLVGFZQUpXZDRq"
          }
        },
        {
          "target": {
            "id": "CAoSLEFGMVFpcE5MNDc5NlkyXzhKbXVOY0hERjBoakhQUXJhVWZCSTA0YWtfcHVS"
          }
        }
      ],
      "captureTime": "2019-12-09T00:00:00Z",
      "places": [
        {
          "placeId": "ChIJHbLZa4GPQTURi3jB7Vjss30",
          "name": "名島豊川稲荷神社",
          "languageCode": "ja"
        }
      ],
      "thumbnailUrl": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikOWjDR5qlx8hwVwSvOQHiNgmhgp3KFJGiKYE_56i5LKCMnds1gtyz5P6zKZD_SLCazAKlj24kLAvWgWkz2a4Ano1uXgyljQRI4JB8vS40Hin27pxpvrDjLEOy18_sZ5iSy4dMYfLYPZk/",
      "viewCount": "851",
      "shareLink": "https://www.google.com/maps/@33.6456294,130.422606,3a,75y,3h/data=!3m4!1e1!3m2!1sAF1QipMMTjS40advrlHXwVvSjGthYSNpZKmIewqsnBAG!2e10",
      "transferStatus": "NEVER_TRANSFERRED"
    },
    {
      "photoId": {
        "id": "CAoSLEFGMVFpcE1JdE56dlZlM3FZZHJ4c2dOcWN3RnBmeVQ1MVhLVGFZQUpXZDRq"
      },
      "pose": {
        "latLngPair": {
          "latitude": 33.645629383125133,
          "longitude": 130.42260596824769
        },
        "altitude": "NaN",
        "heading": 15,
        "pitch": "NaN",
        "roll": "NaN"
      },
      "connections": [
        {
          "target": {
            "id": "CAoSLEFGMVFpcE1NVGpTNDBhZHZybEhYd1Z2U2pHdGhZU05wWkttSWV3cXNuQkFH"
          }
        }
      ],
      "captureTime": "2019-12-09T00:00:00Z",
      "places": [
        {
          "placeId": "ChIJHbLZa4GPQTURi3jB7Vjss30",
          "name": "名島豊川稲荷神社",
          "languageCode": "ja"
        }
      ],
      "thumbnailUrl": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-KSxWStFzAuf3O7MSm52E-4Fxc49aEe5CGYk0ZFK2heFtC8P-akaxidxR079ZGpGJ9u0M91vM2bkSXfbgSBefY-i6c6Tws-w5FJR5HLcKpeFsTib89gMTuqz20wH7R_ltsaAfW6jOSm4/",
      "viewCount": "447",
      "shareLink": "https://www.google.com/maps/@33.6456294,130.422606,3a,75y,15h/data=!3m4!1e1!3m2!1sAF1QipMItNzvVe3qYdrxsgNqcwFpfyT51XKTaYAJWd4j!2e10",
      "transferStatus": "NEVER_TRANSFERRED"
    },
    {
      "photoId": {
        "id": "CAoSLEFGMVFpcE5MNDc5NlkyXzhKbXVOY0hERjBoakhQUXJhVWZCSTA0YWtfcHVS"
      },
      "pose": {
        "latLngPair": {
          "latitude": 33.645629383125133,
          "longitude": 130.42260596824769
        },
        "altitude": "NaN",
        "heading": 93,
        "pitch": "NaN",
        "roll": "NaN"
      },
      "connections": [
        {
          "target": {
            "id": "CAoSLEFGMVFpcE1NVGpTNDBhZHZybEhYd1Z2U2pHdGhZU05wWkttSWV3cXNuQkFH"
          }
        }
      ],
      "captureTime": "2019-12-09T00:00:00Z",
      "places": [
        {
          "placeId": "ChIJHbLZa4GPQTURi3jB7Vjss30",
          "name": "名島豊川稲荷神社",
          "languageCode": "ja"
        }
      ],
      "thumbnailUrl": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjBddazN4w4xBOHx8yS4d3mKVa7MBzZ2pnGYHIxx-A2QN83UCo_DuDmBQlgTkIleC0__lr2x2-9KYbigbzil9vEBjOvr3paS7-kWYTIpWCBpLwKgNZPe8SnUpfbdTEwMmZarIA7PJf6J4/",
      "viewCount": "301",
      "shareLink": "https://www.google.com/maps/@33.6456294,130.422606,3a,75y,93h/data=!3m4!1e1!3m2!1sAF1QipNL4796Y2_8JmuNcHDF0hjHPQraUfBI04ak_puR!2e10",
      "transferStatus": "NEVER_TRANSFERRED"
    }
  ]
}

このメソッドを見るきっかけになったのは、この投稿(SVTP)です。Valeraさんに感謝。

2020年2月18日火曜日

How to get Panorama ID

Googleマップに投稿した360度写真のPanorama ID(Pano ID)を得る方法です。今日現在起きているバグの為に、黒い画面もしくは別の写真が表示されていても取得可能です。

1.PCのブラウザで該当サムネイルを選択します。黒い画面もしくは他の画面が表示されていても気にしないでください。もちろん正しい写真が表示されている場合も同様です。
Choose a thumbnail

2.「」 で「画像を共有または埋め込む」をクリックします。
Share or embed image
 3.「地図を埋め込む」をクリックします。
Embed a map
 4.「HTMLをコピー」をクリック。この時に別の写真が表示されていても構いません。
COPY HTML
 5.メモ帳等に貼り付けてください。
Paste on notepad
 6.「!1s」と「!2m」の間にPanorama IDは有ります。
The panorama ID can be found between the !1s and !2m. 
7.Panorama IDの利用方法はあなた次第です。ユニークなIDなので、代替機能で近くの写真を表示しません。例えば「これ」が正しく表示されたら、今回の不具合が解消されたことが分かります。

https://www.google.com/maps/@?api=1&map_action=pano&pano=CAoSLEFGMVFpcE5ZUjhEV2dVMmhpZ0FiTU9DQnBFSndrZktTaWZOS2V6Q0owTWFY
参照

2020年1月30日木曜日

Panorama IDを指定してストリートビューを表示する方法

いつもググってるので、メモ

参照元

要点のみ
下記urlに続けて panorama IDを追加すれば表示されます。
https://www.google.com/maps/@?api=1&map_action=pano&pano=

表示例:旧福岡県公会堂貴賓館

オプション「&heading=」で向きを追加可能など詳細は参照元へ
※Googleマップのオプション「画像を共有または埋め込む」を使う方が簡単です。

panorama IDの取得は 「Street View Events」 辺りを参照

別の方法:Googleマップのサムネイルを選択し、右側の画像の「」から「画像を共有または埋め込む」を選択する。更に「地図を埋め込む」をクリックし、「HTMLをコピー」する。エディター等にペーストし、「!1s」と「!2m」の間の64文字を取り出す。

2017年12月5日火曜日

360度写真のpanorama ID

昔のブログから22文字と50文字のpanorama IDで船小屋鉱泉場のStreetViewを埋め込み表示してみました。現在のIDは64文字になっていますが、画像が真っ黒なので合っているのか確認出来ません。たぶん下記で合っていると思うけど?? 12月6日に修復済み「CAoSLEFGMVFpcFBPdGFpZEl2VzkwR0txTlFWejZ1dzU5MlVLRi1EYlVvV2QtVWRa」※Googleマップの埋め込みコードではなく、APIを利用した自作の埋め込みコードです。

※12/07 ユーザー名、アバター等の表示が変わってます。また変わるかも? 文末のStreet View Image APIの画像も見えない?? まだおかしいな!


  • 22文字ID:nRPNo4oi83MAAAQpqhQgRg
  • ユーザー名:アバター無し、Jun Kino (junk0128)、エイリアス名を含む
  • Googleマップで見る



  • 50文字ID:F:-UotwBxmW-X0/VhE1apwjqDI/AAAAAAAALUo/WaY01R5iM9g
  • ユーザー名:アバター有り、Jun Kino、エイリアス名無し
  • Googleマップで見る



  • 64文字ID:CAoSLEFGMVFpcFBPdGFpZEl2VzkwR0txTlFWejZ1dzU5MlVLRi1EYlVvV2QtVWRa
  • 真っ黒なので詳細不明 修復を期待して下記に埋め込みます。
    ※埋め込んでみたら、低解像度で表示されました。何か変わったのかな?
    12月6日に修復済み
  • Googleマップで見る <= 低解像度で表示されます。



上記の低解像度画像のメニューから埋め込みコードを下記に貼り付け



<iframe src="https://www.google.com/maps/embed?pb=!1m0!4v1512436612637!6m8!1m7!1sCAoSLEFGMVFpcFBPdGFpZEl2VzkwR0txTlFWejZ1dzU5MlVLRi1EYlVvV2QtVWRa!2m2!1d33.1835143!2d130.505932!3f0!4f0!5f0.8160813932612223" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>


埋め込みコードの中をよく見てみると、「!1s」と「!2e」の間にIDが含まれているのが分かります。参照:Google Maps Streetview - How to get Panorama ID

上記参照サイト中のソースからIDを使ったリンクを下記に埋め込みます。左から22文字、50文字、64文字のIDです。文頭に書いた64文字のIDでも表示可能です。画像の表示サイズを変えてみると最大は640x640ピクセルでした。
※12月7日 下記の表示が見えなくなってます。そのうち直るかな?


参照:Google Street View Image API