解析情報をリクエストして使用する
このチュートリアルでは、リクエストの解析方法に関する情報を取得する方法を説明します。
手順
/geocode エンドポイントでは、リクエストをどのように解析したかについての情報を入手できます。アプリケーションでこの情報を使用して、リクエストにさらなる処理が必要かどうかを判断できます。または、アプリケーションで住所クレンジングにこの情報を使用して、将来のジオコーディング リクエストにおける Geocoder の成功率と信頼水準を高めることもできます。
この機能を有効にするには、show=parsing のパラメーターを使用します。
GET https://geocode.search.hereapi.com/v1/
geocode
?q=Unit+3+76+Sixth+Av+KEDRON
&show=parsing
&apiKey={YOUR_API_KEY}次のパラメーターを使用します。
- q - 名前を入力します。
- show - レスポンスに表示する追加フィールドを選択します。
- apiKey - APIキー。
注
このリクエストはAPIキー認証を使用します。HEREプラットフォームの認証オプションの詳細については、「Identity & Access Management Guide」(IDとアクセス管理ガイド)を参照してください。
上のリクエストに対するレスポンスは次のようになります。
{
"items": [
{
"title": "76 Sixth Ave, Kedron QLD 4031, Australia",
"id": "here:af:streetsection:XqjAl1dxDSkrHJXjoG-qHD:CggIBCCm0Z2fARABGgI3Nihk",
"resultType": "houseNumber",
"houseNumberType": "PA",
"address": {
"label": "76 Sixth Ave, Kedron QLD 4031, Australia",
"countryCode": "AUS",
"countryName": "Australia",
"stateCode": "QLD",
"state": "Queensland",
"city": "Brisbane",
"district": "Kedron",
"street": "Sixth Ave",
"postalCode": "4031",
"houseNumber": "76"
},
"position": {
"lat": -27.40998,
"lng": 153.03874
},
"access": [
{
"lat": -27.41005,
"lng": 153.03869
}
],
"mapView": {
"west": 153.03773,
"south": -27.41088,
"east": 153.03975,
"north": -27.40908
},
"scoring": {
"queryScore": 1,
"fieldScore": {
"district": 1,
"streets": [
1
],
"houseNumber": 1,
"unit": 1
}
},
"parsing": {
"district": [
{
"start": 19,
"end": 25,
"value": "KEDRON"
}
],
"street": [
{
"start": 10,
"end": 18,
"value": "Sixth Av"
}
],
"houseNumber": [
{
"start": 7,
"end": 9,
"value": "76"
}
],
"secondaryUnits": [
{
"start": 0,
"end": 6,
"value": "Unit 3"
}
]
}
}
]
}結果アイテムには parsing という名前のブロックが含まれています。
この例では、/geocode が district、street、houseNumber フィールドに対して照合する用語がクエリに含まれています。解析ブロックには、一致したすべてのフィールドと、各フィールドの値とクエリ内の対応する用語への参照が一覧表示されます。
解析された各リクエスト要素について、parsing ブロックには次のものが含まれます。
start- 一致した範囲の最初のインデックス (0 から始まるインデックス、包括的)end- 一致した範囲の最後のインデックスを 1 つ過ぎた位置 (0 から始まるインデックス、排他的)。終了と開始の差は、用語の長さを示します。value- 入力文字列内の一致する用語。クエリに記述されたものがそのまま表示されます。このクエリの例では、番地タイプは「Av」(Sixth+Av) と省略されています。これは、レスポンスの番地タイプの標準化された省略形 (Sixth Ave) とは異なります。
parsing ブロックには、レスポンス内の address ブロックと同じ住所コンポーネントすべての解析情報が含まれる場合があります。
また、parsing ブロックには、/geocode によって認識されたものの住所要素と一致しなかった、クエリの一部に関する情報が含まれる場合があります。現在 /geocode でサポートされている情報は、アパート、ユニット、フロアなどのセカンダリ ユニット指定子の 1 種類だけです(この例では、Unit 3)。
警告
parsingブロックの新しいタイプの要素が、予告なくリストに追加される場合があります。HERE Geocoding and Searchを使用しているアプリケーションではリストが固定されたものととらえないことが重要です。
修飾クエリまたはハイブリッドクエリの場合、parsingブロックには対応する修飾フィールドの名前も含まれます。
以下に、freeform テキストと修飾フィールドを含むハイブリッド クエリを示します。
GET https://geocode.search.hereapi.com/v1/
geocode
?q=Unit+3+76+Sixth+Av+KEDRON
&&qq=state%3DQueensland
&show=parsing
&apiKey={YOUR_API_KEY}上のリクエストに対するレスポンスは次のようになります。
{
"items": [
{
"title": "76 Sixth Ave, Kedron QLD 4031, Australia",
"id": "here:af:streetsection:XqjAl1dxDSkrHJXjoG-qHD:CggIBCCm0Z2fARABGgI3Nihk",
"resultType": "houseNumber",
"houseNumberType": "PA",
"address": {
"label": "76 Sixth Ave, Kedron QLD 4031, Australia",
"countryCode": "AUS",
"countryName": "Australia",
"stateCode": "QLD",
"state": "Queensland",
"city": "Brisbane",
"district": "Kedron",
"street": "Sixth Ave",
"postalCode": "4031",
"houseNumber": "76"
},
"position": {
"lat": -27.40998,
"lng": 153.03874
},
"access": [
{
"lat": -27.41005,
"lng": 153.03869
}
],
"mapView": {
"west": 153.03773,
"south": -27.41088,
"east": 153.03975,
"north": -27.40908
},
"scoring": {
"queryScore": 1,
"fieldScore": {
"state": 1,
"district": 1,
"streets": [
1
],
"houseNumber": 1,
"unit": 1
}
},
"parsing": {
"state": [
{
"start": 0,
"end": 10,
"value": "Queensland",
"qq": "state"
}
],
"district": [
{
"start": 19,
"end": 25,
"value": "KEDRON"
}
],
"street": [
{
"start": 10,
"end": 18,
"value": "Sixth Av"
}
],
"houseNumber": [
{
"start": 7,
"end": 9,
"value": "76"
}
],
"secondaryUnits": [
{
"start": 0,
"end": 6,
"value": "Unit 3"
}
]
}
}
]
}都道府県の解析情報には、state を参照する追加フィールド qq が含まれています。
追加情報
/geocodeエンドポイントパラメーターの詳細については、「APIリファレンス」を参照してください。
4 日前の更新