البحث عن موقع باستخدام خدمات Azure Maps Search

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

توضح هذه المقالة كيفية:

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

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

يستخدم البرنامج التعليمي تطبيق Postman ولكن يمكنك اختيار بيئة تطوير واجهة برمجة تطبيقات مختلفة.

طلب خط العرض وخط الطول لعنوان (الترميز الجغرافي)

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

تلميح

إذا كان لديك مجموعة من العناوين للرمز الجغرافي، يمكنك استخدام Post Search Address Batch لإرسال دفعة من الاستعلامات في طلب واحد.

  1. في تطبيق Postman، حدد New لإنشاء الطلب. ومن نافذة إنشاء جديد حدد طلب HTTP. أدخل Request name للطلب.

  2. حدد أسلوب GET HTTP في علامة التبويب المنشئ وأدخل عنوان URL التالي. في هذا الطلب، نبحث عن عنوان معين: 400 Braod St, Seattle, WA 98109. بالنسبة لهذا الطلب والطلبات الأخرى المذكورة في هذه المقالة، استبدل {Your-Azure-Maps-Subscription-key} بمفتاح اشتراك خرائط Azure.

    https://atlas.microsoft.com/search/address/json?&subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&language=en-US&query=400 Broad St, Seattle, WA 98109
    
  3. حدد الزر الأزرق إرسال . يحتوي نص الاستجابة على بيانات لموقع واحد.

  4. بعد ذلك، ابحث عن عنوان يحتوي على أكثر من موقع واحد محتمل. في قسم Params، قم بتغيير مفتاح query إلى 400 Broad, Seattle. حدد الزر الأزرق إرسال .

    Search for address

  5. بعد ذلك، حاول تعيين المفتاح query إلى 400 Broa.

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

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

تلميح

معظم استعلامات البحث افتراضية maxFuzzyLevel=1 لتحسين الأداء وتقليل النتائج غير العادية. اضبط مستويات التشويش باستخدام maxFuzzyLevel المعلمات أو minFuzzyLevel . لمزيد من المعلومات حول maxFuzzyLevel وقائمة كاملة بجميع المعلمات الاختيارية، راجع معلمات URI للبحث الغامض.

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

هام

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

  1. في تطبيق Postman، حدد New لإنشاء الطلب. ومن نافذة إنشاء جديد حدد طلب HTTP. أدخل Request name للطلب.

  2. حدد أسلوب GET HTTP في علامة التبويب المنشئ وأدخل عنوان URL التالي. بالنسبة لهذا الطلب والطلبات الأخرى المذكورة في هذه المقالة، استبدل {Your-Azure-Maps-Subscription-key} بمفتاح اشتراك خرائط Azure.

    https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza
    

    إشعار

    تحدد سمة json في مسار URL تنسيق الاستجابة. تستخدم هذه المقالة json لتسهيل الاستخدام وقابلية القراءة. للعثور على تنسيقات استجابة أخرى مدعومة، راجع تعريف المعلمة format في الوثائق المرجعية لمعلمة URI.

  3. حدد إرسال نص الاستجابة ومراجعته.

    أرجعت سلسلة الاستعلام الغامضة لـ "pizza" نتيجة 10 نقاط اهتمام (POI) في كل من فئتي "pizza" و"restaurant". تتضمن كل نتيجة تفاصيل مثل عنوان الشارع وقيم خط العرض وخط الطول ومنفذ العرض ونقاط الإدخال للموقع. تتنوع النتائج الآن لهذا الاستعلام، ولا ترتبط بأي موقع مرجعي.

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

  4. السلوك الافتراضي هو البحث في العالم بأكمله، ما قد يؤدي إلى إرجاع نتائج غير ضرورية. بعد ذلك، ابحث عن البيتزا فقط في الولايات المتحدة. أضف المفتاح countrySet إلى قسم Params، واضبط قيمته على US. countrySet يؤدي تعيين المفتاح إلى US ربط النتائج بالولايات المتحدة.

    Search for pizza in the United States

    يتم الآن تقييد النتائج برمز البلد ويقوم الاستعلام بإرجاع مطاعم البيتزا في الولايات المتحدة.

  5. للحصول على بحث أكثر استهدافا، يمكنك البحث عبر نطاق زوج إحداثيات lat/lon. يستخدم المثال التالي إحداثيات lat/lon من إبرة مساحة سياتل. نظرا لأننا نريد فقط إرجاع النتائج ضمن نصف قطر 400 متر، نضيف المعلمة radius . أيضا، نضيف المعلمة limit للحد من النتائج إلى أقرب خمسة أماكن للبيتزا.

    في قسم Params، أضف أزواج المفاتيح/القيم التالية:

    مفتاح القيمة
    خط عرض 47.620525
    خط طول -122.349274
    نصف القطر 400
    الحد 5
  6. حدد إرسال. تتضمن الاستجابة نتائج لمطاعم البيتزا بالقرب من سياتل إبرة الفضاء.

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

