удалить дубликаты адресов из результатов Google Maps API - PullRequest
3 голосов
/ 25 марта 2011

Я использую API Карт Google, чтобы позволить пользователям вводить свое местоположение и возвращать результаты в зависимости от своего местоположения. Тем не менее, когда я ввожу некоторые адреса в Австралии, я получаю дубликаты, такие как:

Асквит, Новый Южный Уэльс, 2077, Австралия
Асквит, Новый Южный Уэльс, Австралия

и

Wollstonecraft, Сидней, Новый Южный Уэльс 2065, Австралия
Wollstonecraft Новый Южный Уэльс 2065, Австралия

В настоящее время я предоставляю возможность участнику выбирать между результатами, если есть дубликаты, но я чувствую, что с помощью некоторого умного PHP я могу дублировать этот шаг. Я не очень хорош с preg_replace (если это решение), и надеюсь, что у кого-то есть решение. По сути, я хочу, чтобы функция сравнивала два (или более) адреса и возвращала true, если они одинаковые, и false, если они разные.

Обратите внимание, что во втором примере была добавлена ​​Сидни, так что это должно быть учтено в любом решении, которое кто-либо может любезно предложить.

Я думаю, что большинство дублированных наборов результатов будут, как правило, в том же формате, и должны иметь возможность настроить функцию, если я замечу другие исключения.

Большое спасибо за любую помощь, которая может быть оказана.

1 Ответ

0 голосов
/ 25 марта 2011

Вы можете использовать функцию <a href="http://php.net/manual/en/function.similar-text.php" rel="nofollow">similar_text</a>, чтобы определить, насколько похожи две строки.

Пример:


<?php
similar_text("Wollstonecraft, Sydney New South Wales 2065, Australia", "Wollstonecraft New South Wales 2065, Australia", $p);
echo "Percent: $p%";
?>

Это даст: Percent: 92%

...