LoginSignup
4
5

APIを使ってStreet Viewから屋外の画像だけを取得したい

Last updated at Posted at 2023-11-18

はじめに

今回は、Street View Static APIというAPIを使用してStreet Viewから位置情報に基づいた画像を取得してみます。

研究でGoogle Street Viewから画像を取得したい機会があったのですが、その時に屋外の画像だけ欲しいなと思っていました。

方法を調べていたんですが、公式ドキュメントの端っこにしか情報がなく結構時間かかってしまったので、メモとして残しておきます。

解決したいこと

何も指定しないと、緯度経度によっては、室内の画像も取得できてしまう。(室内の写真なんていらん!)

こんな感じ↓

35.01412309_135.69319009_input.png

34.99861_135.759504_input.png

話さないこと

  • 詳細なコードの説明
  • プロジェクトの設定やAPIの有効化
  • API KEYを取得方法

解決方法

屋外の画像のみ取得するためのパラメータを指定してあげるだけ!(お手軽や〜)

ドキュメントによると、パラメータにsource=outdoorというパラメータを使用することで、屋外の画像のみ取得できることがわかりました。

スクリーンショット 2023-11-18 1.39.04.png

ちなみに、緯度経度によっては、屋外の画像がないため、その場合は以下の画像が返ってきていました。

ソースコード全体

def construct_url(latitude, longitude, api_key, zoom=14, fov=120, heading=90, pitch=0, source="default"):
    base_url = "https://maps.googleapis.com/maps/api/streetview?"
    params = f"location={latitude},{longitude}&fov={fov}&heading={heading}&pitch={pitch}&size=500x500&key={api_key}&source={source}"
    return base_url + params

def main():
    # ここでGoogle Static Image APIキーを設定
    API_KEY = "YOUR_API_KEY_HERE"

    # ここで緯度と経度を設定
    latitude = 35.6895  # 例: 東京の緯度
    longitude = 139.6917  # 例: 東京の経度
    source = "outdoor" # 屋外の画像を取得する場合は"outdoor"
    
    url = construct_url(latitude, longitude, API_KEY, source)
    print("Generated Image URL:", url)

if __name__ == "__main__":
    main()

まとめ

source=outdoorというパラメータを使用することで、Street Viewから屋外のみの画像を取得できました。

Street Viewを使用して何かしたい人の参考になれば!

4
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5