Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Fix "Invalid 'layerDefs' is specified" error #45

Merged
merged 2 commits into from
Jul 20, 2021

Conversation

sergeybarkov
Copy link
Contributor

Добавлен Layer: Кадастровые кварталы (ID: 20).
До этого генерировались ID от 0 до 19, что на некоторых ЗУ выдавало ошибку "Invalid 'layerDefs' is specified"

Добавлен Layer: Кадастровые кварталы (ID: 20).
До этого генерировались ID от 0 до 19, что на некоторых ЗУ выдавало ошибку "Invalid 'layerDefs' is specified"
@sergeybarkov
Copy link
Contributor Author

Добрый день!
Видимо все несколько сложнее.
Для некоторых ЗУ требуется указать в layerdefs ID 20, некоторые - наоборот - при добавлении ID 20 - начинают выдавать ошибку.
Пока не понял, по какой логике формируется параметр.
Например: 50:26:0180310:4 - выдает результат только с указанным ID 20 :(

@rendrom
Copy link
Owner

rendrom commented Jan 16, 2021

#44 баг с ошибкой

ссылка на тайл, генерируемая на https://pkk.rosreestr.ru

layers=show:6,7,8,9
layerDefs={
  "6":"ID = '50:26:180310:4'",
  "7":"ID = '50:26:180310:4'",
  "8":"ID = '50:26:180310:4'",
  "9":"ID = '50:26:180310:4'"
}

@rendrom
Copy link
Owner

rendrom commented Jan 16, 2021

залил версию с layerDefs 6,7,8,9. Загрузка работает для всех участков что я пробовал. Но так подбирать каждый раз как-то не очень стабильно. Надо бы понять логику формирования этих параметров, если она есть.

@stolyar92
Copy link

из 17 участков загрузить удалось 6

debug.log

DEBUG:rosreestr2coord.logger:https://pkk.rosreestr.ru/api/features/1/50:35:50211:748
DEBUG:rosreestr2coord.logger:https://pkk.rosreestr.ru/arcgis/rest/services/PKK6/CadastreSelected/MapServer/export?dpi=96&transparent=false&format=png&layers=show%3A6%2C7%2C8%2C9&bbox=4354724.960469155%2C7334814.547918555%2C4353724.960469155%2C7333814.547918555&bboxSR=102100&imageSR=102100&size=1000%2C1000&layerDefs=%7B%276%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%277%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%278%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%279%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%7D&f=json
DEBUG:rosreestr2coord.logger:https://pkk.rosreestr.ru/arcgis/rest/services/PKK6/CadastreSelected/MapServer/export?dpi=96&transparent=false&format=png&layers=show%3A6%2C7%2C8%2C9&bbox=4355724.960469155%2C7337814.547918555%2C4354724.960469155%2C7336814.547918555&bboxSR=102100&imageSR=102100&size=1000%2C1000&layerDefs=%7B%276%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%277%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%278%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%279%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%7D&f=json
DEBUG:rosreestr2coord.logger:https://pkk.rosreestr.ru/arcgis/rest/services/PKK6/CadastreSelected/MapServer/export?dpi=96&transparent=false&format=png&layers=show%3A6%2C7%2C8%2C9&bbox=4356724.960469155%2C7336814.547918555%2C4355724.960469155%2C7335814.547918555&bboxSR=102100&imageSR=102100&size=1000%2C1000&layerDefs=%7B%276%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%277%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%278%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%279%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%7D&f=json
DEBUG:rosreestr2coord.logger:https://pkk.rosreestr.ru/arcgis/rest/services/PKK6/CadastreSelected/MapServer/export?dpi=96&transparent=false&format=png&layers=show%3A6%2C7%2C8%2C9&bbox=4358724.960469155%2C7335814.547918555%2C4357724.960469155%2C7334814.547918555&bboxSR=102100&imageSR=102100&size=1000%2C1000&layerDefs=%7B%276%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%277%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%278%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%2C+%279%27%3A+%22ID+%3D+%2750%3A35%3A50211%3A748%27%22%7D&f=json
WARNING:rosreestr2coord.logger:Invalid 'layerDefs' is specified
WARNING:rosreestr2coord.logger:the JSON object must be str, bytes or bytearray, not bool

@sergeybarkov
Copy link
Contributor Author

Как временный вариант можно попробовать использовать несколько рабочих наборов layerDefs.
Сначала пробуем скачать тайл с одним набором (0-19) - если не прошло - пробуем другой набор layerDefs (6-9) т т.д.
Костыль, конечно, лютый. Но мне кажется % ошибок так сократится.

@rendrom
Copy link
Owner

rendrom commented Jan 18, 2021

Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.

@stolyar92
Copy link

Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.

50:35:0050211:748
50:35:0000000:20790
50:35:0000000:20752
50:35:0000000:628
50:35:0000000:629
50:35:0000000:630
50:35:0000000:631
50:35:0000000:632
50:35:0000000:633
50:35:0000000:634
50:35:0000000:635
50:35:0040103:665
50:35:0040103:1950
50:35:0040103:1947
50:35:0000000:3
50:35:0040103:663
50:35:0040103:2272

@stolyar92
Copy link

Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.

50:35:0050211:748
50:35:0000000:20790
50:35:0000000:20752
50:35:0000000:628
50:35:0000000:629
50:35:0000000:630
50:35:0000000:631
50:35:0000000:632
50:35:0000000:633
50:35:0000000:634
50:35:0000000:635
50:35:0040103:665
50:35:0040103:1950
50:35:0040103:1947
50:35:0000000:3
50:35:0040103:663
50:35:0040103:2272

При данном наборе меньше всего ошибок на layerDefs выпадает при:
layers = list(map(str, range(6, 10)))

@stolyar92
Copy link

stolyar92 commented Jan 18, 2021

еще я не очень понимаю это поведение:
57% 32/56 Completed, 32 tiles received

скрипт загружает тайлы и в какой-то момент он считает что ему 32 тайлов достаточно и переходит к следующему участку. Естественно он не вычисляет геометрию, ибо тайлов не хватает.
Подобное поведение замечено почти за всеми участками, где кол-во тайлов превышает 5. В среднем скрипт грузит 2/3 тайлов и переходит к следующему участку.

@PbIXTOP
Copy link
Contributor

PbIXTOP commented Apr 23, 2021

Пытался обработать ОКСы столкнулся проблемой с этой же проблемой
Для ОКСов на стороне росреестра формируется под строчку layers = list(map(str, range(0, 6)))
А Для рядом стоящих участков подходит layers = list(map(str, range(6, 10)))

@MrChebur
Copy link

Версия кода из репозитория layers = list(map(str, range(6, 10))) выдавала ошибку Invalid 'layerDefs' is specified на кадастровый участок 86:04:0000003:346
Попробовал фикс предлагаемый @sergeybarkov - не помогло.
Исправил на layers = list(map(str, range(6, 19))) - граница загрузилась.

@rendrom
Copy link
Owner

rendrom commented Jul 13, 2021

Нужен вариант или способ который бы позволил выполнять загрузку по всем участкам. То есть по информации об участке формировать список слоёв с которых извлекать данные.

@rendrom rendrom merged commit a535905 into rendrom:master Jul 20, 2021
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants