WKT-формат
- Введение
- Основы
- Объект DG.WKTParser
- Примеры поддерживаемых WKT-описаний
- Методы
- Получить объект по WKT-описанию
- Получить тип объекта по WKT-описанию
- Получить точку по WKT-описанию
- Получить мультиточку (множество точек) по WKT-описанию
- Получить полилайн (ломаную) по WKT-описанию
- Получить мультиполилайн (множество ломаных) по WKT-описанию
- Получить полигон (многоугольник) по WKT-описанию
- Получить мультиполигон (множество многоугольников) по WKT-описанию
Введение
В данной статье мы изучим, что такое WKT-формат и как c ним работать в API карт.
Основы
Well-known text (WKT) — текстовый формат описания геометрических фигур. На данный момент API карт поддерживаются следующие объекты:
- точка (
POINT
); - мультиточка (
MULTIPOINT
); - полилайн (
LINESTRING
); - мультиполилайн (
MULTILINESTRING
); - полигон (
POLYGON
); - мультиполигон (
MULTIPOLYGON
).
Объект DG.WKTParser
За работу с геометрическими фигурами, которые описаны в WKT-формате отвечает статический объект DG.WKTParser
. Ниже мы подробно рассмотрим его возможности.
Описание методов представляет собой действие (что делает метод, для чего он нужен?) и название метода. Вместе с тем, представлены дополнительно параметры, возвращаемое значение метода и особенности, если таковые имеются.
Примеры поддерживаемых WKT-описаний
Примеры допустимых форматов описания объектов с помощью WKT приведены в таблице ниже.
Тип возвращаемого объекта | Пример WKT |
---|---|
DG.Geometries.Point | POINT (30 10) |
DG.Geometries.Multipoint | MULTIPOINT (10 40, 40 30, 20 20, 30 10) |
DG.Geometries.Polyline | LINESTRING (30 10, 10 30, 40 40) |
DG.Geometries.Multipolyline | MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10)) |
DG.Geometries.Polygon | POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10)) |
DG.Geometries.Multipolygon | MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5))) |
Методы
Получить объект по WKT-описанию
DG.WKTParser.getObject(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание геометрической фигуры. |
Возвращает:
Тип | Описание |
---|---|
Object | Объект, который определён с помощью входящего параметра wkt . |
Получить тип объекта по WKT-описанию
DG.WKTParser.getObjectType(wkt, style)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание геометрической фигуры. |
style | DG.Style.Geometry | Нет | Стиль отображения геометрии. |
Возвращает:
Тип | Описание |
---|---|
String | Тип объекта, который определён с помощью входящего параметра wkt .Метод может возвращать следующие значения: POINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON. |
Получить точку по WKT-описанию
DG.WKTParser.getPoint(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание точки. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Point | Точка, объект геометрии. |
Пример отображения точки на основе WKT-описания:
// Инициализируем карту, устанавливаем её центр и масштаб:
var myMap = new DG.Map('map');
myMap.setCenter(new DG.GeoPoint(82.927810142519, 55.0289362348260), 16);
// Создаём точку на основе WKT-описания:
var point = DG.WKTParser.getPoint('POINT (82.927810142519 55.0289362348260)');
// Добавляем точку на карту:
myMap.geometries.add(point);
// Создаем объект стилей:
var style = new DG.Style.Geometry();
// Устанавливаем значения свойств:
style.fillColor = "#ff00ff";
style.fillOpacity = 0.4;
style.strokeColor = "blue";
style.strokeOpacity = 1;
style.strokeWidth = 3;
style.pointRadius = 10;
// Устанавливаем стиль точки:
point.setStyle(style);
Открыть пример в новом окне
Получить мультиточку (множество точек) по WKT-описанию
DG.WKTParser.getMultipoint(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание мультиточки. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Multipoint | Мультиточка, объект геометрии. |
Пример отображения мультиточки на основе WKT-описания:
// Инициализируем карту, устанавливаем её центр и масштаб:
var myMap = new DG.Map('map');
myMap.setCenter(new DG.GeoPoint(82.927810142519, 55.0289362348260), 16);
// Создаём мультиточку на основе WKT-описания:
var multipoint = DG.WKTParser.getMultipoint('MULTIPOINT (82.927810142519 55.0289362348260, 82.937810142519 55.0389362348260, 82.917810142519 55.0189362348260)');
// Добавляем мультиточку на карту:
myMap.geometries.add(multipoint);
// Создаем объект стилей:
var style = new DG.Style.Geometry();
// Устанавливаем значения свойств:
style.fillColor = "#ff00ff";
style.fillOpacity = 0.4;
style.strokeColor = "blue";
style.strokeOpacity = 1;
style.strokeWidth = 3;
style.pointRadius = 10;
// Устанавливаем стиль мультиточки:
multipoint.setStyle(style);
Открыть пример в новом окне
Получить полилайн (ломаную) по WKT-описанию
DG.WKTParser.getPolyline(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание полилайна. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Polyline | Полилайн, объект геометрии. |
Пример отображения полилайна на основе WKT-описания:
// Получаем полилайн на основе WKT-описания
var polyline = DG.WKTParser.getPolyline('LINESTRING (82.93 55.028, 82.92 55.038, 82.93 55.048, 82.92 55.058)');
// Добавляем полилайн на карту
myMap.geometries.add(polyline);
Открыть пример в новом окне
Получить мультиполилайн (множество ломаных) по WKT-описанию
DG.WKTParser.getMultipolyline(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание мультиполилайна. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Polyline | Мультиполилайн, объект геометрии. |
Пример отображения мультиполилайна на основе WKT-описания:
// Получаем мультиполилайн на основе WKT-описания
var multipolyline = DG.WKTParser.getMultipolyline('MULTILINESTRING ((82.93 55.028, 82.92 55.038, 82.93 55.048, 82.92 55.058), (82.95 55.028, 82.94 55.038, 82.95 55.048, 82.94 55.058), (82.97 55.028, 82.96 55.038, 82.97 55.048, 82.96 55.058))');
// Добавляем мультиполилайн на карту
myMap.geometries.add(multipolyline);
Открыть пример в новом окне
Получить полигон (многоугольник) по WKT-описанию
DG.WKTParser.getPolygon(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание полигона. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Polygon | Полигон, объект геометрии. |
Пример отображения полигона на основе WKT-описания:
// Получаем полигон на основе WKT-описания
var polygon = DG.WKTParser.getPolygon('POLYGON ((82.93 55.028, 82.92 55.038, 82.93 55.048, 82.92 55.058))');
// Добавляем полигон на карту
myMap.geometries.add(polygon);
Открыть пример в новом окне
Получить мультиполигон (множество многоугольников) по WKT-описанию
DG.WKTParser.getMultipolygon(wkt)Параметры:
Имя | Тип | Обязательный | Описание |
---|---|---|---|
wkt | String | Да | WKT-описание мультиполигона. |
Возвращает:
Тип | Описание |
---|---|
DG.Geometries.Multipolygon | Мультиполигон, объект геометрии. |
Пример отображения мультиполигона на основе WKT-описания:
// Получаем мультиполигон на основе WKT-описания
var multipolygon = DG.WKTParser.getMultipolygon('MULTIPOLYGON (((82.93 55.028, 82.92 55.038, 82.93 55.048, 82.92 55.058)), ((82.95 55.028, 82.94 55.038, 82.95 55.048, 82.94 55.058)), ((82.97 55.028, 82.96 55.038, 82.97 55.048, 82.96 55.058)))');
// Добавляем мультиполигон на карту
myMap.geometries.add(multipolygon);
Открыть пример в новом окне