Комментарии 15
НЛО прилетело и опубликовало эту надпись здесь
Не понял смысл статьи.
«У нас был файл, мы написали парсер, он распарсился».
Ну я каждый день такое делаю, так и шо?
«У нас был файл, мы написали парсер, он распарсился».
Ну я каждый день такое делаю, так и шо?
позволите, у меня небольшое замечание по коду. все-же, это не очень элегантное решение:
Достаточно объявить всего две ф-ции:
и мы получаем намного более изящный результат, код уменьшается в раз 5 и становится намного более читаемым и расширяемым:
elseif (
mb_strpos(mb_strtolower($addrItem, 'UTF-8'), 'просп. ')
|| mb_strpos(mb_strtolower($addrItem, 'UTF-8'), ' просп.')
|| mb_strpos(mb_strtolower($addrItem, 'UTF-8'), 'пр-т')
|| mb_strpos(mb_strtolower($addrItem, 'UTF-8'), 'проспект')
)
Достаточно объявить всего две ф-ции:
function contains ($in, $str) {
return mb_strpos(mb_strtolower($in, 'UTF-8'), $str);
}
function containsOne ($in, array $array) {
foreach ($array as $str) {
if (contains($in, $str)) {
return true;
}
}
return false;
}
и мы получаем намного более изящный результат, код уменьшается в раз 5 и становится намного более читаемым и расширяемым:
elseif (containsOne($addrItem, array('просп. ', ' просп.', 'пр-т', 'проспект')))
но рефакторить код есть куда. очень много мест. сейчас он вообще плох.
Да, согласен. Код писался на скорую руку и очень сыр. Пусть не будет звучать как оправдание, но целью данного кода был разовый разбор имеющихся данных. Цель оправдывает средства.
Первый – самый простой и не надежный: скормить адрес имеющихся фирм геокодеру Яндекса, который и разберет адрес на кусочки. Но есть и большой минус этого способа – если в базе геокодера такого адреса по какой то причине не окажется, то он вернет ближайшее к указанному месту строение…
а в чём тут проблема? он же сообщает с какой точностью найден объект: api.yandex.ru/maps/jsapi/doc/ref/reference/geocoderresult.xml#precision
нарисовать карты районов для всей России осилит не каждыйОни все уже нарисованы и храняться в wikimapia. Можно подключить слой от WikiMapia в Google Earth и сохранять полигоны в kml-файлы.
Я такое безобразие делал для сервиса частных объявлений о недвижимости. Способ, может быть и не совсем прямой, но для Нижнего его таки можно осилить =)
Спасибо, ваша статья очень помогла, а то я уже мозг взорвала над тем где мне все таки получить внутригородские р-ны в кладаре, а их так и нет вовсе
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Где эта улица, где этот дом… Или как определить район, в котором находится предприятие