نظرة عامة
تتيح الدوال البرمجية في مكتبة الأماكن وMaps JavaScript API لتطبيقك البحث عن أماكن (محدّدة في واجهة برمجة التطبيقات هذه على أنّها مؤسسات أو مواقع جغرافية أو نقاط اهتمام بارزة) تقع ضمن منطقة محدّدة، مثل حدود خريطة أو حول نقطة ثابتة.
توفّر Places API ميزة الإكمال التلقائي التي يمكنك استخدامها لمنح تطبيقاتك سلوك البحث المسبق في حقل البحث في "خرائط Google". عندما يبدأ المستخدم بكتابة عنوان، ستملأ ميزة "الإكمال التلقائي" بقية المعلومات. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات الإكمال التلقائي.
الخطوات الأولى
إذا لم تكن على دراية بـ Maps JavaScript API أو JavaScript، ننصحك بمراجعة JavaScript والحصول على مفتاح واجهة برمجة التطبيقات قبل البدء.
تحميل المكتبة
خدمة Places هي مكتبة مستقلة ومنفصلة عن رمز Maps JavaScript API الرئيسي. لاستخدام الوظائف المضمّنة في هذه المكتبة، يجب أولاً تحميلها باستخدام المَعلمة 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.
- انقر على القائمة المنسدلة الخاصة بالمشروع واختَر المشروع الذي يتضمّن مفتاح واجهة برمجة التطبيقات الذي تريد تأمينه.
- انقر على زر القائمة
واختَر منصة خرائط Google > بيانات الاعتماد.
- في صفحة بيانات الاعتماد، انقر على اسم مفتاح واجهة برمجة التطبيقات الذي تريد تأمينه.
- في صفحة تقييد مفتاح واجهة برمجة التطبيقات وإعادة تسميته، اضبط القيود على النحو التالي:
- القيود المفروضة على واجهة برمجة التطبيقات
- انقر على مفتاح التقييد.
- انقر على اختيار واجهات برمجة التطبيقات واختَر Maps JavaScript API وPlaces API (الإصدار القديم).
(إذا لم تكن إحدى واجهتَي برمجة التطبيقات مُدرَجة، عليك تفعيلها).
- انقر على حفظ.
سياسات وحدود الاستخدام
الحصص
تتشارك "مكتبة الأماكن" حصة الاستخدام مع Places API، كما هو موضّح في مستندات حدود الاستخدام الخاصة بـ Places API.
السياسات
يجب أن يكون استخدام مكتبة الأماكن وMaps JavaScript API متوافقًا مع السياسات الموضّحة في Places API.
عمليات البحث عن الأماكن
باستخدام خدمة "الأماكن"، يمكنك إجراء أنواع عمليات البحث التالية:
- تعرض طريقة Find Place from Query مكانًا استنادًا إلى طلب بحث نصي (مثل اسم مكان أو عنوانه).
- تعرض خدمة العثور على مكان من خلال رقم الهاتف مكانًا استنادًا إلى رقم هاتف.
- تعرض خدمة بحث في الجوار (الإصدار القديم) قائمة بالأماكن المجاورة استنادًا إلى الموقع الجغرافي للمستخدم.
- تعرض خدمة البحث النصي (الإصدار القديم) قائمة بالأماكن القريبة استنادًا إلى سلسلة بحث، مثل "بيتزا".
- تعرض طلبات تفاصيل المكان (الإصدار القديم) معلومات أكثر تفصيلاً عن مكان معيّن، بما في ذلك مراجعات المستخدمين.
يمكن أن تتضمّن المعلومات التي يتم عرضها مؤسسات، مثل المطاعم والمتاجر والمكاتب، بالإضافة إلى نتائج "الترميز الجغرافي" التي تشير إلى العناوين والمناطق السياسية، مثل البلدات والمدن، ونقاط الاهتمام الأخرى.
طلبات العثور على مكان (الإصدار القديم)
يتيح لك طلب العثور على مكان البحث عن مكان إما من خلال طلب بحث نصي أو رقم هاتف. يتوفّر نوعان من طلبات العثور على مكان:
Find Place from Query
تتلقّى طريقة العثور على مكان من طلب البحث إدخالاً نصيًا وتعرض مكانًا. يمكن أن يكون الإدخال أي نوع من بيانات الأماكن، مثل اسم مؤسسة أو عنوان. لإجراء طلب
Find Place from Query، استدعِ طريقة 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.164 fields(مطلوب) حقل واحد أو أكثر من الحقول التي تحدّد أنواع بيانات "الأماكن" المطلوب عرضها.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 (متوقّف نهائيًا في مكتبة الأماكن ضِمن 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}}
طلبات البحث في الجوار
تتيح لك خدمة "بحث في الجوار" البحث عن أماكن ضمن منطقة محدّدة باستخدام كلمة رئيسية أو نوع. يجب أن يتضمّن بحث في الجوار دائمًا موقعًا جغرافيًا يمكن تحديده بإحدى الطريقتين التاليتين:
- a
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" يجب أن تعرض فقط الأماكن المفتوحة عند إرسال طلب البحث. لن يتم عرض الأماكن التي لم تحدّد ساعات عملها في قاعدة بيانات Google Places إذا تضمّنت هذه المَعلمة في طلب البحث. لن يكون لضبط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 Places" هي خدمة ويب تعرض معلومات حول مجموعة من الأماكن استنادًا إلى سلسلة نصية، مثل "بيتزا في نيويورك" أو "محلات أحذية بالقرب من أوتاوا". تستجيب الخدمة بقائمة من الأماكن التي تطابق السلسلة النصية وأي تحيّز في الموقع الجغرافي تم ضبطه. سيتضمّن ردّ البحث قائمة بالأماكن. يمكنك إرسال طلب للحصول على تفاصيل المكان للحصول على مزيد من المعلومات حول أي من الأماكن الواردة في الرد.
يتم بدء عمليات البحث النصية من خلال استدعاء طريقة textSearch() الخاصة بـ PlacesService.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
تتلقّى هذه الطريقة طلبًا يتضمّن الحقول التالية:
-
query(مطلوب) سلسلة النص التي سيتم البحث فيها، مثلاً: "مطعم" أو "123 شارع رئيسي". يجب أن يكون هذا اسم مكان أو عنوانًا أو فئة مؤسسات. يمكن أن تؤدي أي أنواع أخرى من الإدخالات إلى حدوث أخطاء، ولا نضمن أن تعرض نتائج صالحة. ستعرض خدمة "الأماكن" نتائج مطابقة محتملة استنادًا إلى هذه السلسلة، كما سترتّب النتائج حسب مدى صلتها بالموضوع. تصبح هذه المَعلمة اختيارية إذا تم استخدام المَعلمةtypeأيضًا في طلب البحث. - اختياريًا:
openNow: قيمة منطقية تشير إلى أنّ خدمة "أماكن Google" يجب أن تعرض فقط الأماكن المفتوحة في وقت إرسال طلب البحث. لن يتم عرض الأماكن التي لا تحدّد ساعات العمل في قاعدة بيانات Google Places إذا تضمّنت هذه المَعلمة في طلب البحث. لن يكون لضبطopenNowعلىfalseأي تأثير.-
minPriceLevelوmaxPriceLevel— تحصر النتائج على الأماكن التي تندرج ضمن فئة السعر المحدّدة. تتراوح القيم الصالحة بين 0 (الأكثر توفيرًا) و4 (الأكثر تكلفة) ضمنًا. - أيّ من:
bounds، ويجب أن يكون كائنgoogle.maps.LatLngBoundsيحدّد مساحة البحث المستطيلة. الحدّ الأقصى للمسافة القطرية المسموح بها لمنطقة الحدود يبلغ 100,000 متر تقريبًا.locationوradius: يمكنك تحسين النتائج لتناسب دائرة محدّدة من خلال تمرير المَعلمتَينlocationوradius. سيؤدي ذلك إلى توجيه خدمة "الأماكن" إلى تفضيل عرض النتائج ضمن تلك الدائرة. قد يستمر عرض النتائج خارج المنطقة المحدّدة. يأخذ الموقع الجغرافي كائنgoogle.maps.LatLng، ويأخذ النطاق عددًا صحيحًا بسيطًا يمثّل نصف قطر الدائرة بالمتر. يبلغ الحد الأقصى لنصف القطر المسموح به 50,000 متر.
type: لحصر النتائج على الأماكن التي تتطابق مع النوع المحدّد. يمكن تحديد نوع واحد فقط (في حال توفير أكثر من نوع واحد، سيتم تجاهل جميع الأنواع التي تلي الإدخال الأول). اطّلِع على قائمة الأنواع المتاحة.
يجب أيضًا تمرير طريقة رد اتصال إلى 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 8th Avenue, New York, NY" من المكوّنات التالية: "111" (رقم الشارع) و"8th Avenue" (الطريق) و"New York" (المدينة) و "NY" (ولاية الولايات المتحدة).
لا تحلّل العنوان المنسَّق آليًا. بدلاً من ذلك، عليك استخدام مكوّنات العنوان الفردية التي تتضمّنها استجابة واجهة برمجة التطبيقات بالإضافة إلى حقل العنوان المنسّق.
-
geometry: معلومات متعلقة بالشكل الهندسي للمكان ويشمل ذلك ما يلي:- تمثّل
locationخط العرض وخط الطول للمكان. - يمثّل
viewportإطار العرض المفضّل على الخريطة عند عرض هذا المكان.
- تمثّل
-
permanently_closed(تم إيقافه نهائيًا) هي علامة منطقية تشير إلى ما إذا كان المكان مغلقًا بشكل دائم أو مؤقت (القيمةtrue). لا تستخدِمpermanently_closed. بدلاً من ذلك، استخدِم السمةbusiness_statusللحصول على حالة التشغيل الخاصة بالأنشطة التجارية. -
plus_code(راجِع Open Location Code وPlus Codes) هو مرجع مشفّر للموقع الجغرافي، مشتق من إحداثيات خطوط الطول والعرض، ويمثّل منطقة: 1/8000 من الدرجة في 1/8000 من الدرجة (حوالي 14 مترًا × 14 مترًا عند خط الاستواء) أو أصغر. يمكن استخدام رموز Plus كبديل لعناوين الشوارع في الأماكن التي لا تتوفّر فيها (حيث لا يتم ترقيم المباني أو تسمية الشوارع).يتم تنسيق رمز 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هي قيمة منطقية تشير إلى ما إذا كان المكان مفتوحًا في الوقت الحالي (تم إيقافها نهائيًا في مكتبة الأماكن و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 (متوقّف نهائيًا
في مكتبة الأماكن و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هو الوصف النصي الكامل أو اسم مكوّن العنوان الذي يعرضه Geocoder. -
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 8th Avenue, New York, NY" من المكوّنات التالية: "111" (رقم الشارع) و"8th Avenue" (الطريق) و"New York" (المدينة) و "NY" (ولاية الولايات المتحدة).
لا تحلّل العنوان المنسَّق آليًا. بدلاً من ذلك، عليك استخدام مكوّنات العنوان الفردية التي تتضمّنها استجابة واجهة برمجة التطبيقات بالإضافة إلى حقل العنوان المنسّق.
-
formatted_phone_number: رقم هاتف المكان، بتنسيق يتوافق مع الاصطلاح الإقليمي للرقم -
geometry: معلومات متعلقة بالشكل الهندسي للمكان ويشمل ذلك ما يلي:- تمثّل
locationخط العرض وخط الطول للمكان. - تحدّد
viewportإطار العرض المفضّل على الخريطة عند عرض هذا المكان.
- تمثّل
-
permanently_closed(تم إيقافه نهائيًا) هي علامة منطقية تشير إلى ما إذا كان المكان مغلقًا بشكل دائم أو مؤقت (القيمةtrue). لا تستخدِمpermanently_closed. بدلاً من ذلك، استخدِم السمةbusiness_statusللحصول على حالة التشغيل الخاصة بالأنشطة التجارية. -
plus_code(راجِع Open Location Code وPlus Codes) هو مرجع مشفّر للموقع الجغرافي، مشتق من إحداثيات خطوط الطول والعرض، ويمثّل منطقة: 1/8000 من الدرجة في 1/8000 من الدرجة (حوالي 14 مترًا × 14 مترًا عند خط الاستواء) أو أصغر. يمكن استخدام رموز Plus كبديل لعناوين الشوارع في الأماكن التي لا تتوفّر فيها (حيث لا يتم ترقيم المباني أو تسمية الشوارع).يتم تنسيق رمز 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متوقّف نهائيًا في مكتبة الأماكن ضِمن Maps JavaScript API، يُرجى استخدامutc_offset_minutesبدلاً منها.- تحتوي السمة
utc_offset_minutesعلى عدد الدقائق التي يختلف بها التوقيت الحالي لهذا المكان عن التوقيت العالمي المتفق عليه. على سبيل المثال، بالنسبة إلى الأماكن في سيدني، أستراليا خلال نظام التوقيت الصيفي، سيكون هذا الرقم 660 (+11 ساعة من التوقيت العالمي المنسَّق)، وبالنسبة إلى الأماكن في كاليفورنيا خارج نظام التوقيت الصيفي، سيكون هذا الرقم -480 (-8 ساعات من التوقيت العالمي المنسَّق). - يتضمّن
opening_hoursالمعلومات التالية:open_now(تم إيقافه نهائيًا في مكتبة الأماكن ضِمن Maps JavaScript API، لذا يُرجى استخدام opening_hours.isOpen() بدلاً من ذلك. لمعرفة كيفية استخدامisOpenمع "تفاصيل المكان"، راجِع الفيديو "كيفية الحصول على ساعات العمل في Places API (الإصدار القديم)" .) `open_now` هي قيمة منطقية تشير إلى ما إذا كان المكان مفتوحًا في الوقت الحالي.-
periods[]هي مصفوفة من فترات ساعات العمل تغطي سبعة أيام، بدءًا من الأحد، بالترتيب الزمني. تحتوي كل فترة على ما يلي:- تحتوي
openعلى زوج من عناصر اليوم والوقت التي توضّح وقت فتح المكان:-
dayرقم من 0 إلى 6، يتوافق مع أيام الأسبوع، بدءًا من الأحد. على سبيل المثال، يشير الرقم 2 إلى يوم الثلاثاء. - يمكن أن يحتوي
timeعلى وقت من اليوم بتنسيق hhmm على مدار 24 ساعة (تتراوح القيم بين 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". إذا تم ضبط مَعلمة اللغة، ستعرض العبارة "مستخدم 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". وبالتالي، يمكنك تخزين قيم أرقام تعريف الأماكن لاستخدامها لاحقًا. للاطّلاع على أفضل الممارسات عند تخزين معرّفات الأماكن، راجِع نظرة عامة على معرّف المكان.
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+ المحلي". عند الحصول على معلومات حول مكان باستخدام طلب "تفاصيل المكان"، سيتم عرض مراجع للصور ذات الصلة. تعرض طلبات بحث في الجوار و"البحث النصي" أيضًا مرجعًا واحدًا للصورة لكل مكان، عند الاقتضاء. باستخدام خدمة الصور، يمكنك بعد ذلك الوصول إلى الصور المشار إليها وتغيير حجم الصورة إلى الحجم الأمثل لتطبيقك.
سيتم عرض مصفوفة من عناصر 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}) }); }
يتم الحصول على الصور التي تعرضها خدمة "الصور" من مجموعة متنوعة من المواقع الجغرافية، بما في ذلك صور يقدّمها مالكو الأنشطة التجارية والمستخدمون. في معظم الحالات، يمكن استخدام هذه الصور بدون الحاجة إلى الإشارة إلى مصدرها، أو سيتم تضمين الإشارة المطلوبة إلى المصدر كجزء من الصورة. ومع ذلك، إذا كان العنصر
photo الذي تم عرضه يتضمّن قيمة في الحقل
html_attributions، عليك تضمين معلومات إضافية حول مصدر الصورة في تطبيقك في أي مكان تعرض فيه الصورة.