FAQ. Настройка размера иконок для собственных объектов на карте

Материал из WiKi - UserSide

en | ru

На карте покрытия выводятся иконки сооружений связи. Для сооружений связи можно назначать и загружать произвольные иконки. При изменении масштаба карты размер иконок изменяется во избежание случаев, чтобы одна иконка не перекрывала весь город. Однако не всем клиентам нравятся стандартные правила масштабирования иконок. Это можно изменить при небольших знаниях javascript:

Откройте файл:

Для версий до 3.19:

/userside3/main/js/user_script.js

Для версий 3.19 и выше:

/public/main/js/user_script.js

Если этого файла не существует - создайте его. Он не будет перезаписан при обновлении. В текст файла добавляйте:

function reZoomIconRule(currentZoom) {
   var sizeArray = [];
   if (currentZoom < 14) {
       sizeArray = [1, 1];
   } else {
       switch (currentZoom) {
           case 14:
               sizeArray = [5, 5];
               break;
           case 15:
               sizeArray = [6, 6];
               break;
           case 16:
               sizeArray = [10, 10];
               break;
           case 17:
               sizeArray = [17, 17];
               break;
           case 18:
               sizeArray = [30, 30];
               break;
           case 19:
               sizeArray = [50, 50];
               break;
           case 20:
               sizeArray = [50, 50];
               break;
           case 21:
               sizeArray = [50, 50];
               break;
           case 22:
               sizeArray = [50, 50];
               break;
       }
   }
   return sizeArray;
}

Функция reZoomIconRule - это правила для масштабирования иконок на карте. Из текста функции можно понять, что от масштаба карты зависят размеры. Это можете регулировать на своё усмотрение. Не забывайте сохранять файл после внесения изменений.

Для масштабирования иконок с абонентами - используйте функцию reZoomCustomerIconRule

function reZoomCustomerIconRule(currentZoom) {
   sizeArray = [30, 30];
   return sizeArray;
}

И функцию reZoomNodeRadiusRule для регулирования размера стандартных "кругов" сооружений связи на карте

function reZoomNodeRadiusRule(nodeType, zoom, objectType) {
   if (objectType == 'node') {
       switch (zoom) {
           case 10:
           case 11:
           case 12:
           case 13:
           case 14:
               return 1;
               break;
           case 15:
               return 2;
               break;
           case 16:
               return 4;
               break;
           case 17:
               return 7;
               break;
           case 18:
               return 14;
               break;
           case 19:
               return 25;
               break;
           case 20:
               return 28;
               break;
           case 21:
               return 28;
               break;
           case 22:
               return 28;
               break;
       }
   } else {
       return 4;
   }
}