Closed sergeybarkov closed 3 years ago
Добрый день! Видимо все несколько сложнее. Для некоторых ЗУ требуется указать в layerdefs ID 20, некоторые - наоборот - при добавлении ID 20 - начинают выдавать ошибку. Пока не понял, по какой логике формируется параметр. Например: 50:26:0180310:4 - выдает результат только с указанным ID 20 :(
ссылка на тайл, генерируемая на 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'"
}
залил версию с layerDefs 6,7,8,9. Загрузка работает для всех участков что я пробовал. Но так подбирать каждый раз как-то не очень стабильно. Надо бы понять логику формирования этих параметров, если она есть.
из 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
Как временный вариант можно попробовать использовать несколько рабочих наборов layerDefs. Сначала пробуем скачать тайл с одним набором (0-19) - если не прошло - пробуем другой набор layerDefs (6-9) т т.д. Костыль, конечно, лютый. Но мне кажется % ошибок так сократится.
Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.
Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.
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
Покажите, пожалуйста, список участков. Мне не удалось случайным образом найти проблемные с публичной карты. Возможно получится установить какую-нибудь закономерность.
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)))
еще я не очень понимаю это поведение:
57% 32/56 Completed, 32 tiles received
скрипт загружает тайлы и в какой-то момент он считает что ему 32 тайлов достаточно и переходит к следующему участку. Естественно он не вычисляет геометрию, ибо тайлов не хватает. Подобное поведение замечено почти за всеми участками, где кол-во тайлов превышает 5. В среднем скрипт грузит 2/3 тайлов и переходит к следующему участку.
Пытался обработать ОКСы столкнулся проблемой с этой же проблемой Для ОКСов на стороне росреестра формируется под строчку layers = list(map(str, range(0, 6))) А Для рядом стоящих участков подходит layers = list(map(str, range(6, 10)))
Версия кода из репозитория layers = list(map(str, range(6, 10)))
выдавала ошибку Invalid 'layerDefs' is specified
на кадастровый участок 86:04:0000003:346
Попробовал фикс предлагаемый @sergeybarkov - не помогло.
Исправил на layers = list(map(str, range(6, 19)))
- граница загрузилась.
Нужен вариант или способ который бы позволил выполнять загрузку по всем участкам. То есть по информации об участке формировать список слоёв с которых извлекать данные.
Добавлен Layer: Кадастровые кварталы (ID: 20). До этого генерировались ID от 0 до 19, что на некоторых ЗУ выдавало ошибку "Invalid 'layerDefs' is specified"