На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Создание объекта на карте

Поиск  Пользователи  Правила  Войти
Форум » Серверные приложения » GIS WebToolKit
Страницы: 1 2 3 След.
RSS
Создание объекта на карте
 
Здравствуйте, не могу найти в документации функцию для создания объекта (точку, линию или другую геометрическую фигуру). Подскажите пожалуйста, как я могу создать объект на карте с помощью js? Буду рад если приведете пример.
 
Цитата
Павел Данилов написал:
Здравствуйте, не могу найти в документации функцию для создания объекта (точку, линию или другую геометрическую фигуру). Подскажите пожалуйста, как я могу создать объект на карте с помощью js? Буду рад если приведете пример.

Здравствуйте!

Можем предложить вот такой вариант создания объекта:
Код
import MapObject, { MapObjectType } from '~/mapobject/MapObject';
import GeoJsonLayer from '~/maplayers/GeoJsonLayer';
import { MapPoint } from '~/geometry/MapPoint';

...

const geoJsonLayer = new GeoJsonLayer(map, { id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
const userMapObject = new MapObject(geoJsonLayer, MapObjectType.Point);
const x = 7508256;
const y = 4188902;
const point = new MapPoint(x, y);
userMapObject.addPoint(point);
userMapObject.commit();
map.vectorLayers.push(geoJsonLayer);


В данном примере, для размещения объекта, создается новый слой и добавляется на карту.
 
спасибо, я так понимаю, что создание объектов происходит не на клиентской части приложения, в таком случае, где производится создание?
 
Цитата
Павел Данилов написал:
спасибо, я так понимаю, что создание объектов происходит не на клиентской части приложения, в таком случае, где производится создание?

В данном случае, создание объекта происходит на клиентской части приложения.  
 
В таком случае, у меня вопросы по поводу импортов. Данных папок нет в папке release, которая создается при сборке GIS WebToolkit SE, каким образом я должен их импортировать? И если я правильно понимаю, то у тех компонентов есть свои зависимости и перенос этих папок из вне приведет к внутренним ошибкам.
 
Цитата
Павел Данилов написал:
В таком случае, у меня вопросы по поводу импортов. Данных папок нет в папке release, которая создается при сборке GIS WebToolkit SE, каким образом я должен их импортировать? И если я правильно понимаю, то у тех компонентов есть свои зависимости и перенос этих папок из вне приведет к внутренним ошибкам.

Пример представлен для работы непосредственно с GIS WebToolKit до сборки.

В случае необходимости создать объект извне, можем предложить вот такой вариант без импортов:
Код
        const map = theMapVue.getMap();

        const layer = map.openLocalLayer(map, { id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
        const userMapObject = new GWTK.MapObject(layer, 'Point');
        const x = 7508256;
        const y = 4188902;
        const point = new GWTK.MapPoint(x, y);
        userMapObject.addPoint(point);
        userMapObject.commit();
 
Цитата
Дмитрий Науменко написал:
const layer = map.openLocalLayer(map, { id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
данная строка вызывает ошибку "TypeError: map.addLocalLayer is not a function". Хотя посмотрел по документации, такая функция есть.
 
Цитата
Павел Данилов написал:
Цитата
Дмитрий Науменко написал:
const layer = map.openLocalLayer(map, { id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
данная строка вызывает ошибку "TypeError: map.addLocalLayer is not a function". Хотя посмотрел по документации, такая функция есть.

Пришлите, пожалуйста, пример части вашего кода, в котором происходит получение карты и вызов функции, приводящей к ошибке.  
 
Код
const contenttree = [
    {
        'id': 'fon',
        'text': 'Фоновые слои',
        'expanded': true,
        'img': 'icon-folder',
        'nodes': [
            {
                'id': 'worldmap',
                'text': 'Карта мира',
                'img': 'ico_panorama',
                'clickable': true
            },
            {
                'id': 'osmMap',
                'text': 'OpenStreetMap',
                'img': 'ico_osm',
                'clickable': true
            },
            {
                'id': 'esriSat',
                'text': 'Снимки',
                'img': 'ico_esri',
                'clickable': true
            }
        ]
    },
];

const search_options = { //настройки поиска
    'map': { 'id': 'GISWebServiceSE', 'visible': 1 },
    'address': {
        'visible': 1,
        'default': 0,
        'sources': [
            { 'type': 'PanoramaAddressBase', 'alias': 'Адресная база', 'url': 'https://address.gisserver.info/address/fias/address_fias.php', 'result': 100 },
            { 'type': 'Osm', 'alias': 'Osm', 'url': 'https://nominatim.openstreetmap.org/search', 'result': 50 },
            { 'type': 'Yandex', 'alias': 'Yandex', 'url': 'https://geocode-maps.yandex.ru/1.x/', 'result': 50 }
        ]
    },
    'rosreestr': { 'id': 'Rosreestr', 'visible': 1 },
    'default': 'address'
};

const mymaps = [
    {
        url: 'https://gwserver.gisserver.info/GISWebServiceSE/service.php',
        virtualFolderList: ['USERFOLDER#UserData']
    }
];


const gwtkOptions = {
    'id': '1',
    'url': 'https://gwserver.gisserver.info/GISWebServiceSE/service.php',
    'servicepam': false,
    'center': [58.065711, 38.786545],
    
    
    // 'maxbounds': [50, 30, 60, 40],
    'isgeocenter': true,
    'tilematrix': 16,
    'tilematrixset': 'GoogleMapsCompatible',
    'username': 'ANONYMOUS',
    'loggedbefore': true,
    'controlspanel': false,
    'helpUrl': '',
    'usetoken': false,
    'extauth': true,
    'authheader': '',
    //'authheader': 'Basic YWRtaW46YWRtaW4=',
    'pamauth': false,
    'useform': false,
    'maxzoom': 22,
    'minzoom': 2,
    'mergewmslayers': false,
    'showsettings': false,
    'locale': 'ru-ru',
    'shortlegend': 0,
    'measurementunit': { 'perimeter': 'km', 'area': 'sq km' },
    'highlightmode': 'paint',
    'holdFolderTreeNodes': false,
    'objectinfo': { 'number': true, 'area': true, 'semantic': true },
    // 'tempVirtualFolders': {
    //     // 'folders': [
    //     //     {
    //     //         'alias': 'Folder 1',
    //     //         'folder': 'USERFOLDER#UserData'
    //     //     },
    //     //     {
    //     //         'alias': 'Папка ГИС Сервера',
    //     //         'folder': 'HOST#192.168.1.40#2055#ALIAS#Noginsk_TEST'
    //     //     }
    //     // ],
    //     'url': 'https://gwserver.gisserver.info/GISWebServiceSE/service.php'
    // },
    'layers': [
        {
            'id': 'osmMap',
            'alias': 'OpenStreetMap',
            'selectObject': false,
            'url': 'https://b.tile.openstreetmap.org/%z/%x/%y.png',
            'opacityValue': 100,
            'hidden': 0,
            'linkedUrls': [],
            tags: ['osm', '1', '2', 'zxc', 'test1', 'test2', 'test3', 'test4', 'test51', 'test52', 'test53', 'test45', 'test55', 'test56']
        },
        {
            'id': 'worldmap',
            'alias': 'Карта мира',
            'selectObject': false,
            'url': 'https://gisserver.info/GISWebServiceSE/service.php?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=worldmap&STYLE=default&TILEMATRIXSET=%tilematrixset&TILEMATRIX=%z&TILEROW=%y&TILECOL=%x&FORMAT=image/png',
            'version': '13.8.0',
            'gis': true,
            'hidden': 1,
            'opacityValue': 100,
            'linkedUrls': [],
            tags: ['osm', '1', '2wwww']
        },
        {
            'id': 'esriSat',
            'alias': 'Снимки',
            'selectObject': false,
            //'tilewms': 1,
            'url': 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/%z/%y/%x',
            // 'url1': 'http://map.land.gov.ua/geowebcache/service/wms?REQUEST=GetMap&tiled=true&SERVICE=wms&VERSION=1.1.1&LAYERS=pcm_nsdi_gts&STYLES=default&FORMAT=image/png&HEIGHT=256&WIDTH=256&SRS=EPSG:3857&TRANSPARENT=TRUE&BGCOLOR=0xFEFEFE&BBOX=%bbox',
            'hidden': 1,
            'opacityValue': 100,
            'linkedUrls': []
        },
    ],
    mymaps,
    'controls': ['*'],
    search_options,  //поиск
    contenttree,    //фоновые слои
    
};


const MapView = new MapVue('dvMap', gwtkOptions);
const map = new MapView.getMap();

const layer = map.addLocalLayer(MapView, { id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
const userMapObject = new GWTK.MapObject(layer, 'Point');
const x = 7508256;
const y = 4188902;
const point = new GWTK.MapPoint(x, y);
userMapObject.addPoint(point);
userMapObject.commit();



это весь мой файл script.js
 
Операция создания карты асинхронная, по этому не получилось сразу вызвать метод map.addLocalLayer(). Необходимо дождаться завершения данной операции.

Так же метод addLocalLayer, в отличии от метода openLocalLayer, не требует передачи карты.

В результате получается вот такой пример:
Код
const mapVue = new MapVue('dvMap', gwtkOptions);

mapVue.ready.finally(() => {
    const map = mapVue.getMap();
    const layer = map.addLocalLayer({ id: 'userLayerId', alias: 'userLayerAlias', url: 'userLayerUrl' });
    const userMapObject = new GWTK.MapObject(layer, 'Point');
    const x = 7508256;
    const y = 4188902;
    const point = new GWTK.MapPoint(x, y);
    userMapObject.addPoint(point);
    userMapObject.commit();

});
Страницы: 1 2 3 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2025

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности