| Документация

API

Функции API могут быть использованы в виджете в JavaScript-плагине и в карточке объекта в элементе вызова JavaScript-кода.

Функции API включают:

  1. Базовые функции работы с картой:
    1. createExtent(xmin,xmax,ymin,ymax,sr) – создание геометрии экстента;
    2. createPoint(x,y,sr) – создание геометрии точки;
    3. getCentroid(geometry) – получение центроида по геометрии;
    4. getSpatialReference(id) – получение СК по wkid или wkt;
    5. project(geometry, sr) – проецирование геометрии в нужную СК;
    6. goTo(geometry, maxScale, minScale, marginInPercent=20) - приближение к заданной геометрии, с возможностью задать необязательный минимальный и максимальный масштаб, и с заданием буфера вокруг геометрии перед приближением, чтобы искомая геометрия отображалась с отступами от края экрана, отступ задается в процентах;
    7. highlight(geometry, withLines=false) – подсветка геометрии с направляющими линиями и без них;
    8. showPushpin(geometry, icon=Иконка по умолчанию или заданная по URL) – отображение метки на карте, которая пропадает только после сдвига карты или изменения масштаба;
  2. Логические функции проекта:
    1. getLayer(serviceUrl, layerId, existsIn=map/legend/search/attributeTable) – поиск слоя с использованием в JavaScript-плагине;
    2. searchInLayer(layer, whereClause, objectIds, geometry) – получение массива объектов (с геометрией и значением всех атрибутивных полей, если данные запросы разрешены настройками) по заданным условиям, objectIds и находящиеся в заданной геометрии в указанном слое, система координат соответствует системе координат карты;
    3. geocodeAddress(address, filters={prop1:value1,prop2:value2]}) – геокодирование по адресу для получения объектов по однострочному адресу и/или по дополнительным параметрам сервиса геокодирования. В случае, если в проекте используется несколько сервисов геокодирования, будет использоваться первый;
    4. addFilterToLayer(layer, criterion), removeFilterInLayer(layer, filter), clearAllFiltersInLayer(layer) – функция добавления/удаления заданных или всех фильтров слоя.
  3. Визуальные функции карты:
    1. search(text) – вызов однострочного поиска в соответствии с настройками картографического проекта;
    2. openIdentify(feature, goTo=true, calloutOnly=false) – отображение карточки объекта для ранее найденного объекта;
    3. identify(geometry) – вызов идентификации объекта как имитация щелчка по координате;
    4. openAttributeTable(layer, panelHeight) – открытие атрибутивной таблицы с заданной высотой и выбор слоя. Высота может быть указана числом (в пикселах) или в процентах (строковое число со знаком % на конце);
    5. openWidget(name) – открытие указанного виджета.
    6. showAlert("Заголовок сообщения", "Сообщение") – отображение сообщения.
  4. методы для вызова построения service area и find route и с выводом результата на карту:
    1. api.constructServiceArea = function (points, cost, breaks, restrictions) – Построение зоны транспортной доступности.

      пример: api.constructServiceArea([api.createPoint(82.9246, 55.0304, api.getSpatialReference(4326))], 'Geodesic_Length', [3, 6], ['Car'])

    2. api.findRoute = function (points, cost, restrictions) – Построение маршрута.

      пример: api.findRoute([api.createPoint(82.9246, 55.0304, api.getSpatialReference(4326)), api.createPoint(82.9546, 55.4304, api.getSpatialReference(4326))], 'Geodesic_Length', ['Car'])

    3. api.addGraphic = function (geometryInWGS84, symbol) – Добавление графического объекта на карту.
    4. api.deleteGraphic = function (graphic) Удаление созданного графического объекта.
    5. api.createColor = function (red, green, blue, alpha) – Определение цвета для дальнейшего использования для графического объекта на карте.

      пример: api.createColor(255, 2, 2, 0.5)

    6. api.createSimplePointSymbol = function (color, size, outline, type) – Создание простого точечного символа (цвет, размер, тип) для раскраски точечного графического объекта.пример: api.createSimplePointSymbol(api.createColor(255, 2, 2), 10);
    7. api.createPicturePointSymbol = function (icon, iconSize, locationX, locationY) – Создание точечного символа в виде иконки (растровой картинки) для раскраски точечного графического объекта.
    8. api.createSimpleLineSymbol = function (color, width, type) Создание простого линейного символа (цвет, ширина, тип) для раскраски линейного графического объекта.
    9. api.createSimpleLineSymbol = function (color, width, type) Создание простого линейного символа (цвет, ширина, тип) для раскраски линейного графического объекта.
    10. api.createSimpleFillSymbol = function (color, outline, type) Создание простого площадного символа (цвет, обводка, тип) для раскраски площадного графического объекта.
    11. Чтобы очистить маршрут или зоны транспортной доступности, нужно вызвать соответствующую функцию с пустым массивом точек.

    Примеры:

  5. Открытие атрибутивной таблицы:

    <script>

    api.openAttributeTable(api.getLayer("https://.../MapServer", 0),300);

    </script>

  6. Открытие карточки объекта:

    <script>

    var point = api.createPoint(7414817.879000001, 1.0027362619900003E7, api.getSpatialReference(3857));

    api.goTo(point);

    api.identify(point);

    </script>

  7. Вызов поиска:

    <script>

    api.search('Администрация');

    </script>

  8. Фильтрация объектов:

    <div>

    <div>Введите статус (например, 'Строящийся') и нажмите enter</div>

    <input id='filtrationExample' style="width: 300px;margin-bottom: 10px;" type="text" data-bind="

    event: {

    keypress: function (data, event) {

    if (event.keyCode == 13) {

    api.addAttributeFilterToLayer(

    api.getLayer('https://.../MapServer' , 0),

    'status',

    [$($element).val()],

    'Equal');

    return false;

    }

    return true;

    }

    }" />

    </div>

    <button class='action' data-bind="click: function() {

    var layer = api.getLayer('https://.../MapServer' , 0);

    api.removeAttributeFilterToLayer(layer,

    'status',

    [$('#filtrationExample').val()],

    'Equal')

    }">Удалить фильтр</button>

  9. Генерация отчета:

<script>

api.generateReport("simple.xlsx", {serviceUrl: "https://.../MapServer", layerId: 4, whereClause:"", orderBy:""}, {Caption: "test"});

</script>