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

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) - Добавление графического объекта на карту.
api.deleteGraphic = function (graphic) - Удаление созданного графического объекта.
api.createColor = function (red, green, blue, alpha) - Определение цвета для дальнейшего использования для графического объекта на карте.
пример: api.createColor(255, 2, 2, 0.5)
api.createSimplePointSymbol = function (color, size, outline, type) - Создание простого точечного символа (цвет, размер, тип) для раскраски точечного графического объекта.
пример: api.createSimplePointSymbol(api.createColor(255, 2, 2), 10);
api.createPicturePointSymbol = function (icon, iconSize, locationX, locationY) - Создание точечного символа в виде иконки (растровой картинки) для раскраски точечного графического объекта.
api.createSimpleLineSymbol = function (color, width, type) - Создание простого линейного символа (цвет, ширина, тип) для раскраски линейного графического объекта.
api.createSimpleLineSymbol = function (color, width, type) - Создание простого линейного символа (цвет, ширина, тип) для раскраски линейного графического объекта.
api.createSimpleFillSymbol = function (color, outline, type) - Создание простого площадного символа (цвет, обводка, тип) для раскраски площадного графического объекта.
Чтобы очистить маршрут или зоны транспортной доступности, нужно вызвать соответствующую функцию с пустым массивом точек.
    • Примеры:
  1. Открытие атрибутивной таблицы:
<script>
api.openAttributeTable(api.getLayer("https://.../MapServer", 0),300);
</script>
  1. Открытие карточки объекта:
<script>
var point = api.createPoint(7414817.879000001, 1.0027362619900003E7, api.getSpatialReference(3857));
api.goTo(point);
api.identify(point);
</script>
  1. Вызов поиска:
<script>
api.search('Администрация');
</script>
  1. Фильтрация объектов:
<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>
  1. Генерация отчета:
<script>
api.generateReport("simple.xlsx", {serviceUrl: "https://.../MapServer", layerId: 4, whereClause:"", orderBy:""}, {Caption: "test"});
</script>