Google Places Autocompleteを使用して都市のみを表示する方法


  1. タイプフィルタリング: Google Places Autocompleteのリクエストには、タイプフィルタリングを使用することができます。都市のみを表示するようにフィルタリングするには、typesパラメータに'(cities)'を指定します。以下はJavaScriptのコード例です。
var input = document.getElementById('autocomplete-input');
var options = {
  types: ['(cities)']
};
var autocomplete = new google.maps.places.Autocomplete(input, options);

このコードでは、autocomplete-inputというIDを持つ入力フィールドをGoogle Places Autocompleteにバインドしています。typesパラメータに'(cities)'を指定することで、都市のみが提案されます。

  1. ジオコーディングの結果を利用する: もう一つの方法は、Google Places Autocompleteのジオコーディングの結果を利用する方法です。入力されたテキストをジオコーディングし、結果として得られる都市の情報を表示します。以下はPythonのコード例です。
import requests
def get_city_suggestions(input_text):
    url = 'https://maps.googleapis.com/maps/api/geocode/json'
    params = {
        'address': input_text,
        'components': 'country:JP',
        'key': 'YOUR_API_KEY'
    }
    response = requests.get(url, params=params)
    data = response.json()
    cities = []
    for result in data['results']:
        for component in result['address_components']:
            if 'locality' in component['types']:
                cities.append(component['long_name'])
    return cities

この例では、get_city_suggestions関数が与えられた入力テキストに基づいて都市の候補を返します。addressパラメータに入力テキストを指定し、componentsパラメータには国コードを指定しています(ここでは日本のコードである'JP'を使用)。また、keyパラメータにはGoogle Places APIのキーを指定する必要があります。

以上の方法を使用することで、Google Places Autocompleteを都市のみを表示するように制限することができます。これにより、ユーザーが都市のみを選択できるようになります。