garakh / kladrapi Goto Github PK
View Code? Open in Web Editor NEWПроект переведен в прориетарный статус. Дальнейшее его развитие будет осуществляться компанией-разработчиком, исходные коды не будут выкладываться на github
License: Other
Проект переведен в прориетарный статус. Дальнейшее его развитие будет осуществляться компанией-разработчиком, исходные коды не будут выкладываться на github
License: Other
Привет!
Спасибо за Вашу прекрасную работу!
Почему то иногда не работает поиск по индексу... например
http://kladr-api.ru/api.php?contentType=city&query=%D1%80%D0%B0%D0%B4%D0%BE%D0%B2%D0%BA%D0%B0
возращает 3 объекта, но потом поиск по индексу для этих объектов ничего не возвращает. Например: http://kladr-api.ru/api.php?contentType=building&withParent=1&zip=461287
Пробовал другие контент типы, результат такой же.
Здравствуйте. Снова проблема с parents (похожая на #29):
альтернативно если csv файла нет но есть csv.gz то изспоьзовать gzopen
В процессе теста набираю Екатеринбург, ул. Советская, номера домов отсутствуют, хотя в Яндекс картах есть и 52 и т.д.
Все не настолько просто
Здравствуйте, а планируется ли поддержка поиска адреса в нескольких регионах?
Пример рабочего запроса (поиск по одному региону — Московской области):
Результат: идеально!
А вот если надо искать по: "Москве и МО", по "Москве и СПБ", "Москве, СПБ и соотв. областям" — тут "затык". Можно отправить четыре запроса сразу, но это как-то неэффективно, мне кажется…
Варианты реализации:
?query=ADDRESS&oneString=1&limit=5®ionId=5000000000000,4000000000000
?query=ADDRESS&oneString=1&limit=5®ionId[0]=5000000000000®ionId[1]=4000000000000
Заранее спасибо!
Горячо всеми любимая Москва отличилась ещё раз. В "регионе" Москва теперь есть "районы" типа "поселение", сокращённое название "п".
У Вас в таблице SOCRBASE не импортируется ненужная колонка LEVEL. И из-за этого в полном названии этих "районов" вместо "поселение" пишется "посёлок".
Всего 19 "районов" с кодами вида 77???00000000.
Пример ошибочного вывода: http://pastebin.com/yFY7eBNJ
Там адреса типов
г. Москва, Зеленоград, к. 2019
В расширенном примере без номера дома не ищет и номер дома не ищет без
улицы
Яндекс находит
http://maps.yandex.ru/-/CVr1NG35
P.S. Может как то можно используюя API найти?
Нужно вызывать mb_strtolower с параметром charset чтобы избежать влияния местных настроек
Сделал патч:
https://gist.github.com/huksley/8864483
Прежде всего интересует поиск по любой части адреса, который смержили 20 дней назад.
Скажите, насколько было бы сложно сделать поиск по индексу? Для завершения элемента формы адресов на сайте очень нужно. Я видел, что у Вас стоит это в планах. Будет ли сколько-то стоить это ускорить?)
не знаю, куда правильно будет написать с таким вопросом ... поэтому пишу тут
в общем есть задача, получить ID района по адресу, например есть такой адрес
Новгородская область, Батетский район, пос. заупора
пробовал и более длинные. ничего не находится, для запроса использовал параметры query
и contentType=district
Добрый день.
Пишу приложение под React. Решил написать свой компонент по обращению к базе через ajax. Get запрос уходит нормально (статс 200), но ничего не возвращает в ответ. Консоль показывает ошибку заголовков XMLHttpRequest cannot load http://kladr-api.ru/api.php?query=%D0%BC&contentType=city&limit=5&token=51dfe5d42fb2b43e3300006e. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
В репозитории в файле License прописан MIT безо всяких ограничений. Однако конфликт...
Добрый день, в суть проблемы я не вникал тк не сталкивался раньше с Монго, но сортировка результатов происходит очень неожиданным образом, учитывая что в результатах есть точное совпадение. Для подсказок это не критично, а вот чтобы проверить наличие адреса приходиться перебирать все результаты, что неудобно.
Так же не находятся запросы с символами, точка и слэш точно, если это специальное поведение, то нужно как-то документировать.
Спасибо за сервис, очень выручил.
Здравствуйте! Спасибо за замечательный сервис!
Не могу разобраться, как искать улицы. Написано, что для поиска улиц нужно обязательно указывать город, но примера нет. Пишу PHP скрипт, который бы получал данные с вашего сервиса и раздавал выдавал данные остальным машинам в местной сети.
Я пытаюсь сделать:
// Инициализация api, в качестве параметров указываем токен и ключ для доступа к сервису
$api = new Kladr\Api('51dfe5d42fb2b43e3300006e', '86a2c2a06f1b2451a87d05512cc2c3edfdf41969');
// Формирование запроса
$query = new Kladr\Query();
$query->ContentName = 'А';
$query->ParentType = Kladr\ObjectType::City;
$query->ParentId = "2900000100000";
$query->ContentType = Kladr\ObjectType::Street;
$query->WithParent = true;
$query->Limit = 2;
// Получение данных в виде ассоциативного массива
$arResult = $api->QueryToArray($query);
Но ничего не выдает, я подозреваю, что я как-то неправильно указываю родительский элемент. Или может это баг?
Описание: при вводе двух адресов не обновляется почтовый код.
Шаги воспроизведения:
Добрый день.
Замечена следующая проблема: при запросе города с опцией withParents:true выдается неполный список родителей в том случае, если в родителях города есть объект типа city - город-родитель почему-то исчезает. При этом с опцией oneString: true список родителей выдается полностью.
Пример - с. Каракозово Калужской области, подчиненное г. Калуга.
http://kladr-api.ru/api.php?query=%D0%9A%D0%B0%D1%80%D0%B0%D0%BA%D0%BE%D0%B7%D0%BE%D0%B2%D0%BE&oneString=1&limit=10&withParent=1
http://kladr-api.ru/api.php?query=%D0%9A%D0%B0%D1%80%D0%B0%D0%BA%D0%BE%D0%B7%D0%BE%D0%B2%D0%BE&limit=10&withParent=1&contentType=city
Здравствуйте.
Прежде всего хотел поблагодарить за отличный сервис! Спасибо за проделанную работу и за возможность использовать ее в своих проектах.
Обнаружил различия между версией http://kladr-api.ru/api.php
и версией в репозитории касательно поиска. kladr-api.ru
выдает релевантные результаты:
curl 'http://kladr-api.ru/api.php?limit=1&withParents=1&oneString=1&cityId=7800000000000&query=Невский проспект' | jq
{
"searchContext": {
"oneString": "1",
"cityId": "7800000000000",
"query": "Невский проспект",
"limit": 1
},
"result": [
{
"id": "78000000000088500",
"name": "Невский",
"zip": null,
"type": "Проспект",
"typeShort": "пр-кт",
"okato": null,
"contentType": "street",
"fullName": "Санкт-Петербург Город, Город Санкт-Петербург, Проспект Невский"
}
]
}
Ограничим поиск Санкт-Петербургом, ищем Невский проспект - результат отличный!
Далее попробуем сделать запрос для сервера, развернутого из текущего репозитория:
curl 'http://.../public/index.php?limit=1&withParents=1&oneString=1&cityId=7800000000000&query=Невский проспект' | jq
{
"searchContext": {
"oneString": "1",
"cityId": "7800000000000",
"query": "Невский проспект",
"limit": 1
},
"result": [
{
"id": "6201000000000",
"name": "Александро-Невский",
"zip": "391240",
"type": "Район",
"typeShort": "р-н",
"okato": "61220000000",
"contentType": "district",
"fullName": "Рязанская Область, Александро-Невский Район"
}
]
}
Результат не очень релевантный.
Насколько я понимаю, на kladr-api.ru
есть какие-то очень хорошие правки поиска в сфинксе. В обоих случаях в сфинксе есть Санкт-Петербург Город, Город Санкт-Петербург, Проспект Невский
, но с версией кода в репозитории запрос вида @fullname "Невский проспект*" @cityid 7800000000000
не находит релевантное значение. Видимо, влияет порядок слов или что-то подобное?
PS. Еще обнаружил, что в версии на kladr-api.ru
проиндексированы адреса с домами (Челябинская Область, Саткинский Район, Город Бакал, Улица Ленина, 18
), чего также нет в текущей версии кода:
curl 'http://kladr-api.ru/api.php?limit=1&oneString=1&query=г.Бакал, ул.Ленина, 18' | jq
{
"searchContext": {
"oneString": "1",
"query": "г.Бакал, ул.Ленина, 18",
"limit": 1
},
"result": [
{
"id": "7401700100000150001",
"name": "18",
"zip": 456900,
"type": "дом",
"typeShort": "д",
"okato": "75249503000",
"contentType": "building",
"fullName": "Челябинская Область, Саткинский Район, Город Бакал, Улица Ленина, 18"
}
]
}
Не подскажите, как можно подправить поиск, чтобы получить результаты, сравнимые с kladr-api.ru
?
Существует ли документация по настройке веб-сервиса и работе средств импорта и обновления базы данных?
Например, ели искать в регионе "Город Москва" по фразе "Невский":
, то получаем такие результаты:
Если же искать по фразе "Невский проспект" — то в результатах null
(собственно, ожидаемое поведение).
Другой пример: поиск по фразе "ул Ленина" выдает такие результаты:
А вот по фразе "Ленина" — такие же как по фразе "Невский"… Такое ощущение, что есть какие-то "умолчательные" результаты, которые выдаются когда еще не очень непонятно что ищут. Можно ли их как-то отключить или распознать что это "заглушки"? Лучше пусть там будет null
:-)
Добавляю в вызов опцию showSpinner:0
Получаю ошибку
Uncaught TypeError: x(...) is not a function
at T (jquery.kladr.min.js:formatted:413)
at g (jquery.kladr.min.js:formatted:303)
Насколько понимаю, ошибка в самом плагине
# подставьте свои значения
export KLADR_TOKEN=***
export KLADR_KEY=***
# результат без дроби имеется
curl -q 'http://kladr-api.ru/api.php?streetId=54000001000066600&token='$KLADR_TOKEN'&key='$KALDR_KEY'&contentType=building&parentType=street&parentId=54000001000066600&withParent=false&limit=5&query=173'
{"searchContext":{"contentType":"building","streetId":"54000001000066600","query":"173","withParent":"false","limit":5},"result":[{"id":"5400000100006660039","name":"173","zip":630049,"type":"\u0434\u043e\u043c","typeShort":"\u0434","okato":"50401372000","contentType":"building","parents":[{"id":"5400000000000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0430\u044f","zip":630000,"type":"\u041e\u0431\u043b\u0430\u0441\u0442\u044c","typeShort":"\u043e\u0431\u043b","okato":"50000000000","contentType":"region"},{"id":"5400000100000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a","zip":630000,"type":"\u0413\u043e\u0440\u043e\u0434","typeShort":"\u0433","okato":"50401000000","contentType":"city"},{"id":"54000001000066600","name":"\u041a\u0440\u0430\u0441\u043d\u044b\u0439","zip":630007,"type":"\u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442","typeShort":"\u043f\u0440-\u043a\u0442","okato":null,"contentType":"street"}]},{"id":"5400000100006660039","name":"173\/1","zip":630049,"type":"\u0434\u043e\u043c","typeShort":"\u0434","okato":"50401372000","contentType":"building","parents":[{"id":"5400000000000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0430\u044f","zip":630000,"type":"\u041e\u0431\u043b\u0430\u0441\u0442\u044c","typeShort":"\u043e\u0431\u043b","okato":"50000000000","contentType":"region"},{"id":"5400000100000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a","zip":630000,"type":"\u0413\u043e\u0440\u043e\u0434","typeShort":"\u0433","okato":"50401000000","contentType":"city"},{"id":"54000001000066600","name":"\u041a\u0440\u0430\u0441\u043d\u044b\u0439","zip":630007,"type":"\u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442","typeShort":"\u043f\u0440-\u043a\u0442","okato":null,"contentType":"street"}]},{"id":"5400000100006660039","name":"173\/3","zip":630049,"type":"\u0434\u043e\u043c","typeShort":"\u0434","okato":"50401372000","contentType":"building","parents":[{"id":"5400000000000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0430\u044f","zip":630000,"type":"\u041e\u0431\u043b\u0430\u0441\u0442\u044c","typeShort":"\u043e\u0431\u043b","okato":"50000000000","contentType":"region"},{"id":"5400000100000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a","zip":630000,"type":"\u0413\u043e\u0440\u043e\u0434","typeShort":"\u0433","okato":"50401000000","contentType":"city"},{"id":"54000001000066600","name":"\u041a\u0440\u0430\u0441\u043d\u044b\u0439","zip":630007,"type":"\u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442","typeShort":"\u043f\u0440-\u043a\u0442","okato":null,"contentType":"street"}]},{"id":"5400000100006660039","name":"173\u0410","zip":630049,"type":"\u0434\u043e\u043c","typeShort":"\u0434","okato":"50401372000","contentType":"building","parents":[{"id":"5400000000000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0430\u044f","zip":630000,"type":"\u041e\u0431\u043b\u0430\u0441\u0442\u044c","typeShort":"\u043e\u0431\u043b","okato":"50000000000","contentType":"region"},{"id":"5400000100000","name":"\u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a","zip":630000,"type":"\u0413\u043e\u0440\u043e\u0434","typeShort":"\u0433","okato":"50401000000","contentType":"city"},{"id":"54000001000066600","name":"\u041a\u0440\u0430\u0441\u043d\u044b\u0439","zip":630007,"type":"\u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442","typeShort":"\u043f\u0440-\u043a\u0442","okato":null,"contentType":"street"}]}]}
# а с дробью нет
curl -q 'http://kladr-api.ru/api.php?streetIilding&parentType=street&parentId=54000001000066600&withParent=false&limit=5&query=173/1'
{"searchContext":{"contentType":"building","streetId":"54000001000066600","query":"173\/1","withParent":"false","limit":5},"result":[]}
Здравствуйте, есть ли возможность искать объект по его id? Чтобы определить, есть ли у выбранного объекта индекс, я пытаюсь запросить Ваш сервис передав идентификатор объекта, но не получается.
Код типа:
$api = new Kladr\Api('51dfe5d42fb2b43e3300006e', '86a2c2a06f1b2451a87d05512cc2c3edfdf41969');
$query = new Kladr\Query();
$query->id= '2800200000100';
$arResult = $api->QueryToArray($query);
не дает результат.
Пробую получить все регионы через запрос http://kladr-api.ru/api.php?withParent=1&token=51d170c82fb2b4ec04000001&key=0c673e93f9ea1a66214017e45ade5547bf0eb205&contentType=region&page=1&start=0&limit=25&callback=Ext.data.JsonP.callback1
Некоторое время назад такое было возможно. Возможно ли это сейчас? То есть хотелось бы иметь возможность опускать параметр query (не только для регионов)
Здравствуйте. Сегодня (возможно, в конце прошлой недели) появилась следующая проблема: withParents - и в режиме oneString, и в режиме формы - возвращает не все родительские объекты. Например:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.