Giter VIP home page Giter VIP logo

garakh / kladrapi Goto Github PK

View Code? Open in Web Editor NEW
188.0 188.0 49.0 2.55 MB

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

License: Other

PHP 46.21% HTML 22.87% CSS 21.85% JavaScript 9.00% Ruby 0.07% Shell 0.01%

kladrapi's People

Contributors

artik-man avatar kinolaev avatar korsar-zn avatar lichutin avatar xescoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kladrapi's Issues

Ошибки поиска по индексу

Привет!
Спасибо за Вашу прекрасную работу!

Почему то иногда не работает поиск по индексу... например
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
Пробовал другие контент типы, результат такой же.

Новая проблема с withParents

Здравствуйте. Снова проблема с parents (похожая на #29):

  1. в parents улиц городов федерального значения отсутствует city, есть только region и cityOwner (в режиме формы и cityOwner нет); пример http://kladr-api.ru/api.php?query=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%20%D1%83%D0%BB%D0%B8%D1%86%D0%B0%20%D1%87%D0%B5%D1%80%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&oneString=true&withParent=1&limit=10
  2. c parents домов городов федерального значения та же проблема; пример https://kladr-api.ru/api.php?callback=jQuery21308600704485116566_1440140175056&streetId=77000000000310300&token=540017fe7c5239f5568b458e&key=d5e2dd91c504388d3955dcd393a1d75f98fbfc9e&contentType=building&parentType=street&parentId=77000000000310300&withParent=true&limit=1&query=1&_=1440140175151

Потерянные адреса

В процессе теста набираю Екатеринбург, ул. Советская, номера домов отсутствуют, хотя в Яндекс картах есть и 52 и т.д.

Смена лицензии

Все не настолько просто

  1. сторонние контрибюторы проекта если таковые есть контрибютили под одной лицензией а вы ее поменяли
  2. вчерашний снапшот есть и останется де-юре под двойной лицензией

Поиск адресов в нескольких регионах

Здравствуйте, а планируется ли поддержка поиска адреса в нескольких регионах?

Пример рабочего запроса (поиск по одному региону — Московской области):

http://kladr-api.ru/api.php?query=%D1%81%D0%BD%D0%B5%D0%B6%D0%BD%D0%B0%D1%8F&oneString=1&limit=5&regionId=5000000000000

Результат: идеально!

А вот если надо искать по: "Москве и МО", по "Москве и СПБ", "Москве, СПБ и соотв. областям" — тут "затык". Можно отправить четыре запроса сразу, но это как-то неэффективно, мне кажется…

Варианты реализации:

  1. "через запятую": ?query=ADDRESS&oneString=1&limit=5&regionId=5000000000000,4000000000000
  2. "массивчиком": ?query=ADDRESS&oneString=1&limit=5&regionId[0]=5000000000000&regionId[1]=4000000000000

Заранее спасибо!

Мелкая ошибка при импорте базы

Горячо всеми любимая Москва отличилась ещё раз. В "регионе" Москва теперь есть "районы" типа "поселение", сокращённое название "п".

У Вас в таблице SOCRBASE не импортируется ненужная колонка LEVEL. И из-за этого в полном названии этих "районов" вместо "поселение" пишется "посёлок".
Всего 19 "районов" с кодами вида 77???00000000.

Пример ошибочного вывода: http://pastebin.com/yFY7eBNJ

Поиск по индексу

Скажите, насколько было бы сложно сделать поиск по индексу? Для завершения элемента формы адресов на сайте очень нужно. Я видел, что у Вас стоит это в планах. Будет ли сколько-то стоить это ускорить?)

поиск района

не знаю, куда правильно будет написать с таким вопросом ... поэтому пишу тут
в общем есть задача, получить ID района по адресу, например есть такой адрес
Новгородская область, Батетский район, пос. заупора
пробовал и более длинные. ничего не находится, для запроса использовал параметры query и contentType=district

Ошибка доступа заголовков при обращении к базе по Ajax

Добрый день.
Пишу приложение под 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 безо всяких ограничений. Однако конфликт...

Порядок выдачи результатов / символы в запросах

Добрый день, в суть проблемы я не вникал тк не сталкивался раньше с Монго, но сортировка результатов происходит очень неожиданным образом, учитывая что в результатах есть точное совпадение. Для подсказок это не критично, а вот чтобы проверить наличие адреса приходиться перебирать все результаты, что неудобно.
screenshot_19

Так же не находятся запросы с символами, точка и слэш точно, если это специальное поведение, то нужно как-то документировать.
screenshot_20

Спасибо за сервис, очень выручил.

Поиск улиц

Здравствуйте! Спасибо за замечательный сервис!

Не могу разобраться, как искать улицы. Написано, что для поиска улиц нужно обязательно указывать город, но примера нет. Пишу 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);

Но ничего не выдает, я подозреваю, что я как-то неправильно указываю родительский элемент. Или может это баг?

Ошибка в работе примера "Расширенный пример"

Описание: при вводе двух адресов не обновляется почтовый код.

Шаги воспроизведения:

  1. Набить в полях
    Город: Нижний Новгород
    Улица: Казанское
    Дом: 4
  2. Перейти в поле "Город" и набрать "Пыть-Ях"
    => в поле "Текстовое представление адреса" сменяется город на нововведённый, но почтовый код остаётся нижегородский.

image

Проблема с объектами 4го уровня

Добрый день.
Замечена следующая проблема: при запросе города с опцией 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

OneStringPlugin - результаты отличаются от kladr-api.ru (менее релевантны)

Здравствуйте.

Прежде всего хотел поблагодарить за отличный сервис! Спасибо за проделанную работу и за возможность использовать ее в своих проектах.

Обнаружил различия между версией 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?

Ошибка в работе примера "Расширенный пример" - не удаляется номер дома

Шаги воспроизведения:

  1. Набить в полях
    Город: Нижний Новгород
    Улица: Казанское
    Дом: 4
  2. В выпавшем списке номеров домов выбрать первый пункт, нажать Enter:
    image
  3. Нажать Backspace

=> Номер дома удаляется, но тут же появляется обратно. Ввести другой номер дома нет возможности.

Документация

Существует ли документация по настройке веб-сервиса и работе средств импорта и обновления базы данных?

Странные результаты при не найденной улице

Например, ели искать в регионе "Город Москва" по фразе "Невский":

https://kladr-api.ru/api.php?oneString=true&withParent=true&limit=10&query=Невский&regionId=7700000000000

, то получаем такие результаты:

  • Москва Город, Город Москва
  • Москва Город, Город Москва, Улица Вольская 1-я
  • Москва Город, Город Москва, Улица Вольская 2-я
  • Москва Город, Город Москва, Улица Вострухина
  • Москва Город, Город Москва, Улица Жулебинская

Если же искать по фразе "Невский проспект" — то в результатах 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

Здравствуйте, есть ли возможность искать объект по его 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

Здравствуйте. Сегодня (возможно, в конце прошлой недели) появилась следующая проблема: withParents - и в режиме oneString, и в режиме формы - возвращает не все родительские объекты. Например:

  1. в режиме одной строки на запрос "москва чертановская 2" возвращается объект типа building, но в parents нет объекта улицы,
  2. в режиме формы на запрос "чертановская" в parents не возвращается город, только регион.
    Однострочный режим можете проверить у себя на сайте в разделе примеров.
    Спасибо.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.