住所オートコンプリート
入力途中の文字列に対する候補を、低レイテンシーと入力ミスへの強さを重視して返します。どの候補にも座標が含まれるため、ほとんどの実装では2回目の呼び出しは必要ありません。
GEThttps://api.mygeocode.com/v1/autocomplete
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
q必須 | 文字列 | ユーザーがこれまでに入力した文字列。2文字以上、128文字以下。 |
limit任意 | 整数 | 1から10。既定値は5。 |
countries任意 | 文字列 | 候補を絞り込むためのカンマ区切りのISO 3166-1 alpha-2コード。 |
proximity任意 | 文字列 | lat,lon。近くの候補が上位に表示されます。地図の検索ボックスでは指定を強く推奨します。 |
types任意 | 文字列 | address、street、postcode、city、region、country、poiからカンマ区切りで選んだもの。既定値はすべて。 |
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件のリクエストとして数えられます。 |
注意事項
- 入力は約150ミリ秒でデバウンスし、ユーザーが入力を続けている場合は処理中のリクエストをキャンセルしてください。レスポンスには応答対象の
queryが含まれるため、古いレスポンスを破棄できます。 - セッショントークンはありません。1回の呼び出しが1件のリクエストです。一般的な住所は4回から6回の呼び出しで選択されます。
- 公開サイトでは、無料枠でブラウザから呼び出すことを想定しています。数えられるのはあなたのIPではなく、訪問者のIPです。
- Googleの
places.Autocompleteウィジェット、Mapbox Search Box、HERE Autosuggest、Bing Autosuggestの形式は互換ホストで利用できます。
他のプロバイダーの形式での同じ検索
これらのプロバイダー向けに書いたコードがすでにある場合は、そのまま使えます。互換ホストは同じパスとパラメータを受け付け、このエンドポイントを背後に使って、そのプロバイダーのレスポンス形式で応答します。互換ホストの仕組みをご覧ください。
| プロバイダー | ホスト | パス |
|---|---|---|
| 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 Geocoding | mapbox.mygeocode.com | /search/searchbox/v1/suggest?q=... |
| LocationIQ | locationiq.mygeocode.com | /v1/autocomplete?q=... |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/autocomplete?text=... |
| TomTom Search | tomtom.mygeocode.com | /search/2/search/{query}.json?typeahead=true |
エラー
qが2文字未満の場合、またはtypesに未知の値が含まれる場合は400 invalid_request。