住所オートコンプリート

入力途中の文字列に対する候補を、低レイテンシーと入力ミスへの強さを重視して返します。どの候補にも座標が含まれるため、ほとんどの実装では2回目の呼び出しは必要ありません。

GEThttps://api.mygeocode.com/v1/autocomplete

パラメータ

パラメータ説明
q必須文字列ユーザーがこれまでに入力した文字列。2文字以上、128文字以下。
limit任意整数1から10。既定値は5。
countries任意文字列候補を絞り込むためのカンマ区切りのISO 3166-1 alpha-2コード。
proximity任意文字列lat,lon。近くの候補が上位に表示されます。地図の検索ボックスでは指定を強く推奨します。
types任意文字列addressstreetpostcodecityregioncountrypoiからカンマ区切りで選んだもの。既定値はすべて。
lang任意文字列ISO 639-1コード。既定値はen
key任意文字列ヘッダーで送信しない場合のAPIキー。

$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/autocomplete?q=oxford+st&proximity=51.515,-0.141&limit=3"
const url = new URL("https://api.mygeocode.com/v1/autocomplete");
url.searchParams.set("q", "oxford st");
url.searchParams.set("proximity", "51.515,-0.141");
url.searchParams.set("limit", "3");

const { suggestions } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
suggestions.forEach((s) => console.log(s.text, s.lat, s.lon));
import requests

r = requests.get("https://api.mygeocode.com/v1/autocomplete",
                 params={"q": "oxford st", "proximity": "51.515,-0.141", "limit": 3}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5)
for s in r.json()["suggestions"]:
    print(s["text"], s["lat"], s["lon"])
レスポンス
{
  "status": "ok",
  "query": "oxford st",
  "suggestions": [
    { "text": "Oxford Street, London W1, United Kingdom", "lat": 51.515419, "lon": -0.141588, "type": "street", "precision": "street", "place_id": "gb.street.0a91e2c4" },
    { "text": "Oxford Street, Southampton SO14, United Kingdom", "lat": 50.899021, "lon": -1.399537, "type": "street", "precision": "street", "place_id": "gb.street.77b4d1f0" },
    { "text": "Oxford Street Station, London W1, United Kingdom", "lat": 51.515167, "lon": -0.141251, "type": "poi", "precision": "house", "place_id": "gb.poi.3c5a8e19" }
  ]
}

レスポンスフィールド

フィールド説明
suggestions[].text文字列表示用テキスト(1行、langの言語)。
suggestions[].lat, lon数値座標。常に含まれます。
suggestions[].type, precision文字列ジオコーディングと同じです。
suggestions[].place_id文字列/v1/forward?place_id=...に渡すと、すべての構成要素と範囲を取得できます。その呼び出しは1件のリクエストとして数えられます。

注意事項

他のプロバイダーの形式での同じ検索

これらのプロバイダー向けに書いたコードがすでにある場合は、そのまま使えます。互換ホストは同じパスとパラメータを受け付け、このエンドポイントを背後に使って、そのプロバイダーのレスポンス形式で応答します。互換ホストの仕組みをご覧ください。

プロバイダーホストパス
Googleマップ・プラットフォーム(Google Maps Platform)gapi.mygeocode.com/maps/api/place/autocomplete/json?input=...
Bing Maps RESTサービスbing.mygeocode.com/REST/v1/Autosuggest?query=...
HEREジオコーディング・検索(HERE Geocoding and Search)here.mygeocode.com/v1/autosuggest?q=...&at=lat,lng
/v1/autocomplete?q=...
Mapbox Geocodingmapbox.mygeocode.com/search/searchbox/v1/suggest?q=...
LocationIQlocationiq.mygeocode.com/v1/autocomplete?q=...
Geoapifygeoapify.mygeocode.com/v1/geocode/autocomplete?text=...
TomTom Searchtomtom.mygeocode.com/search/2/search/{query}.json?typeahead=true

エラー

qが2文字未満の場合、またはtypesに未知の値が含まれる場合は400 invalid_request