Проверьте, является ли имя CLPlacemark адресом

Можно ли проверить, действительно ли CLPlacemark's имя уличный адрес?

Я хотел бы показать название, если это торговый центр, тематический парк, школа или что-то еще интересное, но не если это адрес улицы.

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

^\d+ ([a-zA-Z0-9'-] ?)+$

Но я чувствую, что это не всегда будет работать, особенно в других странах.

Есть ли способ проверить, является ли имя CLPlacemark уличным адресом, например, проверить размер метки, или мне придется использовать стороннюю библиотеку?

2 ответа

Решение

Попробуйте проверить name против клейма thoroughfare (улица) и subThoroughfare (номер улицы).

var placemark: CLPlacemark
if placemark.name.rangeOfString(placemark.thoroughfare) != nil
    && placemark.name.rangeOfString(placemark.subThoroughfare) != nil {
        println("Name is likely the same as address")
} else {
    println("Name is distinct from street address")
}

Существует также свойство CLPlacemark "AreaOfInterest", которое вы можете проверить. Это часто помечается для областей, которые имеют общую категорию, таких как аэропорты, торговые центры, школы, музеи и т. Д.

Поскольку вы хотите удалить все, что по сути не является областью интересов, может быть, эта область подойдет вам?

Другие вопросы по тегам