هام

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

تلميح

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

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

  1. في تطبيق Postman، حدد New لإنشاء الطلب. ومن نافذة إنشاء جديد حدد طلب HTTP. أدخل Request name للطلب.

  2. حدد أسلوب GET HTTP في علامة التبويب المنشئ وأدخل عنوان URL التالي. بالنسبة لهذا الطلب والطلبات الأخرى المذكورة في هذه المقالة، استبدل {Your-Azure-Maps-Subscription-key} بمفتاح اشتراك خرائط Azure. يجب أن يبدو الطلب مثل عنوان URL التالي:

    https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=47.591180,-122.332700&number=1
    
  3. حدد إرسال، وراجع نص الاستجابة. يجب أن تشاهد نتيجة استعلام واحد. تتضمن الاستجابة معلومات العنوان الرئيسية حول حقل Safeco.

  4. بعد ذلك، أضف أزواج المفاتيح/القيم التالية إلى قسم Params :

    مفتاح القيمة المرتجعات
    رقم 1 قد تتضمن الاستجابة جانب الشارع (يسار/يمين) وأيضاً موضع إزاحة للرقم.
    returnSpeedLimit صحيح إرجاع حد السرعة في العنوان.
    returnRoadUse صحيح إرجاع أنواع استخدام الطرق في العنوان. للحصول على جميع أنواع استخدام الطرق المحتملة، راجع أنواع استخدام الطرق.
    returnMatchType صحيح إرجاع نوع المطابقة. للحصول على جميع القيم الممكنة، راجع نتائج البحث العكسي عن العنوان.

    Search reverse.

  5. حدد إرسال، وراجع نص الاستجابة.

  6. بعد ذلك، نضيف entityType المفتاح، ونضبط قيمته على Municipality. entityType يتجاوز returnMatchType المفتاح المفتاح في الخطوة السابقة. returnSpeedLimit وتحتاج returnRoadUse أيضا إلى إزالتها نظرا لأنك تطلب معلومات حول البلدية. لجميع أنواع الكيانات المحتملة، راجع أنواع الكيانات.

    Search reverse entityType.

  7. حدد إرسال. قارن النتائج بالنتائج التي تم إرجاعها في الخطوة 5. لأن نوع الكيان المطلوب هو الآن municipality، لا تتضمن الاستجابة معلومات عنوان الشارع. أيضاً، يمكن استخدام geometryId الذي تم إرجاعه لطلب مضلع الحدود من خلال Azure Maps Get Search Polygon API.

تلميح

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

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

  1. في تطبيق Postman، حدد New لإنشاء الطلب. ومن نافذة إنشاء جديد حدد طلب HTTP. أدخل Request name للطلب.

  2. حدد أسلوب GET HTTP في علامة التبويب المنشئ وأدخل عنوان URL التالي. بالنسبة لهذا الطلب والطلبات الأخرى المذكورة في هذه المقالة، استبدل {Your-Azure-Maps-Subscription-key} بمفتاح اشتراك خرائط Azure. يجب أن يبدو الطلب مثل عنوان URL التالي:

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

    Search cross street.

  3. حدد إرسال، وراجع نص الاستجابة. لاحظ أن الاستجابة تحتوي على crossStreet قيمة South Atlantic Street.

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