Использование модуля средств рисования

Веб-пакет SDK Azure Maps предоставляет модуль средств рисования. Этот модуль упрощает Рисование и изменение фигур на карте с помощью устройства ввода, такого как мышь или сенсорный экран. Основным классом этого модуля является Диспетчер рисунков. Диспетчер рисунков предоставляет все возможности, необходимые для рисования и редактирования фигур на карте. Его можно использовать напрямую и интегрировать с настраиваемым пользовательским Интерфейсом панели инструментов. Можно также использовать встроенный класс DrawingToolbar.

Загрузка модуля средств рисования на веб-страницу

  1. Создайте новый HTML-файл и реализуйте карту как обычно.
  2. Загрузите модуль инструментов для рисования Azure Maps. Это можно сделать одним из двух способов:
    • Используйте глобально размещенную версию сети доставки содержимого Azure модуля служб Azure Maps. Добавьте ссылку на JavaScript и CSS в <head> элементе файла:

      <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/drawing/1/atlas-drawing.min.css" type="text/css" />
      <script src="https://atlas.microsoft.com/sdk/javascript/drawing/1/atlas-drawing.min.js"></script>
      
    • Также можно загрузить модуль средств рисования для исходного кода веб-пакета SDK Azure Maps с помощью пакета Azure-Maps-Drawing-Tools NPM, а затем разместить его в приложении. Этот пакет также включает определения TypeScript. Используйте следующую команду:

      npm install azure-maps-drawing-tools

      Затем импортируйте JavaScript в исходный файл:

      import * as drawing from "azure-maps-drawing-tools";
      

      Вам также потребуется внедрить CSS для правильного отображения различных элементов управления. Если вы используете средство пакетирования JavaScript для пакетирования зависимостей и упаковки кода, ознакомьтесь с документацией по средству пакетов, чтобы узнать, как это сделать. Для Webpack это обычно делается с помощью сочетания style-loader и css-loader с документацией, доступной в загрузчике стилей.

      Для начала установите загрузчик стилей и css-loader:

      npm install --save-dev style-loader css-loader
      

      В исходном файле импортируйте atlas-drawing.min.css:

      import "azure-maps-drawing-tools/dist/atlas-drawing.min.css";
      

      Затем добавьте загрузчики в часть правил модуля конфигурации Webpack:

      module.exports = {
        module: {
          rules: [
            {
              test: /\.css$/i,
              use: ["style-loader", "css-loader"]
            }
          ]
        }
      };
      

      Дополнительные сведения см. в статье Использование пакета npm элемента управления картой Azure Maps.

Использование диспетчера рисунков напрямую

После загрузки модуля инструменты рисования в приложение можно включить возможности рисования и редактирования с помощью диспетчера рисунков. Можно указать параметры для диспетчера рисунков при его создании или использовать drawingManager.setOptions() функцию.

Установка режима рисования

Следующий код создает экземпляр диспетчера рисунков и устанавливает параметр режима рисования.

//Create an instance of the drawing manager and set drawing mode.
drawingManager = new atlas.drawing.DrawingManager(map,{
    mode: "draw-polygon"
});

На следующем рисунке показан пример режима рисования DrawingManagerобъекта . Выберите любое место на карте, чтобы начать рисование многоугольника.

Снимок экрана: карта, показывающая центральный парк в Нью-Йорке, где менеджер рисунков демонстрируется линией рисования.

Установка типа взаимодействия

Диспетчер рисунков поддерживает три разных способа взаимодействия с картой для рисования фигур.

  • click — добавляет координаты нажатием мыши или касанием.
  • freehand — добавляет координаты перетаскиванием указателя мыши или пальцем.
  • hybrid — добавляет координаты перетаскиванием либо нажатием мыши или касанием.

Следующий код включает режим рисования многоугольника и задает тип взаимодействия рисования, которым должен соответствовать Диспетчер рисунков freehand.

//Create an instance of the drawing manager and set drawing mode.
drawingManager = new atlas.drawing.DrawingManager(map,{
    mode: "draw-polygon",
    interactionType: "freehand"
});

Настройка параметров рисования

В предыдущих примерах было показано, как настроить параметры рисования при создании экземпляра диспетчера рисунков. Параметры диспетчера рисунков также можно задать с помощью drawingManager.setOptions() функции.

Параметры диспетчера рисования можно использовать для проверки настройки всех параметров для диспетчера рисования с помощью setOptions функции . Исходный код для этого примера см. в разделе Исходный код параметров диспетчера рисования.

Снимок экрана: карта Сиэтла с панелью слева с параметрами диспетчера рисования, которые можно выбрать, чтобы увидеть эффекты, которые они делают на карте.

Перевод фигуры в режим правки

Чтобы с помощью программных средств перевести существующую фигуру в режим правки, ее нужно передать в функцию edit диспетчера рисунков. Если это фигура GeoJSON, перед передачей ее нужно поместить в класс atls.Shape.

Чтобы с помощью программных средств вывести фигуру из режима правки, установите для диспетчера рисунков режим idle.

//If you are starting with a GeoJSON feature, wrap it with the atlas.Shape class.
var feature = { 
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [0,0]
        },
    "properties":  {}
};

var shape = new atlas.Shape(feature);

//Pass the shape into the edit function of the drawing manager.
drawingManager.edit(shape);

//Later, to programmatically take shape out of edit mode, set mode to idle. 
drawingManager.setOptions({ mode: 'idle' });

Примечание

Когда фигура передается в функцию edit диспетчера рисунков, она добавляется в источник данных, поддерживаемый диспетчером рисунков. Если ранее фигура находилась в другом источнике данных, она удаляется из него.

Чтобы добавлять фигуры в диспетчер рисунков, где пользователь сможет просматривать и изменять их, без программного перевода фигур в режим правки, вы можете получить источник данных от диспетчера рисунков и напрямую добавить в него фигуры.

//The shape(s) you want to add to the drawing manager so 
var shape = new atlas.Shape(feature);

//Retrieve the data source from the drawing manager.
var source = drawingManager.getSource();

//Add your shape.
source.add(shape);

//Alternatively, load in a GeoJSON feed using the sources importDataFromUrl function.
source.importDataFromUrl('yourFeatures.json');

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

Фигура Точки правки Rotate Удаление фигуры
Точка
LineString
Многоугольник
MultiPoint
MultiLineString
MultiPolygon
Circle
Прямоугольник

Дальнейшие действия

Узнайте, как использовать дополнительные функции модуля средств рисования:

Дополнительные сведения о классах и методах, которые используются в этой статье: