結果をレンダリングする言語を選択する
このチュートリアルでは、/autocompleteエンドポイントが、入力されたテキストの単語を住所または行政区画の一部と照合して、テキスト入力を補完する方法を説明します。
手順
/autocomplete エンドポイントは、一致する名前のバリエーションに基づいてクエリ言語を検出し、そのレスポンスに同じ言語を選択します。そのため、エンド ユーザーはクエリと入力したすべての単語を同じ言語で確認し、認識できます。全体的なレスポンス言語の一貫性は保持されます。
各/autocompleteエンドポイントの結果には、ユーザーの優先言語を示す言語フィールドが含まれます。この値は、langクエリパラメーターで指定された言語と同じか、クライアントアプリケーションがパラメーターを指定しなかった場合は、/autocompleteエンドポイントが入力クエリから識別した言語になります。
マップデータに複数のバリエーションがある言語の場合、2文字言語コードはマップデータに応じて拡張されます。ラテン文字の音訳形式の言語 *-Latn などとなります。
次の例では、ユーザーはギリシャのアテネ市を検索しています。ユーザーは英語で都市名を入力しています。
GET https://autocomplete.search.hereapi.com/v1/
autocomplete
?q=Athens
&limit=1
&apiKey={YOUR_API_KEY}次のパラメーターを使用します。
- q - 名前を入力します。
- limit - 返される結果の最大数。
- apiKey - APIキー。
注
このリクエストはAPIキー認証を使用します。HEREプラットフォームの認証オプションの詳細については、「Identity & Access Management Guide」(IDとアクセス管理ガイド)を参照してください。
/autocompleteエンドポイントは結果を英語で返します。一部の住所コンポーネントで英語が使用できない場合は、ギリシャ語の名前を音訳したラテン文字で返します。
{
"items": [
{
"title": "Greece, Athens",
"id": "here:cm:namedplace:20493491",
"language": "en",
"resultType": "locality",
"localityType": "city",
"address": {
"label": "Athens, Attiki, Greece",
"countryCode": "GRC",
"countryName": "Greece",
"state": "Attiki",
"county": "Attiki",
"city": "Athens"
},
"highlights": {
"title": [
{
"start": 8,
"end": 14
}
],
"address": {
"label": [
{
"start": 0,
"end": 6
}
],
"city": [
{
"start": 0,
"end": 6
}
]
}
}
}
]
}/autocompleteエンドポイントは結果項目の言語をen (英語)に設定します。
langクエリパラメーターを使用すると、クライアントアプリケーションでレスポンスの優先言語を指定できます。このレスポンスの優先言語が、/autocompleteエンドポイントがクエリ入力から特定した言語と異なる場合でも、一致したすべての住所フィールドはクエリと同じ言語で返されます。これにより、ユーザーは自分の入力が結果とどの程度一致するかを認識できます。/autocompleteエンドポイントは、残りのすべての住所フィールドについては、地図コンテンツ内に存在すればlangパラメーターで指定された優先言語で返します。
この場合、/autocompleteエンドポイントは、エンドユーザーの優先設定を反映させるため、langクエリパラメーターで指定されたものと同じ値をlanguageフィールドに返します。
次のアテネの住所クエリの例では、ユーザーはギリシャ語を音訳したラテン文字で住所を入力していますが、レスポンスの優先言語として英語を指定しています。
GET https://autocomplete.search.hereapi.com/v1/
autocomplete
?q=Athina+Stad
&lang=en-US
&apiKey={YOUR_API_KEY}ユーザーがレスポンスの内容を確認して認識できるように、/autocomplete エンドポイントは一致するフィールドをクエリと同様にギリシャ語を音訳したラテン文字で返します。ただし、その他のすべての住所コンポーネントは英語で返されます。/autocompleteエンドポイントはレスポンス内の結果項目のlanguageフィールドをen (英語)に設定しています。
{
"items": [
{
"title": "Greece, Athina, Stadiou",
"id": "here:af:street:REUzIIKJcWI.MEQiDuUVBA",
"language": "en",
"resultType": "street",
"address": {
"label": "Stadiou, 105 51 Athina, Greece",
"countryCode": "GRC",
"countryName": "Greece",
"state": "Attiki",
"county": "Attiki",
"city": "Athina",
"street": "Stadiou",
"postalCode": "105 51"
},
"highlights": {
"title": [
{
"start": 8,
"end": 14
},
{
"start": 16,
"end": 20
}
],
"address": {
"label": [
{
"start": 0,
"end": 4
},
{
"start": 16,
"end": 22
}
],
"city": [
{
"start": 0,
"end": 6
}
],
"street": [
{
"start": 0,
"end": 4
}
]
}
}
}
]
}入力テキストの単語が複数の言語と一致する場合、/autocompleteエンドポイントはlangパラメーターで指定された優先言語でそれらの単語を返します。2 番目の優先設定は国のデフォルトまたは地域の主要言語です。
次の例では、Berli という単語がドイツ語やイタリア語などの複数の言語に一致しています。顧客アプリケーションでは、レスポンスの優先言語としてイタリア語を指定しています。
GET https://autocomplete.search.hereapi.com/v1/
autocomplete
?q=Berli
&lang=it-IT
&limit=1
&apiKey={YOUR_API_KEY}/autocompleteエンドポイントは結果をイタリア語で返します。/autocompleteエンドポイントはレスポンス内の結果項目のlanguageフィールドをit (イタリア語)に設定しています。
{
"items": [
{
"title": "Germania, 10117, Berlino",
"id": "here:cm:namedplace:20187403",
"language": "it",
"resultType": "locality",
"localityType": "city",
"address": {
"label": "Berlino, Germania",
"countryCode": "DEU",
"countryName": "Germania",
"stateCode": "BE",
"state": "Berlino",
"countyCode": "B",
"county": "Berlino",
"city": "Berlino",
"postalCode": "10117"
},
"highlights": {
"title": [
{
"start": 17,
"end": 22
}
],
"address": {
"label": [
{
"start": 0,
"end": 5
}
],
"city": [
{
"start": 0,
"end": 5
}
]
}
}
}
]
}顧客のアプリケーションでlangパラメーターが指定されていない場合、/autocompleteエンドポイントは結果をデフォルト言語で返します。この例ではドイツ語となります。
追加情報
/autocompleteエンドポイントパラメーターの詳細については、「APIリファレンス」を参照してください。
4 日前の更新