Проблема с загрузкой точек на Яндекс-карту в режиме RemoteObjectManager при z > 11

При масштабе больше чем 11, точки перестают отображаться на Яндекс-карте. Но при этом, если двинуть карту вверх, а потом обратно вниз, то все необходимые точки появляются. Монитор 1920x1080, масштаб 150%, - то есть формально это уже 1280x720.

https://roszdravnadzor.gov.ru/control/medorganizations

Новороссийск при масштабе z = 11

[Новороссийск при масштабе z = 12 - нет ни одной точки2

Новороссийск при масштабе z = 12 - посл того как двинул карту наверх, а потом вниз

Тестовый гео-объект, находящийся в Мысхако (координаты 44.658134,37.76115) :

https://roszdravnadzor.gov.ru/control/medorganizations/1083497

Новороссийск, поселок Мысхако, аптека Ригла

Все тайлы, к которым относится точка с координатами 44.658134,37.76115 ( формула взята отсюда https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames )

| x | y | z |

| 0 | 0 | 0 |

| 1 | 0 | 1 |

| 2 | 1 | 2 |

| 4 | 2 | 3 |

| 9 | 5 | 4 |

| 19 | 11 | 5 |

| 38 | 23 | 6 |

| 77 | 46 | 7 |

| 154 | 92 | 8 |

| 309 | 184 | 9 |

| 619 | 369 | 10 |

| 1238 | 739 | 11 |

| 2477 | 1478 | 12 |

| 4955 | 2957 | 13 |

| 9910 | 5915 | 14 |

| 19821 | 11831 | 15 |

| 39642 | 23662 | 16 |

| 79284 | 47325 | 17 |

| 158568 | 94650 | 18 |

| 317137 | 189301 | 19 |

| 634275 | 378603 | 20 |

| 1268550 | 757206 | 21 |

| 2537101 | 1514412 | 22 |

| 5074202 | 3028824 | 23 |

| 10148405 | 6057648 | 24 |

| 20296810 | 12115297 | 25 |

Все запросы к тайлам, которые идут от Яндекс-карты при z=12, если в центре находится Мысхако (юг Новороссийска):

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2475&y=1480&z=12&callback=myCallback_x_2475_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2475&y=1481&z=12&callback=myCallback_x_2475_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2475&y=1482&z=12&callback=myCallback_x_2475_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2475&y=1483&z=12&callback=myCallback_x_2475_y_1483_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2476&y=1480&z=12&callback=myCallback_x_2476_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2476&y=1481&z=12&callback=myCallback_x_2476_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2476&y=1482&z=12&callback=myCallback_x_2476_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2476&y=1483&z=12&callback=myCallback_x_2476_y_1483_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2477&y=1480&z=12&callback=myCallback_x_2477_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2477&y=1481&z=12&callback=myCallback_x_2477_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2477&y=1482&z=12&callback=myCallback_x_2477_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2477&y=1483&z=12&callback=myCallback_x_2477_y_1483_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2478&y=1480&z=12&callback=myCallback_x_2478_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2478&y=1481&z=12&callback=myCallback_x_2478_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2478&y=1482&z=12&callback=myCallback_x_2478_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2478&y=1483&z=12&callback=myCallback_x_2478_y_1483_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2479&y=1480&z=12&callback=myCallback_x_2479_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2479&y=1481&z=12&callback=myCallback_x_2479_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2479&y=1482&z=12&callback=myCallback_x_2479_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2479&y=1483&z=12&callback=myCallback_x_2479_y_1483_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2480&y=1480&z=12&callback=myCallback_x_2480_y_1480_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2480&y=1481&z=12&callback=myCallback_x_2480_y_1481_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2480&y=1482&z=12&callback=myCallback_x_2480_y_1482_z_12

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2480&y=1483&z=12&callback=myCallback_x_2480_y_1483_z_12

Диапазон по x правильный - от 2475 до 2480.

А вот диапазон по y не правильный - от 1480 до 1483. На самом деле это просто море к югу от Новороссийска.

Поэтому наш тестовый гео-объект из тайла (x=2477, y=1478, z=12) и не отображается на карте. Просто он не попадает ни в один из тайлов, которые опрашивает Яндекс-карта при увеличении масштаба до z = 12.

Правильный диапазон по y должен был быть от 1477 до 1480.

Со стороны сайта все работает нормально, и запрос по тайлу (x=2477, y=1478, z=12) выдает адекватный список гео-объектов Новороссийска:

https://roszdravnadzor.gov.ru/controlajax/medorganizations?ajax_get_tile=1&x=2477&y=1478&z=12&callback=myCallback_x_2477_y_1478_z_12

Таким образом становится понятно, почему в Новороссийске появляются точки при перемещении карты на север и потом обратно. В тот момент, когда пользователь свигает карту на север, происходит аяксовый опрос более южных тайлов, - в которых как раз и находится Новороссийск. При передвижении же карты обратно на юг, у Яндекс-карты уже есть информация по тайлам Новороссийска, - и поэтому все нормально отображается.

Замечу, что точно такая же картина наблюдается и попытке просмотра любого региона России. Например, Калининград:

Калининград при масштабе z = 11

[Калининград при масштабе z = 12 - нет ни одной точки6

Калининград при масштабе z = 12 - посл того как двинул карту наверх, а потом вниз

Соответственно, вопрос. Как это починить? Проблема в том, что все выглядит как ошибка работы API Яндекс-карт.


Ответы (0 шт):