مشاركة عبر


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

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

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

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

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

هام

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

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

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

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

تلميح

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

  1. افتح تطبيق bruno، وحدد NEW REQUEST لإنشاء الطلب. في نافذة NEW REQUEST ، قم بتعيين Type إلى HTTP. أدخل اسما للطلب.

  2. حدد أسلوب GET HTTP في القائمة المنسدلة URL، ثم أدخل عنوان URL التالي:

    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. حدد زر التشغيل.

    يبحث هذا الطلب عن عنوان معين: 400 Broad St, Seattle, WA 98109. بعد ذلك، ابحث عن عنوان يحتوي على أكثر من موقع واحد ممكن.

  5. في قسم Params ، قم بتغيير query المفتاح إلى 400 Broad, Seattle، ثم حدد زر التشغيل.

    البحث عن عنوان

  6. بعد ذلك، حاول تعيين query المفتاح إلى 400 Broa، ثم حدد زر التشغيل.

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

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

تلميح

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

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

هام

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

  1. افتح تطبيق bruno، وحدد NEW REQUEST لإنشاء الطلب. في نافذة NEW REQUEST ، قم بتعيين Type إلى HTTP. أدخل اسما للطلب.

  2. حدد أسلوب GET HTTP في القائمة المنسدلة URL، ثم أدخل عنوان URL التالي:

    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 لتحديد البلدان/المناطق التي يحتاج تطبيقك إلى تغطية لها فقط. للحصول على قائمة كاملة بالبلدان/المناطق المدعومة، راجع تغطية الترميز الجغرافي خرائط Azure.

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

    البحث عن بيتزا في الولايات المتحدة

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

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

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

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

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

هام

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

تلميح

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

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

  1. افتح تطبيق bruno، وحدد NEW REQUEST لإنشاء الطلب. في نافذة NEW REQUEST ، قم بتعيين Type إلى HTTP. أدخل اسما للطلب.

  2. حدد أسلوب GET HTTP في القائمة المنسدلة URL، ثم أدخل عنوان 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
    
  3. حدد زر التشغيل، وراجع نص الاستجابة. يجب أن تشاهد نتيجة استعلام واحد. تتضمن الاستجابة معلومات العنوان الرئيسية حول حقل Safeco.

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

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

    البحث العكسي.

  5. حدد زر التشغيل، وراجع نص الاستجابة.

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

    البحث العكسي عن الكيان.

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

تلميح

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

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

  1. افتح تطبيق bruno، وحدد NEW REQUEST لإنشاء الطلب. في نافذة NEW REQUEST ، قم بتعيين Type إلى HTTP. أدخل اسما للطلب.

  2. حدد أسلوب GET HTTP في القائمة المنسدلة URL، ثم أدخل عنوان 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
    
  3. حدد زر التشغيل، وراجع نص الاستجابة. لاحظ أن الاستجابة تحتوي على crossStreet قيمة South Atlantic Street.

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