أفضل الممارسات خرائط Azure خدمة البحث

يتضمن خرائط Azure خدمة البحث واجهة برمجة التطبيقات التي توفر إمكانات مختلفة لمساعدة المطورين على البحث عن العناوين والأماكن وقوائم الأعمال حسب الاسم أو الفئة والمعلومات الجغرافية الأخرى. على سبيل المثال، يسمح Search Fuzzy للمستخدمين بالبحث عن عنوان أو نقطة اهتمام (POI).

تشرح هذه المقالة كيفية تطبيق الممارسات الصوتية عند استدعاء البيانات من خرائط Azure خدمة البحث. ستتعلم كيفية:

  • بناء الاستعلامات لإرجاع المطابقات ذات الصلة
  • تقييد نتائج البحث
  • تعرف على الفروق بين أنواع النتائج
  • اقرأ بنية استجابة البحث عن العنوان

المتطلبات الأساسية

تستخدم هذه المقالة تطبيق Postman لإنشاء استدعاءات REST، ولكن يمكنك اختيار أي بيئة تطوير واجهة برمجة التطبيقات.

أفضل الممارسات لترميز العناوين جغرافيًا

عند البحث عن عنوان كامل أو جزئي باستخدام خرائط Azure خدمة البحث، تقرأ واجهة برمجة التطبيقات الكلمات الأساسية من استعلام البحث. ثم تقوم بإرجاع إحداثيات خطوط الطول والعرض الخاصة بالعنوان. تسمى هذه العملية التكويد الجغرافي.

تعتمد القدرة على الترميز الجغرافي في بلد/منطقة على توفر بيانات الطريق ودقة خدمة الترميز الجغرافي. لمزيد من المعلومات حول إمكانيات الترميز الجغرافي لخرائط Azure حسب البلد أو المنطقة، راجع تغطية الترميز الجغرافي.

تقييد نتائج البحث

يمكن أن تساعدك واجهة برمجة تطبيقات Azure Maps Search في تقييد نتائج البحث بشكل مناسب. أنت تحد من النتائج بحيث يمكنك عرض البيانات ذات الصلة للمستخدمين.

إشعار

تدعم واجهات برمجة تطبيقات البحث معلمات أكثر من تلك التي تناقشها هذه المقالة فقط.

نتائج البحث المتحيزة جغرافيا

للحصول على نتائج جغرافية إلى المنطقة ذات الصلة للمستخدم، أضف دائماً أكبر عدد ممكن من تفاصيل الموقع. قد ترغب في تقييد نتائج البحث عن طريق تحديد بعض أنواع الإدخال:

  • اضبط المعلمة countrySet. يمكنك ضبطه على US,FR، على سبيل المثال. بشكل افتراضي، تبحث واجهة برمجة التطبيقات في العالم بأسره، لذا يمكنها إرجاع نتائج غير ضرورية. إذا كان طلب البحث لا يحتوي على معلمة countrySet، فقد يعرض البحث نتائج غير دقيقة. على سبيل المثال، يؤدي البحث عن مدينة باسم Bellevue إلى عرض نتائج من الولايات المتحدة الأمريكية وفرنسا لأن كلا البلدين/المنطقتين يحتويان على مدينة باسم Bellevue.

  • يمكنك استخدام المعلمات btmRight وtopleft لتعيين المربع المحيط. تقصر هذه المعلمات البحث على منطقة معينة على الخريطة.

  • للتأثير في المنطقة ذات الصلة بالنتائج، حدد معلمات الإحداثيات lat وlon. استخدم المعلمة radius لتعيين نصف قطر منطقة البحث.

معلمات البحث غير واضحة

