Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants