Коя е най-добрата практика за запазване и опресняване на place_id от API на Google Places?

В документацията на Google Places се казва:

„Най-добрата практика е периодично да опреснявате вашите съхранени идентификационни номера на места, например след 100 дни. Една стратегия е да съхраните оригиналната заявка, която е върнала всеки идентификационен номер на място. Ако идентификационният номер на място стане невалиден, можете да подадете отново тази заявка, за да получите нови резултати . Тези резултати могат или не могат да включват оригиналното място."

Използвам AutocompleteService.getPlacePredictions за извличане на места и запазване на place_id за избраното място.

Кое друго поле трябва да запазя за по-късно "опресняване" на place_id и кой е най-добрият метод за "опресняване" на един place_id? (Предполагам, че не използвам AutocompleteService)




Отговори (1)


Както е казано в документацията, публикувана във вашия въпрос, можете да съхраните заявката, която е върнала place_id. Така че един от начините би бил запазването на въведеното от потребителя (текст, използван за извършване на заявката за автоматично довършване) за даденото place_id.

Друг начин би бил да запазите полето "description" (в прогнозите) за даденото place_id. Както е посочено в документацията, „описанието е съответстващата прогноза“ и тъй като е свързано с place_id. Можете да сте сигурни, че това поле е свързано с мястото.

Изглежда, че запазването на описанието ще работи, но в някои (много специфични) случаи те също могат да бъдат променени в базата данни, давайки неточни резултати.

Запазването на въведен текст (използван в заявка за автоматично довършване) е по-добре препоръчително, но това трябва да е силна заявка. това, което имам предвид с това е:

например, ако искате да запазите place_id за Times Square, може би с въвеждането "times" вече получавате прогнози за него, но "times" само по себе си не е силна заявка, така че по-добре запазете "times square".

И се уверете, че заявката, която сте запазили, винаги ще ви дава желаното място като първа прогноза.

person betofarina    schedule 12.02.2018
comment
Виждам, че след като трябва да опресня place_id, как трябва да използвам описанието, за да извлека новия place_id? Какъв е правилният API, който да се използва за извличане на place_id с помощта на описание? Що се отнася до първата опция за съхраняване на въведеното от потребителя за автоматичното довършване, мисля, че не е добро решение, тъй като ще трябва да съхраня и индикатор за това коя от прогнозите е избрал потребителят, за да мога да извлека конкретната, което ме води основно до твоят втори вариант все пак. - person eyalhakim; 12.02.2018
comment
тъй като описанието всъщност е прогноза, можете да използвате същите getPlacePredictions, за да намерите мястото, като по този начин сте сигурни, че ако place_id се промени, все още можете да намерите новото. Геокодирането може да бъде друга опция, но тъй като заявката трябва да бъде добре форматирана, за да получите добри резултати, бих избрал услугата за автоматично довършване. - person betofarina; 12.02.2018
comment
значи искаш да използваш услугата за автоматично довършване с пълното описание и след това да използваш първото върнато предвиждане? (което най-вероятно ще е и единственото) - person eyalhakim; 12.02.2018
comment
да, мога да пресъздам примера със същия place_id като първото предсказание. опитайте няколко примера и се уверете сами. - person betofarina; 12.02.2018
comment
Благодаря за отговора, приех го. Въпреки това, тъй като този проблем трябва да съществува за всеки потребител на този API, бих очаквал по-дефиниран метод за опресняване на тези идентификатори, който също ще се появи в документите. - person eyalhakim; 12.02.2018
comment
Ще се консултирам с експерти и ще актуализирам, ако намеря нещо друго - person betofarina; 12.02.2018
comment
проверих с експерт и актуализирах отговора, изглежда, че и двата случая работят добре, но първият е по-препоръчителен - person betofarina; 12.02.2018