نوصي باستخدام Search Fuzzy عندما لا تعرف مدخلات المستخدم لاستعلام بحث. على سبيل المثال، يمكن أن يكون الإدخال من المستخدم عنوانًا أو نوع نقطة اهتمام (POI)، مثل مركز تسوق. تجمع واجهة برمجة التطبيقات بين البحث عن نقاط الاهتمام والتشفير الجغرافي في بحث أحادي السطر:

  • تساعد المعلمات minFuzzyLevel وmaxFuzzyLevel في إرجاع التطابقات ذات الصلة حتى عندما لا تتطابق معامِلات طلب البحث تمامًا مع المعلومات التي يريدها المستخدم. لتحقيق أقصى قدر من الأداء وتقليل النتائج غير المعتادة، قم بتعيين استعلامات البحث على الافتراضيات minFuzzyLevel=1 وmaxFuzzyLevel=2.

    على سبيل المثال، عندما يتم تعيين المعلمة maxFuzzyLevel على 2، فإن مصطلح البحث مطعم يطابق مطعم. يمكنك تجاوز مستويات التشويش الافتراضية عندما تحتاج إلى ذلك.

  • استخدم المعلمة idxSet لتحديد أولويات المجموعة الدقيقة لأنواع النتائج. لتحديد أولويات مجموعة محددة من النتائج، يمكنك إرسال قائمة من الفهارس مفصولة بفواصل. في قائمتك، لا يهم ترتيب العناصر. تدعم خرائط Azure الفهارس التالية:

  • Addr - نطاقات العنوان: نقاط العنوان التي تم إقحامها من بداية الشارع ونهايته. يتم تمثيل هذه النقاط كنطاقات عناوين.

  • Geo - المناطق الجغرافية: التقسيمات الإدارية للأرض. يمكن أن تكون المنطقة الجغرافية دولة/منطقة أو ولاية أو مدينة، على سبيل المثال.

  • PAD - عناوين النقطة: العناوين التي تتضمن اسم الشارع ورقمه. يمكن العثور على عناوين النقاط في فهرس. مثال على ذلك Soquel Dr 2501. يوفر عنوان النقطة أعلى مستوى من الدقة المتاح للعناوين.

  • POI - مجالات الاهتمام: نقاط على الخريطة تستحق الاهتمام أو قد تكون مثيرة للاهتمام. لا يرجع عنوان البحث واجهات POIs.

  • Str - الشوارع: الشوارع على الخريطة.

  • XStr - اعبر الشوارع أو التقاطعات: التقاطعات أو الأماكن التي يتقاطع فيها شارعان.

أمثلة الاستخدام

  • idxSet=POI - البحث عن النقاط المهمة فقط.

  • idxSet=PAD,Addr - عناوين البحث فقط. PAD يشير إلى عنوان النقطة، ويشير Addr إلى نطاق العنوان.

عكس التكويد الجغرافي والتصفية لنوع كيان جغرافي

عند إجراء بحث في الرمز الجغرافي العكسي باستخدام عكس عنوان البحث، يمكن للخدمة إرجاع مضلعات للمناطق الإدارية. على سبيل المثال، قد ترغب في جلب مضلع المنطقة لمدينة. لتضييق البحث على أنواع كيانات جغرافية معينة، قم بتضمين المعلمة entityType في طلباتك.

تحتوي الاستجابة الناتجة على معرف الموقع الجغرافي ونوع الكيان المطابق. إذا قدمت أكثر من كيان واحد، فإن نقطة النهاية تعرض أصغر كيان متاح. يمكنك استخدام المعرف الهندسي الذي تم إرجاعه للحصول على الشكل الهندسي للجغرافيا من خلال خدمة مضلع البحث.

نموذج الطلب

https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&query=47.6394532,-122.1304551&language=en-US&entityType=Municipality

Response

{
    "summary": {
        "queryTime": 14,
        "numResults": 1
    },
    "addresses": [
        {
            "address": {
                "routeNumbers": [],
                "countryCode": "US",
                "countrySubdivision": "WA",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "municipality": "Redmond",
                "country": "United States",
                "countryCodeISO3": "USA",
                "countrySubdivisionName": "Washington"
            },
            "position": "47.639454,-122.130455",
            "dataSources": {
                "geometry": {
                    "id": "00005557-4100-3c00-0000-0000596ae571"
                }
            },
            "entityType": "Municipality"
        }
    ]
}

اضبط لغة النتائج

استخدم المعلمة language لتعيين لغة نتائج البحث التي تم إرجاعها. إذا لم يقم الطلب بتعيين اللغة، فسيستخدم خدمة البحث بشكل افتراضي اللغة الأكثر شيوعا في البلد أو المنطقة. في حالة عدم توفر أي بيانات باللغة المحددة، يتم استخدام اللغة الافتراضية.

لمزيد من المعلومات، راجع اللغات المعتمدة في خرائط Azure.

استخدم الوضع التنبئي (اقتراحات تلقائية)

