Discover
/discover
Endpointを使用すると、場所を簡単に検索できます。 ユーザーが自由形式のテキストリクエストを送信します。このリクエストは、インテントと一致する関連性の順に候補アイテム ( 場所と住所が関連付けられています ) が返されます。
ランク付けの品質レベルは、グローバル レベルおよびローカルレベルで提供されます。
ユースケース
/discover
Endpointを使用すると、自由形式のテキストで検索できます。
- 正確な PlaceまたはAddress
- 名前を使用しています
- ジオポジションを使用しています
- 電話番号を使用しています
- 場所のクラス
- カテゴリ名を使用しています
- チェーン名を使用しています
- カテゴリ名またはチェーン名と、 場所を同時に 使用する
- 特定の場所の近くにある カテゴリ名またはチェーン名を使用する
自由形式のテキストがパラメーターの値として提供されます。q
結果アイテム
不明な場所を訪問するかどうかをエンドユーザーが判断できるよう にするために、/discover
は複数の選択肢を返し、複数のアイテムを作成することが予想されます。 エンドユーザーが最適なを選択します。
ワンボックスサーチ
/discover
メイン入力フィールドは q
、エンドユーザーから送信された自由形式のテキストを含むことを目的としています。 入力文字列は、様々な混合スクリプト ( ラテン、キリル、アラビア、ギリシャ料理など ) に含めることができます。 次に、パラメーターq
のエンコードを UTF-8 に設定してから、パーセントエンコードすることをお勧めします。
特殊なケース :
-
q
値は空ではありません。 - 空白文字、タブ、または改行のみを含む値
q
は、有効なクエリであり、空の結果リストを返します。
場所のコンテキストとフィルタリング
形状コンテキスト
返されたアイテムの関連性を最大化するため に、エンドポイント/discover
は次のいずれかの方法で提供されるクエリの場所のコンテキストを想定しています。
- 1 つのgeo-position( 「Searchの中心」とも呼ばれます )
- 円
- 境界矩形(バウンディング ボックスまたは bbox )
これらの 3 つのロケーションコンテキストは相互に排他的です。 いずれか 1 つのみを使用できます。
円と境界矩形は、場所のコンテキスト(中央の位置)とフィルタの両方を定義します。 返されたすべてのアイテムは、その地理的制約の内側に配置されます。
Serachの中心は パラメーターat
で指定 され、円および国コードのフィルターはパラメーターin
で指定されます。
国別フィルタ
in=circle
および in=bbox
と同様に、顧客は、Searchの中心に国に関連する地理的制約を指定できます。 これは、大文字で ISO 3166-1 alpha -3 国コードのリストの形式になります。 返却されたすべてのアイテムは、関連する国にあります。 注意
HERE Geocoding and Search は、 ISO コードに加えて国グループXEA
をサポート しています。これは国コードのリストAUT, BEL, BGR, HRV, CYP, CZE, DNK, EST, FIN, FRA, DEU, GRC, HUN, IRL, ITA, LVA, LTU, LUX, MLT, NLD, POL, PRT, ROU, SVK, SVN, ESP, SWE
と同じです
許可されている組み合わせ
許可されているat
と in
の 組み合わせリストは次のとおりです。
at
-
at
を使用します in=countryCode
in=circle
-
in=circle
を使用します in=countryCode
in=bbox
-
in=bbox
を使用します in=countryCode
最後に、 /discover
は、パラメーターroute
をパラメーターat
に追加することで、ルートに沿った検索をサポートします。 詳細については、ルートに沿ったSearchの実装を確認してください。
詳細については 、 API リファレンスを参照してください。
インターナショナリゼーション
可能な /discover
場合、 HERE Geocoding and Search Endpointは、エンドユーザーに適した言語でレスポンス項目を提示しようとします。 このためには、顧客が パラメータlang
を目的の BCP 47 言語コードに設定する必要があります。 lang
が設定 されていない場合、または結果の項目に要求された言語の翻訳がない場合、デフォルトの言語が使用されます。
近接性
/discover
Endpointは、地理的近接度も自由形式のテキストで取得します。 エンドユーザーは、カテゴリまたは「near」または「close to」のチェーン、または特定の場所名を検索するフレーズを送信できます。
例
たとえば、geo-position(42.36346,-71.05444)
からアメリカのレストランを探す場合、次のような要素が使用されます。
GET https://discover.search.hereapi.com/v1/
discover
?at=42.36346,-71.05444
&limit=1
&q=restaurant
&in=countryCode:USA
&apiKey={YOUR_API_KEY}
/discover
パラメータの詳細については 、『 API リファレンス』を参照してください。 上記のリクエストに対するレスポンスは次のようになります。
{
"items": [
{
"title": "Salumeria Italiana",
"id": "here:pds:place:840drt3p-898f6ee434794fe59895e71ccf9381e1",
"ontologyId": "here:cm:ontology:restaurant",
"resultType": "place",
"address": {
"label": "Salumeria Italiana, 151 Richmond St, Boston, MA 02109, United States",
"countryCode": "USA",
"countryName": "United States",
"stateCode": "MA",
"state": "Massachusetts",
"county": "Suffolk",
"city": "Boston",
"district": "North End",
"street": "Richmond St",
"postalCode": "02109",
"houseNumber": "151"
},
"position": { "lat": 42.36355, "lng": -71.05439 },
"access": [{ "lat": 42.3635, "lng": -71.05448 }],
"distance": 11,
"categories": [
{ "id": "600-6300-0066", "name": "Grocery", "primary": true },
{ "id": "100-1000-0000", "name": "Restaurant" },
{ "id": "100-1000-0006", "name": "Deli" },
{ "id": "600-6300-0067", "name": "Specialty Food Store" }
],
"references": [
{ "supplier": { "id": "core" }, "id": "31213861" },
{ "supplier": { "id": "tripadvisor" }, "id": "3172680" },
{ "supplier": { "id": "yelp" }, "id": "JNx0DlfndRurT-8KhSym7g" },
{ "supplier": { "id": "yelp" }, "id": "P44VNcZUUNZfiFy-c4SUJw" }
],
"foodTypes": [
{ "id": "304-000", "name": "Italian", "primary": true },
{ "id": "800-057", "name": "Pizza" },
{ "id": "800-060", "name": "Sandwich" }
],
"contacts": [
{
"phone": [{ "value": "+16175234946" }, { "value": "+16175238743" }, { "value": "+16177204243" }],
"fax": [{ "value": "+16175234946" }],
"www": [
{ "value": "http://www.salumeriaitaliana.com" }
],
"email": [{ "value": "contact@salumeriaitaliana.com" }]
}
],
"openingHours": [
{
"text": ["Mon-Sat: 08:00 - 17:00", "Sun: 10:00 - 16:00"],
"isOpen": false,
"structured": [
{ "start": "T080000", "duration": "PT11H00M", "recurrence": "FREQ:DAILY;BYDAY:MO,TU,WE,TH,FR,SA" },
{ "start": "T100000", "duration": "PT06H00M", "recurrence": "FREQ:DAILY;BYDAY:SU" }
]
}
]
}
]
}
回答には、最も多いものから最も少ないものへ複数の項目が含まれています。 各結果に次に高いレベルの要素が提供されます。
-
resultType
- HERE Geocoding and Search /discover
は place
、locality
、 street
などの複数のタイプのアイテムを返すことができます -
title
–検索結果の代表的な文字列。たとえば、場所の名前またはStreetの名前です -
address
- 結果の詳細なAddress -
position
- 結果の代表的な地理位置 (WGS 84) 。結果をマップに表示するために使用します -
access
- 結果へのアクセスの地理的位置 ( 例 : 入口 ) -
id
- 結果オブジェクトの識別子。 その値を使用 して、/lookup
エンドポイントを介してまったく同じオブジェクトを取得 -
categories
- place
結果のカテゴリ ID のリスト -
foodTypes
- 食品の準備 / 提供のplace
結果を得るためのFoodタイプ ID のリスト -
contacts
- place
結果の連絡先の詳細 ( 電話番号、 Web など ) のリスト -
openingHours
- place
結果の営業時間のリスト
さらに place
、結果について次のメタデータ応答要素が利用可能な場合は、 Discover が返します。
すべての結果について、 title
、id
、resultType
、position
のみが想定されます。
その他の例については 、付録を参照してください。