- PVSM.RU - https://www.pvsm.ru -

Создание форм с вводом произвольного адреса часто ставит разработчиков в тупик, заставляя придумывать «костыли» и «велосипеды». Хотя, казалось бы, что сложного в создании простой и удобной формы ввода адреса?
Работая над своими проектами, мы столкнулись с задачей создания формы, где пользователь мог бы выбрать любой адрес России. Нам хотелось исключить ошибки при вводе, дать пользователю возможность выбирать из списка с подсказками всех населенных пунктов, регионов, улиц и даже домов.
Если Вы сталкивались с подобной задачей, то первое, что приходит на ум — это использовать базу КЛАДР, что мы и сделали. К слову, нам приходилось работать с КЛАДР и ранее, но задачи были проще, и мы обходились усеченной версией КЛАДРа, сохраненной в нашей базе, с простым поиском собранным «на коленке».
Мы хорошо запомнили проблемные места базы КЛАДР, например, ее прекрасную схему данных и, углубляясь в задачу с головой, выявили дополнительный ряд проблем:
Естественно, нам не хотелось раздувать проект функционалом, который бы решал все описанные сложности, а так же дополнительно нагружать наши сервера. Нам хотелось иметь решение, которое бы позволило забыть о проблемах КЛАДРа, легко подключать к любым нашим проектам без каких-либо дополнительных нагрузок на сервера.
Так и родилась идея сервиса «КЛАДР в облаке [1]».
Мы взяли наши горячо любимые MongoDB и PhalconPHP, переработали базу КЛАДР, создали простой API доступа к базе, а потом долго и скрупулёзно оптимизировали базу, сервер и клиента, пока не добились быстрого ответа. После чего всё залили на Amazon EC2 и внедрили в наши проекты.
Нам понравился результат, которого мы достигли, и хотели бы поделиться им с общественностью.
Доступны модули интеграции:
В плане стоит разработка .Net провайдера и интеграция с другими CMS.
$( "input" ).kladr({
token: '51dfe5d42fb2b43e3300006e',
key: '86a2c2a06f1b2451a87d05512cc2c3edfdf41969',
type: $.ui.kladrObjectType.CITY
});
// Инициализация api, в качестве параметров указываем токен и ключ для доступа к сервису
$api = new KladrApi('51dfe5d42fb2b43e3300006e', '86a2c2a06f1b2451a87d05512cc2c3edfdf41969');
// Формирование запроса
$query = new KladrQuery();
$query->ContentName = 'Арх';
$query->ContentType = KladrObjectType::City;
$query->WithParent = true;
$query->Limit = 2;
// Получение данных в виде ассоциативного массива
$arResult = $api->QueryToArray($query);
Примеры [5]и документация [6].
На данный момент сервис находится в «бета-режиме», и на этот период полностью бесплатен. После завершения бета режима (по плану не позднее 1 ноября 2013) мы введем небольшую плату за пользование с приятными скидками для партнеров, сугубо для поддержки и оплаты серверов.
Немного интересной статистики.
Автор: primepix
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/api/39987
Ссылки в тексте:
[1] КЛАДР в облаке: http://kladr-api.ru/
[2] jQuery plugin: https://github.com/garakh/kladrapi-jquery
[3] PHP : https://github.com/garakh/kladrapi-php
[4] Компонент 1C-Битрикс: https://github.com/garakh/kladr-bitrix
[5] Примеры : http://kladr-api.ru/examples/
[6] документация: http://kladr-api.ru/integration/
[7] Источник: http://habrahabr.ru/post/188618/
Нажмите здесь для печати.