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月28日金曜日
2020年2月27日木曜日
Method: photo.update を使ってみる
Method: photo.updateのリファレンスを読んでみます。写真の向き、場所の関連付け、接続などのメタデータの更新が可能。写真のピクセルは変更出来ない。upfateMaskフィールドのみが使用される。これが無ければ全てのフィールドに適用される。要はアップデートしたいフィールド指定を忘れない事。
エラーコードは省略
updateMask:
エラーコードは省略
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」は出来るのかも??
ジオタグ変更の様子を録画しました。
bodyはgetした内容を編集すれば良いのかな? この辺がちょっと不明
suggestionsに従って緯度経度だけ入力し、EXECUTEしてみました。結果はすぐに反映しないみたいなので、後日確認。エラーコードは返って来てないので成功なのだろうか?
追記:しばらく経つと、サムネイルをクリックした時に新しい位置にペグマンが移動しました。青点表示は更に時間が掛かるようです。getしても反映は遅いです。
数値で入力出来るので、タブレットを指先で動かすよりも正確に置けそうだ。
テスト用のアカウントでやってみたけど、APIキーを取得していなかったみたい。Chromeにログインさえしていれば「Try this API」は出来るのかも??
ジオタグ変更の様子を録画しました。
Method: photo.delete を使って削除
Publish APIのMethod: photo.delete を使って削除してみました。「試してみる」をクリックするとパラメーターを入力するだけで、このAPIを試すことが可能です。使うにはCredentials(資格情報)として、GoogleのアカウントとAPIキーが必要です。
削除に必要なのは「photoId」、64bitのIDを入力しEXECUTEをクリックするだけです。しばらくすると、写真タブから削除されたことが確認出来ました。getしてみると、下記の様に"NOT_FOUND"で削除の確認が出来ました。
削除に必要なのは「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 APIのMethod: photo.getを使ってみました。「試してみる」をクリックするとパラメーターを入力するだけで、このAPIを試すことが可能です。使うにはCredentials(資格情報)として、GoogleのアカウントとAPIキーが必要です。
photoId: IDを指定します。"CA"で始まる64bitの文字列です。
languageCode: 日本語ならば"ja"です。
view: プルダウンから"BASIC"を選択
EXECUTEをクリックすると、アカウント選択画面が表示されるので選択してください。APIキーを持っていると、APIが実行されて結果が表示されます。※初めての使用では画面が異なるかも知れません。
下記は拒否された写真の例です。
下記は承認されている写真の例です。
photoId: IDを指定します。"CA"で始まる64bitの文字列です。
languageCode: 日本語ならば"ja"です。
view: プルダウンから"BASIC"を選択
EXECUTEをクリックすると、アカウント選択画面が表示されるので選択してください。
下記は拒否された写真の例です。
{
"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 APIのMethod: 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日本語版を更新しておこう。
このメソッドを見るきっかけになったのは、この投稿(SVTP)です。Valeraさんに感謝。
filter: "placeId="に続けてプレイスIDを入力します。
languageCode: 日本語ならば"ja"です。
pageSize: 取りあえずデフォルトの100を入力
pageToken: あれば入力してください。
view: プルダウンから取りあえず"BASIC"を選択
EXECUTEをクリックすると、アカウント選択画面が表示されるので選択してください。
プレイス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のブラウザで該当サムネイルを選択します。黒い画面もしくは他の画面が表示されていても気にしないでください。もちろん正しい写真が表示されている場合も同様です。
2.「︙」 で「画像を共有または埋め込む」をクリックします。
3.「地図を埋め込む」をクリックします。
4.「HTMLをコピー」をクリック。この時に別の写真が表示されていても構いません。
5.メモ帳等に貼り付けてください。
6.「!1s」と「!2m」の間にPanorama IDは有ります。
7.Panorama IDの利用方法はあなた次第です。ユニークなIDなので、代替機能で近くの写真を表示しません。例えば「これ」が正しく表示されたら、今回の不具合が解消されたことが分かります。
https://www.google.com/maps/@?api=1&map_action=pano&pano=CAoSLEFGMVFpcE5ZUjhEV2dVMmhpZ0FiTU9DQnBFSndrZktTaWZOS2V6Q0owTWFY
参照
1.PCのブラウザで該当サムネイルを選択します。黒い画面もしくは他の画面が表示されていても気にしないでください。もちろん正しい写真が表示されている場合も同様です。
![]() |
| Choose a thumbnail |
![]() |
| Share or embed image |
![]() |
| Embed a map |
![]() |
| COPY HTML |
![]() |
| Paste on notepad |
![]() |
| The panorama ID can be found between the !1s and !2m. |
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文字を取り出す。
参照元
- Googleマッププラットフォーム 開発者ガイド
- GoogleMapへのリンクURL作成方法を調べた
要点のみ
下記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文字を取り出す。
登録:
コメント (Atom)





