Google Location API مقابل الخرائط: لماذا تسفر الاستعلامات المتطابقة عن نتائج مختلفة؟

StackOverflow https://stackoverflow.com/questions/1605641

سؤال

أفقد بعض الشعر على AJAX API من Google حاليًا. ما أقوم به هو تحويل بيانات الموقع المهيكلة إلى استعلام Google Local Search API من أجل منح المستخدمين قائمة نتائج بديلة للأماكن.

السابق.:

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&key=XXX&hl=en_US&mrt=localonly&rsz=large&q=pizza+Neustadt+DE

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

إذا بحثت عن "مصطلح Rome Roma It" على خرائط Google ، فإنه يجد كل شيء مصلحات في روما كما هو متوقع. إذا أكررت نفس البحث على واجهة برمجة التطبيقات ، أحصل على نتائج صفرية (يجب أن أزيل إما "روما" أو "روما" حتى تعمل - روما هي المنطقة الإدارية هنا ، وروما اسم المدينة).

لماذا هذا؟

مثال آخر. هناك 20 مدينة ومدن وبلدة مختلفة تسمى Neustadt في ألمانيا. الآن ، عندما أقوم بالبحث على خرائط Google ، فإنه يجد واحدة فقط ، إلا إذا حددت مؤهلاً إضافيًا ، مثل منطقة أو شيء ما.

الآن ، على مستوى واجهة برمجة التطبيقات ، توقعت كيندا أنه عند اجتياز معلمات LAT/LON مع استعلام لـ Neustadt ، سيكون من الذكي بما يكفي لاختيار Neustadt الصحيح من خلال النظر إلى الترميز الجيو. لكن هذا لا يحدث ، فهو يختار دائمًا نفس Neustadt ويتجاهل البيانات الجغرافية.

q=pizza+Neustadt+DE&sll=48.8053,11.7579

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

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001

النتيجة الأخيرة ليست حتى في نفس المدينة ؛ ألا ينبغي أن يؤدي مربع المحيط الصغير إلى أي بيانات على الإطلاق؟ يمكنني حتى تمرير Bbox بحجم صفر وسأظل أحصل على نتائج.

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

هل لديك أي تلميحات ، tipps ، اقتراحات حول كيفية السيطرة على البحث المحلي من Google؟

تحديث:لقد وجدت شيئًا غريبًا حقًا. هل يمكن لشخص ما الذهاب إلى هذا الموقع:

http://code.google.com/apis/ajaxsearch/documentation/localsearch/index.html

افتح Firebug ، ومراقبة حركة مرور HTTP عند الكتابة في استعلام البحث هذا:

test Rome Roma IT

سوف تحصل على مجموعة من النتائج على الخريطة. الآن انسخ عنوان URL الذي تم الاتصال به عبر Ajax وأرسل طلبًا إليه على سطر الأوامر:

curl "http://www.google.com/uds/GlocalSearch?key=internal-sample&v=1.0&rsz=large&sll=41.97684819454683%2C12.486648559570312&sspn=0.204185%2C0.549316&q=test%20Rome%20Roma%20IT&lssrc=lsc&lscstyle=final&start=0&callback=_callbacks_._5g139yfuc"

الآن أحصل على نتائج صفر. كيف يمكن أن يكون ربما؟ إنه بالتأكيد ليس المفتاح أو Args رد الاتصال ، لقد قمت بإزالتها دون أي تغيير في نتيجة هذا الاستعلام.

هل تمدد Google نتائج البحث عندما يأتي استعلام من أحد خوادمها؟

هل كانت مفيدة؟

المحلول

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

في مشكلة الترخيص ، يبدو أن Google يمكنها عرضها أكثر المعلومات عندما يذهب المستخدم عبر المتصفح ، مقارنة بالطلبات عبر مكالمات API (والتي يمكن أن تكون أتمتة من الناحية النظرية).

نرى هنا فمثلا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top