نظرة عامة
تتيح الدوالّ في مكتبة الأماكن وواجهة برمجة التطبيقات JavaScript API في "خرائط Google" لتطبيقك البحث عن الأماكن (التي يتم تعريفها في واجهة برمجة التطبيقات هذه على أنّها أماكن إقامة أو مواقع جغرافية أو نقاط اهتمام بارزة) ضمن منطقة محدّدة، مثل حدود خريطة أو حول نقطة ثابتة.
توفّر Places API ميزة الإكمال التلقائي التي يمكنك استخدامها لمنح تطبيقاتك سلوك البحث أثناء الكتابة في حقل البحث في "خرائط Google". عندما يبدأ المستخدم بكتابة عنوان، سيتم استخدام ميزة الملء التلقائي لإكماله. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات ميزة "الإكمال التلقائي".
الخطوات الأولى
إذا لم تكن على دراية بواجهة برمجة التطبيقات JavaScript لـ "خرائط Google" أو ببرمجة JavaScript، ننصحك بمراجعة JavaScript والحصول على مفتاح واجهة برمجة التطبيقات قبل البدء.
تحميل المكتبة
خدمة "الأماكن" هي مكتبة مكتفية ذاتيًا، منفصلة عن الرمز الرئيسي لـ
واجهة برمجة التطبيقات JavaScript لخرائط Google. لاستخدام الوظائف المضمّنة
في هذه المكتبة، عليك أولاً تحميلها باستخدام المَعلمة libraries
في عنوان URL لبدء تشغيل Maps API:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>اطّلِع على نظرة عامة على المكتبات للحصول على مزيد من المعلومات.
إضافة Places API إلى قائمة القيود المفروضة على واجهة برمجة التطبيقات لمفتاح واجهة برمجة التطبيقات
يؤدي تطبيق قيود واجهة برمجة التطبيقات على مفاتيحك إلى حصر استخدام مفتاح واجهة برمجة التطبيقات بواجهة برمجة تطبيقات واحدة أو أكثر أو حِزم تطوير برامج (SDK). سيتم معالجة الطلبات المرسَلة إلى واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK) مرتبطة بمفتاح واجهة برمجة التطبيقات. لن يتم إكمال الطلبات المرسَلة إلى واجهة برمجة تطبيقات أو حزمة تطوير برامج (SDK) غير مرتبطة بمفتاح واجهة برمجة التطبيقات. لتقييد مفتاح واجهة برمجة التطبيقات لاستخدامه مع Places Library وMaps JavaScript API، اتّبِع الخطوات التالية:- انتقِل إلى Google Cloud Console.
- انقر على القائمة المنسدلة للمشروع واختَر المشروع الذي يحتوي على مفتاح واجهة برمجة التطبيقات الذي تريد تأمينه.
- انقر على زر القائمة
واختَر منصّة خرائط Google > بيانات الاعتماد.
- في صفحة بيانات الاعتماد، انقر على اسم مفتاح واجهة برمجة التطبيقات الذي تريد تأمينه.
- في صفحة تقييد مفتاح واجهة برمجة التطبيقات وإعادة تسميته، اضبط القيود:
- القيود المفروضة على واجهة برمجة التطبيقات
- انقر على تقييد المفتاح.
- انقر على اختيار واجهات برمجة التطبيقات واختَر كلّ من Maps JavaScript API وPlaces API.
(إذا لم تكن إحدى واجهات برمجة التطبيقات مُدرَجة، عليك تفعيلها).
- انقر على حفظ.
حدود الاستخدام والسياسات
الحصص
تشترك مكتبة Places Library في حصة الاستخدام مع Places API كما هو موضّح في مستندات حدود الاستخدام الخاصة بـ Places API.
السياسات
يجب أن يكون استخدام Places Library وواجهة برمجة تطبيقات JavaScript للخرائط متوافقًا مع السياسات الموضّحة في واجهة برمجة تطبيقات Places API.
عمليات البحث عن الأماكن
باستخدام خدمة "الأماكن"، يمكنك إجراء الأنواع التالية من عمليات البحث:
- تؤدي دالة العثور على مكان من طلب بحث إلى عرض مكان استنادًا إلى طلب بحث نصي (مثل اسم مكان أو عنوانه).
- تؤدي دالة العثور على مكان من رقم هاتف إلى عرض مكان استنادًا إلى رقم هاتف.
- البحث عن الأماكن المجاورة يعرض قائمة بالأماكن المجاورة استنادًا إلى الموقع الجغرافي للمستخدم.
- البحث النصي يعرض قائمة بالأماكن المجاورة استنادًا إلى سلسلة بحث، على سبيل المثال: "بيتزا".
- طلبات تفاصيل الأماكن تعرض معلومات أكثر تفصيلاً عن مكان معيّن، بما في ذلك مراجعات المستخدمين.
يمكن أن تتضمّن المعلومات التي يتم عرضها المؤسسات، مثل المطاعم والمتاجر والمكاتب، بالإضافة إلى نتائج "الرمز الجغرافي" التي تشير إلى العناوين والمناطق الإدارية، مثل البلدات والمدن، وغيرها من نقاط الاهتمام.
طلبات العثور على مكان
يتيح لك طلب "العثور على مكان" البحث عن مكان إما من خلال طلب بحث نصي أو رقم هاتف. هناك نوعان من طلبات "العثور على مكان":
العثور على مكان من طلب البحث
تأخذ دالة "العثور على مكان من طلب بحث" إدخال نصيًا وتُعرِض مكانًا. يمكن أن يكون الإدخال
أي نوع من بيانات الأماكن، مثل اسم نشاط تجاري أو عنوان. لتقديم طلب
العثور على مكان من طلب بحث، يمكنك استدعاء PlacesService
findPlaceFromQuery()
الطريقة التي تأخذ المَعلمات التالية:
-
query(مطلوبة) سلسلة النصوص التي يتم البحث فيها، على سبيل المثال: "مطعم" أو "123 شارع التحرير". يجب أن يكون هذا الاسم اسم مكان أو عنوانًا أو فئة من المؤسسات. يمكن أن تؤدي أي أنواع أخرى من الإدخال إلى توليد أخطاء ولا يمكن ضمان عرض نتائج صالحة. ستُعرِض Places API مطابقات مرشحة استنادًا إلى هذه السلسلة وسيتم ترتيب النتائج استنادًا إلى مدى صلتها بموضوع البحث. fields(مطلوبة) حقل واحد أو أكثر لتحديد أنواع بيانات الأماكن المطلوب عرضهاlocationBias(اختياري) الإحداثيات التي تحدّد المنطقة المطلوب البحث فيها يمكن أن يكون ذلك أحد ما يلي:- مجموعة من إحداثيات خط العرض/خط الطول المحدّدة على النحو التالي: LatLngLiteral أو كائن LatLng
- الحدود المستطيلة (زوجان من خطوط الطول/العرض، أو كائن LatLngBounds)
- شعاع (بالأمتار) متمركز على خطي الطول والعرض
يجب أيضًا تمرير طريقة ردّ اتصال إلى findPlaceFromQuery()،
لمعالجة عنصر النتائج واستجابة google.maps.places.PlacesServiceStatus.
يعرض المثال التالي طلبًا إلى findPlaceFromQuery()،
للبحث عن "متحف الفن المعاصر في أستراليا"، مع تضمين الحقلَين
name وgeometry.
var map; var service; var infowindow; function initMap() { var sydney = new google.maps.LatLng(-33.867, 151.195); infowindow = new google.maps.InfoWindow(); map = new google.maps.Map( document.getElementById('map'), {center: sydney, zoom: 15}); var request = { query: 'Museum of Contemporary Art Australia', fields: ['name', 'geometry'], }; var service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery(request, function(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } map.setCenter(results[0].geometry.location); } }); }
العثور على مكان من رقم هاتف
تأخذ دالة Find Place from Phone Number رقم هاتف وتُعرِض مكانًا. لمحاولة
إجراء طلب "العثور على مكان من رقم هاتف"، يمكنك الاتصال بأسلوب
PlacesServicefindPlaceFromPhoneNumber()
الذي يأخذ المَعلمات التالية:
phoneNumber(مطلوبة) رقم هاتف بتنسيق E.164fields(مطلوبة) حقل واحد أو أكثر لتحديد أنواع بيانات الأماكن المطلوب عرضهاlocationBias(اختياري) إحداثيات تحدّد المنطقة التي يتم فيها البحث يمكن أن يكون أحد الخيارات التالية:- مجموعة من إحداثيات خط العرض/خط الطول المحدّدة على النحو التالي: LatLngLiteral أو كائن LatLng
- الحدود المستطيلة (أربع نقاط لخطوط الطول والعرض، أو كائن LatLngBounds)
- شعاع (بالأمتار) متمركز على خطي الطول والعرض
يجب أيضًا تمرير طريقة ردّ اتصال إلى findPlaceFromPhoneNumber()،
لمعالجة عنصر النتائج واستجابة google.maps.places.PlacesServiceStatus.
الحقول (طُرق البحث عن مكان)
استخدِم المَعلمة fields لتحديد مصفوفة من أنواع بيانات الأماكن المطلوب عرضها.
على سبيل المثال: fields: ['formatted_address', 'opening_hours', 'geometry'].
استخدِم نقطة عند تحديد قيم مركبة. على سبيل المثال: opening_hours.weekday_text.
تتطابق الحقول مع نتائج البحث عن الأماكن، وتنقسم
إلى ثلاث فئات فوترة: أساسية وجهات اتصال وجوّ. يتم
تحصيل رسوم الحقول الأساسية بالسعر الأساسي، ولا يتم تحصيل أي رسوم إضافية. يتم تحصيل رسوم أعلى مقابل حقلَي "جهة الاتصال" و"الجو"
. يمكنك الاطّلاع على جدول الأسعار
لمزيد من المعلومات. يتم دائمًا
عرض الإحالات (html_attributions) مع كل مكالمة، بغض النظر عمّا إذا تم
طلب الحقل.
أساسي
تتضمّن الفئة الأساسية الحقول التالية:
business_status وformatted_address وgeometry
icon وicon_mask_base_uri وicon_background_color
name وpermanently_closed (تم إيقافه نهائيًا)
photos وplace_id وplus_code وtypes
التواصل
تتضمّن فئة "جهة الاتصال" الحقل التالي:opening_hours (تم إيقافه نهائيًا في Places Library، وMaps JavaScript API. استخدِم طلب "تفاصيل المكان" للحصول على
opening_hours النتائج).
الغلاف الجوي
تتضمّن فئة "الجوّ" الحقول التالية:price_level وrating وuser_ratings_total
تأخذ كلّ من الطريقتَين findPlaceFromQuery() و
findPlaceFromPhoneNumber() المجموعة نفسها من
الحقول، ويمكن أن تعرض الحقول نفسها في الردود الخاصة بكلّ منهما.
ضبط الميل إلى الموقع الجغرافي (طُرق البحث عن مكان)
استخدِم المَعلمة locationBias لجعل ميزة "العثور على مكان" تفضّل النتائج
في منطقة معيّنة. يمكنك ضبط locationBias بالطُرق التالية:
توجيه النتائج نحو منطقة معيّنة:
locationBias: {lat: 37.402105, lng: -122.081974}
حدِّد منطقة مستطيلة للبحث:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
يمكنك أيضًا استخدام LatLngBounds.
حدِّد نصف قطر للبحث (بالمتر) يكون مركزه في منطقة معيّنة:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
طلبات البحث في الأماكن القريبة
تتيح لك ميزة "البحث عن الأماكن المجاورة" البحث عن أماكن ضمن منطقة محدّدة باستخدام الكلمة الرئيسية أو النوع. يجب أن يتضمّن "البحث عن الأماكن القريبة" دائمًا موقعًا جغرافيًا يمكن تحديده بإحدى الطريقتَين التاليتَين:
- أ
LatLngBounds. - منطقة دائرية يتم تحديدها على أنّها مجموعة من سمة
locationالتي تحدّد مركز الدائرة على أنّه كائنLatLngونصف قطر يتم قياسه بالمتر
يتم بدء البحث عن "الأماكن المجاورة" من خلال طلب nearbySearch() في
PlacesService، ما يؤدي إلى عرض صفيف من عناصر
PlaceResult. يُرجى العلم أنّ طريقة nearbySearch()
تحلّ محلّ طريقة search() اعتبارًا من الإصدار 3.9.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
تتلقّى هذه الطريقة طلبًا يتضمّن الحقول التالية:
- أيّ من:
bounds، والذي يجب أن يكون عنصرًاgoogle.maps.LatLngBoundsيحدّد منطقة البحث المربّعة الحد الأقصى المسموح به للمسافة القطرية لحدود المنطقة هو 100,000 متر تقريبًا.locationوradius، حيث يأخذ الأول كائنًا من النوعgoogle.maps.LatLng، ويأخذ الأخير عددًا صحيحًا بسيطًا يمثّل نصف قطر الدائرة بالمتر. الحد الأقصى للدائرة المسموح بها هو 50,000 متر. يُرجى العِلم أنّه عند ضبطrankByعلى DISTANCE، يجب تحديدlocationولكن لا يمكنك تحديدradiusأوbounds.
keyword(اختياري) - عبارة لمطابقتها مع جميع الحقول المتاحة، بما في ذلك على سبيل المثال لا الحصر، الاسم والنوع والعنوان، بالإضافة إلى مراجعات العملاء والمحتوى الآخر التابع لجهات خارجية.-
minPriceLevelوmaxPriceLevel(اختياري) - لحصر النتائج بالأماكن التي تقع ضمن النطاق المحدّد فقط تتراوح القيم الصالحة بين 0 (الأكثر تكلفة) و4 (الأكثر تكلفة)، شاملة. nameميزة متوقّفة نهائيًا يعادلkeyword. يتم دمج القيم في هذا الحقل مع القيم في الحقلkeywordويتم تمريرها كجزء من سلسلة البحث نفسها.-
openNow(اختياري) : قيمة منطقية، تشير إلى أنّ خدمة "الأماكن" يجب أن تعرِض فقط الأماكن التي تكون مفتوحة للأنشطة التجارية في وقت إرسال الطلب. لن يتم عرض الأماكن التي لا تحدد ساعات العمل في قاعدة بيانات "أماكن Google" إذا تضمّنت هذه المَعلمة في طلب البحث. لن يكون لضبطopenNowعلىfalseأي تأثير. -
rankBy(اختياري) - لتحديد الترتيب الذي يتم فيه إدراج النتائج القيم المحتمَلة هي:-
google.maps.places.RankBy.PROMINENCE(الإعداد التلقائي) يُرتِّب هذا الخيار النتائج حسب أهميتها. سيمنح الترتيب الأولوية للأماكن البارزة ضمن النطاق الجغرافي المحدّد على الأماكن المجاورة التي تتطابق مع طلب البحث ولكنها أقل بروزًا. يمكن أن يتأثر مدى بروز مكان ما بترتيبه في فهرس Google ومدى رواجه على مستوى العالم وعوامل أخرى. عند تحديدgoogle.maps.places.RankBy.PROMINENCE، تكون المَعلمةradiusمطلوبة. google.maps.places.RankBy.DISTANCE: يفرِّز هذا الخيار النتائج تصاعديًا حسب المسافة منlocationالمحدّد (مطلوب). يُرجى العِلم أنّه لا يمكنك تحديد قيمة مخصّصة لسمةboundsو/أوradiusإذا تحديد قيمة لسمةRankBy.DISTANCE. عند تحديدRankBy.DISTANCE، يجب تحديد واحد أو أكثر منkeywordأوnameأوtype.
-
type- لحصر النتائج بالأماكن التي تتطابق مع النوع المحدّد يمكن تحديد نوع واحد فقط (إذا تم تقديم أكثر من نوع واحد، سيتم تجاهل جميع الأنواع التي تلي الإدخال الأول). اطّلِع على قائمة الأنواع المتوافقة.
يجب أيضًا تمرير طريقة ردّ اتصال إلى nearbySearch() لمعالجة عنصر النتائج وgoogle.maps.places.PlacesServiceStatus الاستجابة.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, type: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
طلبات البحث النصي
خدمة "البحث النصي عن الأماكن" في "خرائط Google" هي خدمة ويب تعرض معلومات عن مجموعة من الأماكن استنادًا إلى سلسلة، مثل "بيتزا في القاهرة" أو "متاجر أحذية بالقرب من الإسكندرية". تستجيب الخدمة بتقديم قائمة بالأماكن التي تتطابق مع سلسلة النصوص وأي تحيز في الموقع الجغرافي تم تحديده. سيتضمّن ردّ البحث قائمة بالأماكن. يمكنك إرسال طلب للحصول على تفاصيل الأماكن للحصول على مزيد من المعلومات عن أي من الأماكن الواردة في الردّ.
يتم بدء عمليات البحث النصي من خلال طلب إلى textSearch() PlacesService.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
تتلقّى هذه الطريقة طلبًا يتضمّن الحقول التالية:
query(سمة مطلوبة) سلسلة النصوص التي سيتم البحث عنها، على سبيل المثال: "مطعم" أو "123 شارع التحرير". يجب أن يكون هذا العنصر اسمًا أو عنوانًا أو فئة لمكان. يمكن أن تؤدي أي أنواع أخرى من الإدخال إلى حدوث أخطاء ولا يمكن ضمان عرض نتائج صالحة. ستعرِض خدمة "الأماكن" مطابقات مرشحة استنادًا إلى هذه السلسلة وسيتم ترتيب النتائج استنادًا إلى مدى صلتها بموضوع البحث. تصبح هذه المَعلمة اختيارية إذا تم استخدام المَعلمةtypeأيضًا في طلب البحث.- اختياري:
-
openNow: قيمة منطقية، تشير إلى أنّ خدمة "الأماكن" يجب أن تعرِض فقط الأماكن التي تكون مفتوحة في وقت إرسال الطلب. لن يتم عرض الأماكن التي لا تحدد ساعات العمل في قاعدة بيانات "أماكن Google" إذا تضمّنت طلب البحث هذه المَعلمة. لن يكون لضبطopenNowعلىfalseأي تأثير. -
minPriceLevelوmaxPriceLevel— لحصر النتائج بالأماكن التي تقع ضمن مستوى السعر المحدّد فقط تتراوح القيم الصالحة بين 0 (الأكثر تكلفة) و4 (الأكثر تكلفة) بشكل شامل. - أيّ من:
bounds، والذي يجب أن يكون عنصرًاgoogle.maps.LatLngBoundsيحدّد منطقة البحث المستطيلة. تبلغ أقصى مسافة قطرية مسموح بها لحدود المنطقة 100,000 متر تقريبًا.-
locationوradius: يمكنك توجيه النتائج إلى دائرة محدّدة من خلال تمرير مَعلمتَيlocationوradius. سيؤدي ذلك إلى توجيه خدمة "الأماكن" إلى تفضيل عرض النتائج ضمن تلك دائرة. قد يستمر عرض النتائج خارج المنطقة المحدّدة. يأخذ الموقع الجغرافي عنصرgoogle.maps.LatLng، ويأخذ نصف القطر عددًا صحيحًا بسيطًا يمثّل نصف قطر الدائرة بالمتر. الحد الأقصى للدائرة المسموح بها هو 50,000 متر.
type- لحصر النتائج بالأماكن التي تتطابق مع النوع المحدّد يمكن تحديد نوع واحد فقط (إذا تم تقديم أكثر من نوع واحد، يتم تجاهل جميع الأنواع التي تلي الإدخال الأول). اطّلِع على قائمة الأنواع المتوافقة.
-
يجب أيضًا تمرير طريقة ردّ اتصال إلى textSearch()، لمعالجة textSearch() google.maps.places.PlacesServiceStatus.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, query: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } }
الردود على البحث
رموز الحالة
يحتوي عنصر الاستجابة PlacesServiceStatus على حالة
الطلب، وقد يحتوي على معلومات تصحيح الأخطاء لمساعدتك في تحديد سبب عدم نجاح طلب الموقع الجغرافي. في ما يلي القيم المحتملة للحالة:
INVALID_REQUEST: كان هذا الطلب غير صالح.OK: يحتوي الردّ على نتيجة صالحة.OVER_QUERY_LIMIT: تجاوزت صفحة الويب حصة الطلبات المسموح بها.REQUEST_DENIED: لا يُسمح لصفحة الويب باستخدام مكتبة PlacesService.UNKNOWN_ERROR: تعذّرت معالجة طلب PlacesService بسبب خطأ في الخادم. قد ينجح الطلب إذا حاولت مرة أخرى.ZERO_RESULTS: لم يتم العثور على أي نتيجة لهذا الطلب.
نتائج البحث عن الأماكن
تعرض الدوالّ findPlace() وnearbySearch() و
textSearch() صفيفًا من عناصر
PlaceResult.
قد يتضمّن كل عنصر PlaceResult السمات التالية:
- يشير الرمز
business_statusإلى حالة تشغيل المكان، إذا كان نشاطًا تجاريًا. يمكن أن يحتوي على إحدى القيم التالية:OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_status. formatted_addressهي سلسلة تحتوي على عنوان هذا المكان بتنسيق يمكن لشخص عادي قراءته. لا يتم عرض الخاصيةformatted_addressإلا في البحث النصي.غالبًا ما يكون هذا العنوان مطابقًا للعنوان البريدي. تجدر الإشارة إلى أنّ بعض البلدان، مثل المملكة المتحدة، لا تسمح بتوزيع العناوين البريدية الحقيقية بسبب القيود المفروضة على الترخيص.
يتألّف العنوان المنسَّق منطقيًا من مكوّن عنوان واحد أو أكثر. على سبيل المثال، يتألّف العنوان "111 شارع 8، القاهرة، القاهرة" من المكوّنات التالية: "111" (رقم الشارع)، "شارع 8" (المسار)، و"القاهرة" (المدينة) و "القاهرة" (الولاية).
لا تُحلِّل العنوان المنسَّق آليًا. بدلاً من ذلك، يجب استخدام عناصر العنوان الفردية التي تتضمّنها استجابة واجهة برمجة التطبيقات بالإضافة إلى حقل العنوان المنسَّق.
-
geometry: المعلومات المتعلّقة بهندسة المكان ويشمل ذلك ما يلي:- تقدّم
locationخطي العرض والطول للمكان. viewportيحدِّد إطار العرض المفضّل على الخريطة عند عرض هذا المكان.
- تقدّم
-
permanently_closed(تم إيقافها نهائيًا) هي علامة منطقية تشير إلى ما إذا كان المكان قد تم إغلاقه نهائيًا أو مؤقتًا (القيمةtrue). لا تستخدِمpermanently_closed. بدلاً من ذلك، استخدِمbusiness_statusللاطّلاع على الحالة التشغيلية للأنشطة التجارية. plus_code(راجِع رمز الموقع المفتوح ورموز Plus Codes) هو مرجع موقع جغرافي مشفَّر، يتم الحصول عليه من إحداثيات خطوط الطول والعرض، ويمثّل منطقة: 1/8000 من الدرجة في 1/8000 من الدرجة (حوالي 14 مترًا في 14 مترًا عند خط الاستواء) أو أصغر. يمكن استخدام رموز Plus Codes كبديل لعناوين الشوارع في الأماكن التي لا تتوفّر فيها (حيث لا يتم ترقيم المباني أو تسمية الشوارع).يتم تنسيق رمز الموقع المفتوح كرمز عالمي ورمز مركب:
global_codeهو رمز منطقة مكوّن من 4 أحرف ورمز محلي مكوّن من 6 أحرف أو أكثر (849VCWC8+R9).compound_codeهو رمز محلي مكوّن من 6 أحرف أو أكثر يتضمّن موقعًا جغرافيًا واضحًا (CWC8+R9، ماونتن فيو، كاليفورنيا، الولايات المتحدة الأمريكية). لا تُحلِّل هذا المحتوى آليًا.
-
html_attributions: مصفوفة من الإسنادات التي يجب عرضها عند عرض نتائج البحث يحتوي كل إدخال في الصفيف على نص HTML لإسناد واحد. ملاحظة: هذه مجموعة من جميع الإحالات لردّ البحث بالكامل. وبالتالي، تحتوي جميع عناصرPlaceResultفي الاستجابة على قوائم تحديد مصدر متطابقة. iconتعرِض عنوان URL لرمز PNG ملون أبعاده 71 بكسل × 71 بكسل.- تعرِض دالة
icon_mask_base_uriعنوان URL الأساسي لرمز غير ملون، بدون إضافة .svg أو .png. icon_background_colorتعرِض رمز اللون السداسي التلقائي ل فئة المكان.name: اسم المكانopening_hoursقد يحتوي على المعلومات التالية:open_nowهي قيمة منطقية تشير إلى ما إذا كان المكان مفتوحًا في الوقت الحالي (تم إيقافها نهائيًا في Places Library وMaps JavaScript API، استخدِمutc_offset_minutesبدلاً من ذلك).
place_idهو معرّف نصي يحدِّد مكانًا بشكل فريد. لاسترداد معلومات عن المكان، يجب ضبط هذا المعرّف في طلب تفاصيل المكان. اطّلِع على مزيد من المعلومات عن كيفية الإشارة إلى مكان باستخدام رقم تعريف مكان.ratingيحتوي على تقييم المكان، من 0.0 إلى 5.0، استنادًا إلى مراجعات المستخدمين المجمّعة.typesمصفوفة من أنواع هذا المكان (مثل["political", "locality"]أو["restaurant", "lodging"]). قد تحتوي هذه المصفوفة على قيم متعدّدة، أو قد تكون فارغة. قد يتمّ إدخال قيم جديدة بدون إشعار مسبق. اطّلِع على قائمة الأنواع المتوافقة.vicinity: عنوان مبسط للمكان، بما في ذلك اسم الشارع ورقمه والموقع الجغرافي، ولكن ليس المقاطعة أو الولاية أو الرمز البريدي أو البلد على سبيل المثال، مكتب Google في سيدني، أستراليا، لديه قيمةvicinity=5/48 Pirrama Road, Pyrmont.
الوصول إلى نتائج إضافية
يعرض كل بحث عن مكان تلقائيًا ما يصل إلى 20 نتيجة لكل طلب بحث. ومع ذلك،
يمكن أن تعرِض كل عملية بحث ما يصل إلى 60 نتيجة، مُقسَّمة على ثلاث صفحات.
تتوفّر صفحات إضافية باستخدام عنصر PlaceSearchPagination. للوصول إلى صفحات إضافية، عليك تسجيل عنصر
PlaceSearchPagination باستخدام دالة ردّ اتصال. يتم تعريف العنصر
PlaceSearchPagination على النحو التالي:
hasNextPageسمة منطقية تشير إلى ما إذا كانت هناك نتائج أخرى متاحة.trueعند توفّر صفحة نتائج إضافيةnextPage()دالة ستُعرِض المجموعة التالية من النتائج بعد تنفيذ عملية بحث، عليك الانتظار لمدة ثانيتين قبل أن تصبح الصفحة التالية من النتائج متاحة.
للاطّلاع على المجموعة التالية من النتائج، يُرجى الاتصال على nextPage.
يجب عرض كل صفحة من الصفحات التي تتضمّن النتائج قبل عرض الصفحة التالية من
النتائج. يُرجى العِلم أنّ كل عملية بحث تُحتسَب كطلب واحد ضمن حدود استخدامك.
يوضّح المثال أدناه كيفية تغيير دالة ردّ الاتصال لالتقاط عنصر PlaceSearchPagination، حتى تتمكّن من إرسال طلبات بحث متعددة.
TypeScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap(): void { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", } as google.maps.MapOptions ); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage: () => void | false; const moreButton = document.getElementById("more") as HTMLButtonElement; moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, ( results: google.maps.places.PlaceResult[] | null, status: google.maps.places.PlacesServiceStatus, pagination: google.maps.places.PlaceSearchPagination | null ) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } } ); } function addPlaces( places: google.maps.places.PlaceResult[], map: google.maps.Map ) { const placesList = document.getElementById("places") as HTMLElement; for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon!, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name!, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name!; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry!.location!); }); } } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap() { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map(document.getElementById("map"), { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", }); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage; const moreButton = document.getElementById("more"); moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, (results, status, pagination) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } }, ); } function addPlaces(places, map) { const placesList = document.getElementById("places"); for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry.location); }); } } } window.initMap = initMap;
تجربة عيّنة
تفاصيل المكان
بالإضافة إلى تقديم قائمة بالأماكن ضمن منطقة معيّنة، يمكن لخدمة "الأماكن" أيضًا عرض معلومات تفصيلية عن مكان معيّن. بعد عرض مكان في ردّ على طلب بحث عن مكان، يمكن استخدام معرّف المكان لطلب تفاصيل إضافية عن ذلك المكان، مثل العنوان الكامل ورقم الهاتف وتقييمات المستخدمين ومراجعاتهم وما إلى ذلك.
طلبات تفاصيل الأماكن
يتم طلب تفاصيل المكان من خلال طلب إلى getDetails() في الخدمة.
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
تتلقّى هذه الطريقة طلبًا يحتوي على
placeId للمكان، وحقول تشير إلى أنواع بيانات الأماكن التي
يجب عرضها. مزيد من المعلومات حول كيفية الإشارة إلى مكان باستخدام رقم تعريف مكان
وتستخدِم هذه الطريقة أيضًا طريقة طلب معاودة الاتصال التي يجب أن تتعامل مع رمز الحالة الذي تم تمريره
في استجابة google.maps.places.PlacesServiceStatus، بالإضافة إلى
عنصر google.maps.places.PlaceResult.
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
الحقول (تفاصيل المكان)
تأخذ المَعلمةfields صفيفًا من السلاسل (أسماء الحقول).
استخدِم المَعلمة fields لتحديد مصفوفة من أنواع بيانات الأماكن المطلوب عرضها.
على سبيل المثال: fields: ['address_components', 'opening_hours', 'geometry'].
استخدِم نقطة عند تحديد قيم مركبة. على سبيل المثال: opening_hours.weekday_text.
تتطابق الحقول مع نتائج "تفاصيل المكان"، وتنقسم إلى ثلاث فئات للفوترة: "أساسي" و"جهة الاتصال" و"مناخ المكان". يتم تحصيل رسوم الاشتراك الأساسية مقابل الحقول الأساسية، ولا يتم تحصيل أي رسوم إضافية. يتم تحصيل رسوم أعلى مقابل حقول "جهة الاتصال" و"الجو". يمكنك الاطّلاع على جدول الأسعار
لمزيد من المعلومات. تتم دائمًا
إرجاع الإحالات الناجحة (html_attributions) مع كل مكالمة، بغض النظر عمّا إذا تم طلبها.
أساسي
تتضمّن الفئة الأساسية الحقول التالية:
address_components وadr_address وbusiness_status
formatted_address وgeometry وicon
icon_mask_base_uri وicon_background_color وname
permanently_closed (تم إيقافه نهائيًا)
photo وplace_id وplus_code وtype
url وutc_offset (تم إيقافه نهائيًا
في Places Library وMaps JavaScript API) وutc_offset_minutes
vicinity
التواصل
تتضمّن فئة "جهة الاتصال" الحقول التالية:
formatted_phone_number وinternational_phone_number
opening_hours وwebsite
الغلاف الجوي
تتضمّن فئة "الجوّ" الحقول التالية:
price_level وrating وreviews
user_ratings_total
مزيد من المعلومات عن حقول الأماكن لمزيد من المعلومات حول كيفية تحصيل رسوم طلبات بيانات "الأماكن"، يُرجى الاطّلاع على الاستخدام والفوترة.
الردود على تفاصيل المكان
رموز الحالة
يحتوي عنصر الاستجابة PlacesServiceStatus على حالة
الطلب، وقد يحتوي على معلومات تصحيح الأخطاء لمساعدتك في تحديد سبب عدم نجاح طلب تفاصيل المكان. في ما يلي القيم المحتملة للحالة:
INVALID_REQUEST: كان هذا الطلب غير صالح.OK: يحتوي الردّ على نتيجة صالحة.OVER_QUERY_LIMIT: تجاوزت صفحة الويب حصة الطلبات المسموح بها.NOT_FOUNDلم يتم العثور على الموقع الجغرافي المُشار إليه في قاعدة بيانات "الأماكن".REQUEST_DENIED: لا يُسمح لصفحة الويب باستخدام مكتبة PlacesService.UNKNOWN_ERROR: تعذّرت معالجة طلب PlacesService بسبب خطأ في الخادم. قد ينجح الطلب إذا حاولت مرة أخرى.ZERO_RESULTS: لم يتم العثور على أي نتيجة لهذا الطلب.
نتائج تفاصيل المكان
يؤدي طلب getDetails() ناجح إلى عرض عنصر
PlaceResult يتضمّن السمات التالية:
-
address_components: مصفوفة تحتوي على المكونات المنفصلة السارية على هذا العنوانيحتوي كلّ مكوّن من مكوّنات العنوان عادةً على الحقول التالية:
types[]هو صفيف يشير إلى نوع عنصر العنوان. اطّلِع على قائمة الأنواع المتوافقة.long_nameهو الوصف النصي الكامل أو اسم مكوّن العنوان كما يعرضه "محوِّل العناوين الجغرافية".short_nameهو اسم نصي مختصر لمكوّن العنوان ، إن توفّر. على سبيل المثال، قد يحتوي أحد مكوّنات العنوان لولاية ألاسكا علىlong_name "ألاسكا" وshort_name "AK" باستخدام الاختصار البريدي المكوّن من حرفَين.
يُرجى ملاحظة الحقائق التالية حول الصفيف
address_components[]:- قد تحتوي صفيف مكونات العنوان على مكونات أكثر من
formatted_address. - لا تتضمّن المصفوفة بالضرورة جميع الكيانات السياسية التي
تحتوي على عنوان، باستثناء تلك المضمّنة في
formatted_address. لاسترداد جميع الكيانات السياسية التي تحتوي على عنوان معيّن، يجب استخدام الترميز الجغرافي العكسي، مع تمرير خط العرض/خط الطول للعنوان كمَعلمة للطلب. - لا يمكن ضمان أن يظل تنسيق الردّ كما هو بين
الطلبات. على وجه الخصوص، يختلف عدد
address_componentsحسب العنوان المطلوب، ويمكن أن يتغيّر بمرور الوقت بالنسبة إلى العنوان نفسه. يمكن أن يغيّر المكوّن موضعه في الصفيف. يمكن أن يتغيّر نوع المكوّن. قد يكون أحد المكوّنات مفقودًا في ردّ لاحق.
- يشير الرمز
business_statusإلى حالة تشغيل المكان، إذا كان نشاطًا تجاريًا. يمكن أن يحتوي على إحدى القيم التالية:OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_status. -
formatted_address: العنوان السهل القراءة لهذا المكانغالبًا ما يكون هذا العنوان مطابقًا للعنوان البريدي. تجدر الإشارة إلى أنّ بعض البلدان، مثل المملكة المتحدة، لا تسمح بتوزيع العناوين البريدية الحقيقية بسبب القيود المفروضة على الترخيص.
يتألّف العنوان المنسَّق منطقيًا من مكوّن عنوان واحد أو أكثر. على سبيل المثال، يتألّف العنوان "111 شارع 8، القاهرة، القاهرة" من المكوّنات التالية: "111" (رقم الشارع)، "شارع 8" (المسار)، و"القاهرة" (المدينة) و "القاهرة" (الولاية).
لا تُحلِّل العنوان المنسَّق آليًا. بدلاً من ذلك، يجب استخدام عناصر العنوان الفردية التي تتضمّنها استجابة واجهة برمجة التطبيقات بالإضافة إلى حقل العنوان المنسَّق.
formatted_phone_number: رقم هاتف المكان، بالتنسيق وفقًا لطريقة كتابة الرقم المُتّبعة في المنطقة-
geometry: المعلومات المتعلّقة بهندسة المكان ويشمل ذلك ما يلي:- تقدّم
locationخطي العرض والطول للمكان. viewportيحدِّد إطار العرض المفضّل على الخريطة عند عرض هذا المكان.
- تقدّم
-
permanently_closed(تم إيقافها نهائيًا) هي علامة منطقية تشير إلى ما إذا كان المكان قد تم إغلاقه نهائيًا أو مؤقتًا (القيمةtrue). لا تستخدِمpermanently_closed. بدلاً من ذلك، استخدِمbusiness_statusللاطّلاع على الحالة التشغيلية للأنشطة التجارية. plus_code(راجِع رمز الموقع المفتوح ورموز Plus Codes) هو مرجع موقع جغرافي مشفَّر، يتم الحصول عليه من إحداثيات خطوط الطول والعرض، ويمثّل منطقة: 1/8000 من الدرجة في 1/8000 من الدرجة (حوالي 14 مترًا في 14 مترًا عند خط الاستواء) أو أصغر. يمكن استخدام رموز Plus Codes كبديل لعناوين الشوارع في الأماكن التي لا تتوفّر فيها (حيث لا يتم ترقيم المباني أو تسمية الشوارع).يتم تنسيق رمز الموقع المفتوح كرمز عالمي ورمز مركب:
global_codeهو رمز منطقة مكوّن من 4 أحرف ورمز محلي مكوّن من 6 أحرف أو أكثر (849VCWC8+R9).compound_codeهو رمز محلي مكوّن من 6 أحرف أو أكثر يتضمّن موقعًا جغرافيًا واضحًا (CWC8+R9، ماونتن فيو، كاليفورنيا، الولايات المتحدة الأمريكية). لا تُحلِّل هذا المحتوى آليًا.
html_attributions: نص الإحالة الذي سيتم عرضه لهذه النتيجة الخاصة بالموقع-
icon: عنوان URL لمصدر صورة يمكن استخدامه لتمثيل نوع هذا المكان - يحتوي
international_phone_numberعلى رقم هاتف المكان بالتنسيق الدولي. يتضمّن التنسيق الدولي رمز البلد، ويتمّ وضع علامة الجمع (+) قبله. على سبيل المثال،international_phone_numberلمكتب Google في سيدني، أستراليا هو+61 2 9374 4000. name: اسم المكانutc_offsetتم إيقافه نهائيًا في Places Library، استخدِمutc_offset_minutesبدلاً من ذلك.- يحتوي الحقل
utc_offset_minutesعلى عدد الدقائق التي تختلف بها المنطقة الزمنية الحالية لهذا المكان عن التوقيت العالمي المنسق. على سبيل المثال، بالنسبة إلى الأماكن في سيدني، أستراليا خلال التوقيت الصيفي، سيكون ذلك 660 (+11 ساعة من التوقيت العالمي المنسق)، وبالنسبة إلى الأماكن في كاليفورنيا خارج التوقيت الصيفي، سيكون ذلك -480 (-8 ساعات من التوقيت العالمي المنسق). - يحتوي
opening_hoursعلى المعلومات التالية:open_now(تم إيقافه نهائيًا في Places Library وMaps JavaScript API، استخدِم opening_hours.isOpen() بدلاً منه. لمعرفة كيفية استخدامisOpenمع تفاصيل المكان، يُرجى الاطّلاع على فيديو كيفية الحصول على ساعات العمل في Places API .) "open_now" هي قيمة منطقية تشير إلى ما إذا كان المكان مفتوحًا في الوقت الحالي.periods[]هي صفيف لفترات العمل التي تغطّي سبعة أيام، بدءًا من الأحد، بترتيب زمني. تحتوي كل فترة على ما يلي:- يحتوي
openعلى عنصرَي يوم ووقت يصِف وقت افتتاح المكان:dayرقم من 0 إلى 6 يمثّل أيام الأسبوع بدءًا من الأحد على سبيل المثال، 2 تعني الثلاثاء.- يمكن أن يحتوي
timeعلى وقت من اليوم بتنسيق 24 ساعة hhmm (القيم في النطاق 0000-2359). سيتم تسجيلtimeحسب المنطقة الزمنية للمكان.
- قد يحتوي
closeعلى زوج من عناصر اليوم والوقت لوصف وقت إغلاق المكان. ملاحظة: إذا كان مكان مفتوحًا دائمًا، لن يظهر القسمcloseفي الردّ. يمكن للتطبيقات الاعتماد على القيمة "مفتوح دائمًا" التي يتم تمثيلها على أنّها فترةopenتحتوي علىdayبالقيمة 0 وtimeبالقيمة 0000، بدونclose.
- يحتوي
weekday_textهي صفيف من سلاسل ستة تمثل ساعات العمل المنسَّقة لكل يوم من أيام الأسبوع. إذا تم تحديد مَعلمةlanguageفي طلب "تفاصيل المكان"، ستُعدّل خدمة "الأماكن" تنسيق ساعات العمل وتُحوّلها إلى اللغة المناسبة. يعتمد ترتيب العناصر في هذه الصفيفة على المَعلمةlanguage. تبدأ بعض اللغات الأسبوع يوم الاثنين بينما تبدأ لغات أخرى يوم الأحد.
-
permanently_closed(تم إيقافها نهائيًا) هي علامة منطقية تشير إلى ما إذا كان المكان قد تم إغلاقه نهائيًا أو مؤقتًا (القيمةtrue). لا تستخدِمpermanently_closed. بدلاً من ذلك، استخدِمbusiness_statusللاطّلاع على الحالة التشغيلية للأنشطة التجارية. -
photos[]: مصفوفة من عناصرPlacePhotoيمكن استخدامPlacePhotoللحصول على صورة باستخدام الأسلوبgetUrl()، أو يمكنك فحص العنصر بحثًا عن القيم التالية:-
height: الحد الأقصى لارتفاع الصورة، بالبكسل -
width: الحد الأقصى لعرض الصورة، بالبكسل html_attributions: نص الإسناد الذي سيتم عرضه مع صورة هذا المكان
-
place_id: معرّف نصي يحدّد مكانًا بشكل فريد ويمكن استخدامه لاسترداد معلومات عن المكان باستخدام طلب معرفة تفاصيل المكان. اطّلِع على مزيد من المعلومات عن كيفية الإشارة إلى مكان باستخدام رقم تعريف مكان.-
rating: تقييم المكان، من 0.0 إلى 5.0، استنادًا إلى المراجعات المجمَّعة للمستخدمين reviewsصفيف من خمس مراجعات كحد أقصى تتألف كل مراجعة من عدة مكوّنات:- يحتوي
aspects[]على صفيف من عناصرPlaceAspectRating، يقدّم كلّ منها تقييمًا لسمة واحدة من سمات الفندق. يُعدّ العنصر الأول في الصفيف هو الجانب الأساسي. يتم تعريف كلPlaceAspectRatingعلى النحو التالي:typeاسم الجانب الذي يتم تقييمه الأنواع التالية متوافقة:appeal،atmosphereوdecor،facilitiesوfoodوoverall،qualityوservice.ratingتقييم المستخدِم لهذا الصعيد المحدّد، من 0 إلى 3
author_nameاسم المستخدم الذي أرسل المراجعة يتم إسناد المراجعات المجهولة المصدر إلى "مستخدم Google". إذا تم ضبط مَعلمة language، ستعرض العبارة "مستخدم Google" سلسلة مترجمة.author_urlعنوان URL الخاص بالملف الشخصي للمستخدم على Google+، إذا كان متاحًاlanguageرمز لغة IETF يشير إلى اللغة المستخدَمة في مراجعة المستخدم يحتوي هذا الحقل على علامة اللغة الرئيسية فقط، وليس العلامة الثانوية التي تشير إلى البلد أو المنطقة. على سبيل المثال، يتم وضع علامة "en" على كل المراجعات باللغة الإنجليزية، وليس "en-AU" أو 'en-UK".ratingالتقييم العام الذي قدمه المستخدم لهذا المكان يمثّل هذا المقياس عددًا صحيحًا يتراوح بين 1 و5.textمراجعة المستخدم عند مراجعة موقع جغرافي باستخدام "أماكن Google"، تكون المراجعات النصية اختيارية، وبالتالي، قد يكون هذا الحقل فارغًا.
- يحتوي
typesمصفوفة من أنواع هذا المكان (مثل["political", "locality"]أو["restaurant", "lodging"]). قد تحتوي هذه المصفوفة على قيم متعدّدة، أو قد تكون فارغة. قد يتمّ إدخال قيم جديدة بدون إشعار مسبق. اطّلِع على قائمة الأنواع المتوافقة.url: عنوان URL لصفحة Google الرسمية لهذا المكان. هذه هي الصفحة التي تملكها Google وتتضمن أفضل المعلومات المتاحة عن المكان. يجب أن ترتبط التطبيقات بهذه الصفحة أو تضمّنها على أي شاشة تعرض نتائج تفصيلية عن المكان للمستخدم.vicinity: عنوان مبسط للمكان، بما في ذلك اسم الشارع ورقمه والموقع الجغرافي، ولكن ليس المقاطعة أو الولاية أو الرمز البريدي أو البلد على سبيل المثال، مكتب Google في سيدني، أستراليا، لديه قيمةvicinity=5/48 Pirrama Road, Pyrmont. لا يتم عرض السمةvicinityإلا في بحث عن الأماكن القريبة.- يعرض
websiteالموقع الإلكتروني الموثوق به لهذا المكان، مثل الصفحة الرئيسية للنشاط التجاري.
ملاحظة: قد لا تتوفّر التقييمات المتعدّدة السمات في جميع المواقع الجغرافية. إذا كانت هناك مراجعات قليلة جدًا، سيتضمّن ردّ التفاصيل إما تقييمًا قديمًا على مقياس من 0.0 إلى 5.0 (إذا كان متاحًا) أو لن يتضمّن أي تقييم على الإطلاق.
الإشارة إلى مكان باستخدام رقم تعريف مكان
معرّف المكان هو مرجع فريد لمكان على "خرائط Google". تتوفّر أرقام تعريف الأماكن لمعظم المواقع الجغرافية، بما في ذلك الأنشطة التجارية والمعالم والمتنزهات والتقاطعات.
لاستخدام معرّف مكان في تطبيقك، عليك أولاً البحث عن المعرّف الذي
يكون متوفّرًا في PlaceResult من طلب البحث عن مكان أو طلب الحصول على التفاصيل.
يمكنك بعد ذلك استخدام معرّف المكان هذا للاطّلاع على
تفاصيل
المكان.
تكون أرقام تعريف الأماكن مُعفاة من القيود المفروضة على ذاكرة التخزين المؤقت والمذكورة في الفقرة 3.2.3(ب) من بنود خدمة Google Maps Platform. ولذلك، يمكنك تخزين قيم معرّفات الأماكن لاستخدامها لاحقًا. للاطّلاع على أفضل الممارسات عند تخزين أرقام تعريف الأماكن، اطّلِع على نظرة عامة على أرقام تعريف الأماكن.
var map; function initialize() { // Create a map centered in Pyrmont, Sydney (Australia). map = new google.maps.Map(document.getElementById('map'), { center: {lat: -33.8666, lng: 151.1958}, zoom: 15 }); // Search for Google's office in Australia. var request = { location: map.getCenter(), radius: '500', query: 'Google Sydney' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } // Checks that the PlacesServiceStatus is OK, and adds a marker // using the place ID and location from the PlacesService. function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); } } google.maps.event.addDomListener(window, 'load', initialize);
صور المكان
استخدِم ميزة "وضع صورة" لإضافة محتوى مصوّر عالي الجودة إلى موقعك الإلكتروني. تتيح لك خدمة "صور Google" الوصول إلى ملايين الصور المخزّنة في قاعدة بيانات "الأماكن" و"Google+ Local". عند الحصول على معلومات عن مكان باستخدام طلب "تفاصيل المكان"، سيتم عرض إشارات إلى الصور التي تتضمّن محتوى ذي صلة بالمكان. تعرِض طلبات البحث عن الأماكن المجاورة والبحث النصي أيضًا مرجع صورة واحدًا لكل مكان، عند الضرورة. باستخدام خدمة "صور Google"، يمكنك بعد ذلك الوصول إلى الصور المُشار إليها و تغيير حجم الصورة إلى الحجم الأمثل لتطبيقك.
سيتم عرض مصفوفة من كائنات PlacePhoto كجزء من كائن
PlaceResult لأي طلب getDetails() أو
textSearch() أو
nearbySearch() يتم تقديمه ضد PlacesService.
ملاحظة: يختلف عدد الصور التي يتم عرضها حسب الطلب.
- سيعرض "البحث عن الأماكن القريبة" أو "البحث النصي"
PlacePhotoعنصرًا واحدًا على الأكثر. - سيعرض طلب التفاصيل ما يصل إلى عشرة عناصر
PlacePhoto.
يمكنك طلب عنوان URL للصورة المرتبطة من خلال استدعاء الأسلوب
PlacePhoto.getUrl() وضبط عنصر
PhotoOptions صالح. استخدِم العنصر PhotoOptions لتحديد الحد الأقصى للارتفاع والعرض للصورة. إذا تحديد قيمة لكل من maxHeight وmaxWidth، ستغيّر خدمة الصور حجم الصورة لتصبح أصغر حجمَين، مع الحفاظ على نسبة العرض إلى الارتفاع الأصلية.
يقبل مقتطف الرمز التالي عنصر مكان، ويضيف علامة إلى الخريطة إذا كانت هناك صورة. يتم استبدال صورة العلامة التلقائية بنسخة صغيرة من الصورة.
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
يتم الحصول على الصور التي تعرضها خدمة "صور Google" من مجموعة متنوعة من
المواقع الجغرافية، بما في ذلك الصور التي ينشرها مالكو الأنشطة التجارية والمستخدمون. في معظم
الحالات، يمكن استخدام هذه الصور بدون نسبها إلى مؤلفها، أو سيتم تضمين عملية تحديد المصدر المطلوبة
كجزء من الصورة. ومع ذلك، إذا كان عنصر
photo المعروض يتضمّن قيمة في حقل
html_attributions، يجب تضمين مصدر
الإضافي في تطبيقك في أي مكان تعرض فيه الصورة.