للعثور على مزيد من التطابقات لطلبات البحث الجزئية، قم بتعيين المعامل typeahead على true. يتم تفسير هذا الاستعلام على أنه إدخال جزئي، ويدخل البحث في الوضع التنبئي. إذا لم تقم بتعيين المعلمة typeahead على true، فستفترض الخدمة أن جميع المعلومات ذات الصلة قد تم تمريرها.

في نموذج الاستعلام التالي، يتم الاستعلام عن خدمة عنوان البحث لـ Microso. هنا، تم تعيين المعلمة typeahead على true. يوضح الرد أن خدمة البحث فسرت الاستعلام على أنه استعلام جزئي. تحتوي الاستجابة على نتائج لاستعلام مقترح تلقائيًا.

نموذج استعلام

https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&typeahead=true&countrySet=US&lat=47.6370891183&lon=-122.123736172&query=Microsoft

Response

{
    "summary": {
        "query": "microsoft",
        "queryType": "NON_NEAR",
        "queryTime": 18,
        "numResults": 7,
        "offset": 0,
        "totalResults": 7,
        "fuzzyLevel": 1,
        "geoBias": {
            "lat": 47.6370891183,
            "lon": -122.123736172
        }
    },
    "results": [
        {
            "type": "Street",
            "id": "US/STR/p0/9438784",
            "score": 2.594099998474121,
            "dist": 314.0590106663596,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
            },
            "position": {
                "lat": 47.63988,
                "lon": -122.12438
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64223,
                    "lon": -122.1256,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63748,
                    "lon": -122.12309,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/1756074",
            "score": 2.592679977416992,
            "dist": 876.0272035824189,
            "address": {
                "streetName": "Microsoft Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft Road, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.64032,
                "lon": -122.1344
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64253,
                    "lon": -122.13535,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63816,
                    "lon": -122.13305,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/1470668",
            "score": 2.5290400981903076,
            "dist": 2735.4883918101486,
            "address": {
                "streetName": "Microsoft West Campus Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Bellevue",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98007",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft West Campus Road, Bellevue, WA 98007"
            },
            "position": {
                "lat": 47.65784,
                "lon": -122.14335
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.65785,
                    "lon": -122.14335,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.65784,
                    "lon": -122.14325,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/12812615",
            "score": 2.527509927749634,
            "dist": 2870.9579016916873,
            "address": {
                "streetName": "Microsoft West Campus Road",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft West Campus Road, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.66034,
                "lon": -122.1404
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.66039,
                    "lon": -122.14325,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.65778,
                    "lon": -122.13749,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/197588",
            "score": 2.4630401134490967,
            "dist": 878.1404663812472,
            "address": {
                "streetName": "157th Avenue Northeast",
                "municipalitySubdivision": "Redmond",
                "municipality": "Redmond",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98052",
                "extendedPostalCode": "980525344, 980525398, 980525399",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "157th Avenue Northeast, Redmond, WA 98052"
            },
            "position": {
                "lat": 47.64351,
                "lon": -122.13056
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.64473,
                    "lon": -122.13058,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.6425,
                    "lon": -122.13016,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/3033991",
            "score": 2.0754499435424805,
            "dist": 3655467.8844475765,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Yorkmount, Charlotte",
            },
            "position": {
                "lat": 35.14267,
                "lon": -80.91824
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 35.14287,
                    "lon": -80.91839,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 35.14267,
                    "lon": -80.91814,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/8395877",
            "score": 2.0754499435424805,
            "dist": 3655437.0037482483,
            "address": {
                "streetName": "Microsoft Way",
                "municipalitySubdivision": "Charlotte",
                "municipality": "Charlotte",
                "countrySecondarySubdivision": "Mecklenburg",
                "countryTertiarySubdivision": "Township 1 Charlotte",
                "countrySubdivision": "NC",
                "countrySubdivisionName": "North Carolina",
                "postalCode": "28273",
                "extendedPostalCode": "282738105, 282738106, 282738108, 2827382, 282738200",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Microsoft Way, Charlotte, NC 28273"
            },
            "position": {
                "lat": 35.14134,
                "lon": -80.9198
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 35.14274,
                    "lon": -80.92159,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 35.14002,
                    "lon": -80.91824,
                    "valid": true
                }
            }
        }
    ]
}

قم بتشفير URI للتعامل مع الأحرف الخاصة

للعثور على عناوين شوارع متقاطعة، يجب عليك ترميز URI للتعامل مع الأحرف الخاصة في العنوان. ضع في اعتبارك مثال العنوان هذا: الشارع الأول وشارع الاتحاد، سياتل. هنا، قم بترميز حرف العطف (&) قبل إرسال الطلب.

نوصي بتشفير بيانات الأحرف في URI. في URI، تقوم بترميز جميع الأحرف باستخدام علامة النسبة المئوية (%) وقيمة سداسية عشرية مكونة من حرفين تتوافق مع رمز UTF-8 للأحرف.

أمثلة الاستخدام

ابدأ بهذا العنوان:

query=1st Avenue & E 111th St, New York

تشفير العنوان:

query=1st%20Avenue%20%26%20E%20111th%20St%2C%20New%20York

يمكنك استخدام الطرق التالية.

JavaScript أو TypeScript:

encodeURIComponent(query)

C# أو Visual Basic:

Uri.EscapeDataString(query)

Java:

URLEncoder.encode(query, "UTF-8") 

Python:

import urllib.parse 
urllib.parse.quote(query)

C++‎:

#include <curl/curl.h>
curl_easy_escape(query)

PHP:

urlencode(query)

Ruby:

CGI::escape(query) 

التحويل الإلكتروني:

query.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) 

Go:

import ("net/url") 
url.QueryEscape(query)

أفضل الممارسات للبحث عن النقاط المهمة

في بحث POI، يمكنك طلب نتائج POI بالاسم. على سبيل المثال، يمكنك البحث عن شركة بالاسم.

نوصي بشدة باستخدام المعلمة countrySet لتحديد البلدان/المناطق التي يحتاج تطبيقك فيها إلى تغطية. السلوك الافتراضي هو البحث في العالم بأسره. قد يعرض هذا البحث الواسع نتائج غير ضرورية، وقد يستغرق البحث وقتًا طويلاً.

لتحسين ملاءمة النتائج والمعلومات الواردة في الاستجابة، تتضمن استجابة بحث POI معلومات العلامة التجارية. يمكنك استخدام هذه المعلومات لمزيد من تحليل الاستجابة.

في الطلب، يمكنك إرسال قائمة بأسماء العلامات التجارية مفصولة بفواصل. استخدم القائمة لقصر النتائج على علامات تجارية معينة من خلال تعيين المعلمة brandSet. في قائمتك، لا يهم ترتيب العناصر. عندما تقدم قوائم علامات تجارية متعددة، يجب أن تنتمي النتائج التي يتم إرجاعها إلى واحدة على الأقل من قوائمك.

لاستكشاف البحث عن العلامة التجارية، دعنا نطلب بحث فئة POI. في المثال التالي، نبحث عن محطات وقود بالقرب من حرم Microsoft في ريدموند، واشنطن. تعرض الاستجابة معلومات العلامة التجارية لكل نقطة مهمة تم إرجاعها.

نموذج استعلام

https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=gas%20station&limit=3&lat=47.6413362&lon=-122.1327968

Response

{
    "summary": {
        "query": "gas station",
        "queryType": "NON_NEAR",
        "queryTime": 276,
        "numResults": 3,
        "offset": 0,
        "totalResults": 762680,
        "fuzzyLevel": 1,
        "geoBias": {
            "lat": 47.6413362,
            "lon": -122.1327968
        }
    },
    "results": [
        {
            "type": "POI",
            "id": "US/POI/p0/8831765",
            "score": 5.6631999015808105,
            "dist": 1037.0280221303253,
            "info": "search:ta:840531000004190-US",
            "poi": {
                "name": "Chevron",
                "phone": "+(1)-(425)-6532200",
                "brands": [
                    {
                        "name": "Chevron"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.chevron.com",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "2444",
                "streetName": "Bel Red Rd",
                "municipalitySubdivision": "Northeast Bellevue, Bellevue",
            },
            "position": {
                "lat": 47.63201,
                "lon": -122.13281
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.63291,
                    "lon": -122.13414,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63111,
                    "lon": -122.13148,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.63222,
                        "lon": -122.13312,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "POI",
            "id": "US/POI/p0/8831752",
            "score": 5.662710189819336,
            "dist": 1330.1278248163273,
            "info": "search:ta:840539001100326-US",
            "poi": {
                "name": "76",
                "phone": "+(1)-(425)-7472126",
                "brands": [
                    {
                        "name": "76"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.76.com",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "2421",
                "streetName": "148Th Ave Ne",
                "municipalitySubdivision": "Redmond, Bridle Trails, Bellevue",
                "municipality": "Redmond, Bellevue",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle East",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98007",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "2421 148Th Ave Ne, Bellevue, WA 98007",
                "localName": "Bellevue"
            },
            "position": {
                "lat": 47.63187,
                "lon": -122.14365
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.63277,
                    "lon": -122.14498,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.63097,
                    "lon": -122.14232,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "minor",
                    "position": {
                        "lat": 47.63187,
                        "lon": -122.14374,
                        "valid": true
                    }
                },
                {
                    "type": "main",
                    "position": {
                        "lat": 47.63186,
                        "lon": -122.14313,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "POI",
            "id": "US/POI/p0/8831764",
            "score": 5.662449836730957,
            "dist": 1458.645407416307,
            "info": "search:ta:840539000488527-US",
            "poi": {
                "name": "BROWN BEAR CAR WASH",
                "phone": "+(1)-(425)-6442868",
                "brands": [
                    {
                        "name": "Texaco"
                    }
                ],
                "categorySet": [
                    {
                        "id": 7311
                    }
                ],
                "url": "www.texaco.com/",
                "categories": [
                    "petrol station"
                ],
                "classifications": [
                    {
                        "code": "PETROL_STATION",
                        "names": [
                            {
                                "nameLocale": "en-US",
                                "name": "petrol station"
                            }
                        ]
                    }
                ]
            },
            "address": {
                "streetNumber": "15248",
                "streetName": "Bel Red Rd",
                "municipalitySubdivision": "Redmond",
            },
            "position": {
                "lat": 47.62843,
                "lon": -122.13628
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62933,
                    "lon": -122.13761,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.62753,
                    "lon": -122.13495,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.62827,
                        "lon": -122.13628,
                        "valid": true
                    }
                }
            ]
        }
    ]
}

باستخدام واجهة برمجة تطبيقات البحث POI، يمكنك البحث عن المطارات باستخدام رمزها الرسمي. على سبيل المثال، يمكنك استخدام SEA للعثور على مطار سياتل تاكوما الدولي:

https://atlas.microsoft.com/search/poi/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&query=SEA 

لاسترداد نتائج POI حول موقع معين، يمكنك محاولة استخدام Search Nearby. تقوم نقطة النهاية بإرجاع نتائج POI فقط. لا يأخذ في معامل طلب البحث.

للحد من النتائج، نوصي بضبط نصف القطر.

فهم الردود

لنعثر على عنوان في سياتل عن طريق تقديم طلب بحث عن العناوين إلى خرائط Azure خدمة البحث. في عنوان URL للطلب التالي، قمنا بتعيين المعلمة countrySet على US للبحث عن العنوان في الولايات المتحدة.

نموذج استعلام

https://atlas.microsoft.com/search/address/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1&query=400%20Broad%20Street%2C%20Seattle%2C%20WA&countrySet=US

أنواع النتائج المدعومة

  • عنوان النقطة: النقاط على الخريطة التي لها عنوان محدد مع اسم الشارع ورقمه. يوفر Point Address أعلى مستوى من الدقة للعناوين.

  • نطاق العنوان: نطاق نقاط العنوان التي تم إقحامها من بداية ونهاية الشارع.

  • الجغرافيا: المناطق على الخريطة التي تمثل التقسيمات الإدارية للأرض، على سبيل المثال، البلد/المنطقة أو الولاية أو المدينة.

  • نقطة مهمة: نقاط على الخريطة تستحق الاهتمام وقد تكون مثيرة للاهتمام.

  • الشارع: شوارع على الخريطة. يتم تحديد العناوين لإحداثيات خطوط الطول والعرض للشارع الذي يحتوي على العنوان. قد لا تتم معالجة رقم المنزل.

  • تقاطع الشارع: التقاطعات. تمثل الشوارع المتقاطعة التقاطعات حيث يتقاطع شارعان.

Response

لنلق نظرة على بنية الاستجابة. في الاستجابة التالية، تختلف أنواع الكائنات الناتجة. إذا نظرت بعناية، سترى ثلاثة أنواع من كائنات النتائج:

  • عنوان النقطة
  • الشارع
  • الشارع العرضي

لاحظ أن البحث عن العنوان لا يُرجع النقاط المهمة.

تشير المعلمة Score لكل كائن استجابة إلى كيفية ارتباط درجة المطابقة بنتائج الكائنات الأخرى في نفس الاستجابة. لمزيد من المعلومات حول معلمات كائن الاستجابة، راجع الحصول على عنوان البحث.

{
    "summary": {
        "query": "400 broad street seattle wa",
        "queryType": "NON_NEAR",
        "queryTime": 146,
        "numResults": 6,
        "offset": 0,
        "totalResults": 7,
        "fuzzyLevel": 1
    },
    "results": [
        {
            "type": "Point Address",
            "id": "US/PAD/p0/28725082",
            "score": 9.893799781799316,
            "address": {
                "streetNumber": "400",
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.62039,
                "lon": -122.34928
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62129,
                    "lon": -122.35061,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61949,
                    "lon": -122.34795,
                    "valid": true
                }
            },
            "entryPoints": [
                {
                    "type": "main",
                    "position": {
                        "lat": 47.61982,
                        "lon": -122.34886,
                        "valid": true
                    }
                }
            ]
        },
        {
            "type": "Street",
            "id": "US/STR/p0/6700384",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.61724,
                "lon": -122.35207
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.61825,
                    "lon": -122.35336,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61626,
                    "lon": -122.35078,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/9701953",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
            },
            "position": {
                "lat": 47.61965,
                "lon": -122.349
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62066,
                    "lon": -122.35041,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61857,
                    "lon": -122.34761,
                    "valid": true
                }
            }
        },
        {
            "type": "Street",
            "id": "US/STR/p0/11721297",
            "score": 8.129190444946289,
            "address": {
                "streetName": "Broad Street",
                "municipalitySubdivision": "Seattle, Downtown Seattle, Denny Regrade, Belltown",
                "municipality": "Seattle",
                "countrySecondarySubdivision": "King",
                "countryTertiarySubdivision": "Seattle",
                "countrySubdivision": "WA",
                "countrySubdivisionName": "Washington",
                "postalCode": "98121",
                "extendedPostalCode": "981211237",
                "countryCode": "US",
                "country": "United States",
                "countryCodeISO3": "USA",
                "freeformAddress": "Broad Street, Seattle, WA 98121"
            },
            "position": {
                "lat": 47.61825,
                "lon": -122.35078
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.61857,
                    "lon": -122.35078,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.61825,
                    "lon": -122.35041,
                    "valid": true
                }
            }
        },
        {
            "type": "Cross Street",
            "id": "US/XSTR/p1/232144",
            "score": 6.754479885101318,
            "address": {
                "streetName": "Broad Street & Valley Street",
                "municipalitySubdivision": "South Lake Union, Seattle",
            },
            "position": {
                "lat": 47.62545,
                "lon": -122.33974
            },
            "viewport": {
                "topLeftPoint": {
                    "lat": 47.62635,
                    "lon": -122.34107,
                    "valid": true
                },
                "btmRightPoint": {
                    "lat": 47.62455,
                    "lon": -122.33841,
                    "valid": true
                }
            }
        }
    ]
}

الهندسة

يمكن أن يشتمل نوع الاستجابة الهندسة على معرف الشكل الهندسي الذي يتم إرجاعه في الكائن dataSources ضمن geometry وid. على سبيل المثال، يمكنك استخدام خدمة مضلع البحث لطلب البيانات الهندسية بتنسيق GeoJSON. باستخدام هذا التنسيق، يمكنك الحصول على مخطط لمدينة أو مطار لمجموعة من الكيانات. يمكنك بعد ذلك استخدام بيانات الحدود هذه من أجل إعداد السياج الجغرافي أو البحث عن النقاط المهمة داخل الهندسة .

يمكن أن تتضمن الاستجابات ل "عنوان البحث" أو "البحث الغامض " المعرف الهندسي الذي يتم إرجاعه في dataSources الكائن ضمن geometry و id:

"dataSources": { 
        "geometry": { 
            "id": "00005557-4100-3c00-0000-000059690938" // The geometry ID is returned in the dataSources object under "geometry" and "id".
        }
} 

الخطوات التالية

لمعرفة المزيد، يرجى الاطلاع على: