Документация-вспомогательные

Automap — rest — usersGroups

Доступно только для всевидящих администраторов

GET /users/groups

Структура запроса:


GET /users/groups?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации


GET /users/groups?organizations=1,12,2&wheel=true

name: получение списка групп пользователей по названию

organizations: получение списка групп пользователей, принадлежащих хотя бы к одной из заданных организаций

wheel: поиск групп пользователей, у которых права соответствует заданному булевому значению

admin: поиск групп пользователей, у которых права соответствует заданному булевому значению

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 2,
		name: "adminGS",
		wheel: true,
		admin: true,
		organizationId: 2
	}
]


// массив групп пользователей

// id группы
// название группы
// всевидящие
// администраторы
// id организации


Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

PUT /users/groups/{id}

Структура запроса:


PUT /users/groups/{id}?token=bw3ty3h46yth

token: ключ доступа

{id}: id группы пользователей

Формат: json


{
	admin: false
	carGroups: [6141]
	geoportalLogin: ""
	geoportalPassword: ""
	id: 1223
	name: "234512"
	organizationId: "1323"
	usersCount: 0
	wheel: false
}



// администрирование
// id групп ТС
// логин на GeoPortal
// пароль на GeoPortal
// id группы пользователей
// название группы пользователей
// id организации
// количество пользователей
// всевидящие

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	admin: false
	id: 1223
	name: "234512"
	organizationId: 1323
	usersCount: 0
	wheel: false
}



// администрирование
// id группы пользователей
// название группы пользователей
// id организации
// количество пользователей
// всевидящие

Статус: 400 ошибка в запросе

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

POST /users/groups

Структура запроса:


POST /users/groups?token=bw3ty3h46yth

token: ключ доступа

Формат: json


{
	admin: false
	carGroups: [4901, 5102, 4722, 4881, 4982, 4981, 4724]
	geoportalLogin: "123"
	geoportalPassword: "123"
	name: "qqq"
	organizationId: "1162"
	usersCount: 0
	wheel: true
}



// администрирование
// id групп ТС
// логин на GeoPortal
// пароль на GeoPortal
// название группы пользователей
// id организации
// количество пользователей
// всевидящие


Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	admin: false
	id: 1223
	name: "23451"
	organizationId: 1323
	usersCount: 0
	wheel: false
}



// администрирование
// id группы пользователей
// название группы пользователей
// id организации
// количество пользователей
// всевидящие


Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

DELETE /users/groups/{id}

Структура запроса:


DELETE         /users/groups/{id}?token=bw3ty3h46yth

token: ключ доступа

{id}: id группы пользователей

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

GET /users/groups.xlsx

Структура запроса:


GET /users/groups.xlsx?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: application/vnd.ms-excel

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

GET /users/groups/count

Структура запроса:


GET /users/groups/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: text


23


// Количество групп пользователей

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

GET /users/groups/{id}

Структура запроса:


GET /users/groups/{id}?token=bw3ty3h46yth

token: ключ доступа

{id}: id группы пользователей

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	name: "groupName",
	wheel: true,
	admin: true,
	organizationId: 1,
	carGroups: [1,2,3],
	geoportalLogin: "login",
	geoportalPassword: "12345"
}



// название группы пользователей
// всевидящие
// администрирование
// id организации
// id групп ТС
// логин на GeoPortal
// пароль на GeoPortal

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

GET /users/groups/{id}/cars/groups

Структура запроса:


GET /users/groups/{id}/cars/groups?token=bw3ty3h46yth

token: ключ доступа

{id}: id группы пользователей

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 1,
		name: "Группа 1",
		notes: "-",
		extGroup: null,
		view: true,
		organizationId: 1
	}
]



// Массив групп ТС определенной группы пользователей

// id группы ТС
// название группы ТС
// примечания

// видима ли
// id организации

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — orgs

Не всевидящим пользователям доступна информация только по своей организации

GET /organizations

Структура запроса:


GET /organizations?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации


GET /organizations?name=org name

name: поиск организаций по названию

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 1162,
		name: "name",
		mapExtent: "63.39152, -66.79, 94.921875, -80.15625",
		order: 100,
		address: "город и улица",
		inn: "00000000001",
		phone: "",
		email: "email@emailDomen.com",
		homepage: "www.myWebSite.com",
		kpp: "0000000000000000001"
	}
]


// массив объектов с органзациями

// id организации
// название организации
// видимая часть карты(координаты левой нижней и правой верхней точек)
// порядок организаци
// адрес
// инн
// телефон
// email
// домашняя страница
// КПП

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

PUT /organizations/{id}

Структура запроса:


PUT /organizations/{id}?token=bw3ty3h46yth

token: ключ доступа

{id}: id контрольной точки

Формат: json


{
	id: 1422,
	address: "TestOrg",
	email: "TestOrg@mail.ru",
	homepage: "TestOrg.ru",
	inn: "12333322333",
	kpp: "12222222222",
	mapExtent: "75.715633, 30.7512, 142.91, 55.3710",
	name: "TestOrg",
	phone: "89647333642",
	order: 100
}



// id
// адрес
// email
// домашняя страница
// инн
// КПП
// видимая часть карты(координаты левой нижней и правой верхней точек)
// название организации
// телефон
// название организации

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	id: 1422,
	address: "TestOrg",
	email: "TestOrg@mail.ru",
	homepage: "TestOrg.ru",
	inn: "12333322333",
	kpp: "12222222222",
	mapExtent: "75.715633, 30.7512, 142.91, 55.3710",
	name: "TestOrg",
	phone: "89647333642",
	order: 100
}



// id
// адрес
// email
// домашняя страница
// ИНН
// КПП
// видимая часть карты(координаты левой нижней и правой верхней точек)
// название организации
// телефон
// название организации

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

POST /organizations

Структура запроса:


POST   /organizations?token=bw3ty3h46yth

token: ключ доступа

Формат: json


{
	address: "TestOrg"
	email: "TestOrg@mail.ru"
	homepage: "hoiee.com"
	inn: "324234234"
	kpp: "234234234234"
	mapExtent: "74.7296, 27.37, 109.160156, 21.621"
	name: "refrfe"
	phone: "3223234"
}



// адрес
// email
// домашняя страница
// инн
// КПП
// видимая часть карты(координаты левой нижней и правой верхней точек)
// название организации
// телефон


Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	id: 1422
	order: 100
	address: "TestOrg"
	email: "TestOrg@mail.ru"
	homepage: "hoiee.com"
	inn: "324234234"
	kpp: "234234234234"
	mapExtent: "74.7296, 27.37, 109.160156, 21.621"
	name: "TestOrg"
	phone: "3223234"
}



// id организации
// название организации
// адрес
// email
// домашняя страница
// ИНН
// КПП
// видимая часть карты(координаты левой нижней и правой верхней точек)
// название организации
// телефон

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

DELETE /organizations/{id}

Структура запроса:


DELETE         /organizations/{id}?token=bw3ty3h46yth

token: ключ доступа

{id}: id организации

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для всевидящих администраторов

POST /organizations/change

Структура запроса:


POST   /organizations/change?token=bw3ty3h46yth

token: ключ доступа

Формат: json


{
	id: "123"
}



// id организации

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	status: 1
}



// статус выполнение 

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Не всевидящим пользователям доступна информация только по своей организации

GET /organizations/count

Структура запроса:


GET     /organizations/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: text


10


// количество доступных организаций

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Не всевидящим пользователям доступна информация только по своей организации

Структура запроса:


GET /organizations/{id}/cars/groups?token=bw3ty3h46yth

token: ключ доступа

{id}: id организации

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 4662,
		name: "234",
		notes: "",
		extGroup: null,
		view: true,
		organizationId: 1143
	}	
]


// массив объектов групп

// id группы
// название группы
// описание

// видима ли
// id организации

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — controlPoints

GET /cars/checkpoints

Структура запроса:


GET /cars/checkpoints?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
		"description": "2222222222",
		"arrivalData": 1381393740000,
		"arrivedData": null,
		"arrivalInterval": 1800000,
		"address": "3333333333333",
		"cycle": false,
		"id": 1181,
		"carId": 3973,
		"lat": 55.75957720924986,
		"lon": 48.72711181640625
},...]

// описание, строка
// время прибытия, timestamp

// интервал прибытия, целое число
// адрес, строка

// id контрольной точки, целое число
// id ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

PUT /cars/checkpoints/id

Структура запроса:


PUT /cars/checkpoints/1?token=bw3ty3h46yth

id: id контрольной точки

token: ключ доступа

Формат: json

{
	"id": 1,
	"address": "Новый адрес",
	"arrivalData": 1384862460000,
	"arrivalInterval": 600000,
	"carId": 1,
	"description": "description",
	"lat": 55.79819333412856,
	"lon": 48.702392578125
}

// id контрольной точки, целое число
// адрес, строка
// время прибытия, timestamp
// интервал прибытия, целое число
// id ТС, целое число
// описание, строка
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"description": "emulating in progress..",
	"arrivalData": 1416470760000,
	"arrivedData": 1416470781000,
	"arrivalInterval": 600000,
	"address": "New address",
	"cycle": false,
	"id": 99345,
	"carId": 134375,
	"lat": 61.81466389468391,
	"lon": 34.365234375
}

// описание, строка
// время прибытия, timestamp

// интервал прибытия, timestamp
// адрес, строка

// id, целое число
// id ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

POST /cars/checkpoints

Структура запроса:


POST /cars/checkpoints?token=bw3ty3h46yth

token: ключ доступа

Формат: json

{
	"address": "адрес",
	"arrivalData": 1384862520000,
	"arrivalInterval": 600000,
	"carId": 4034,
	"description": "описание",
	"lat": 56.01757535614987,
	"lon": 49.23316955566406	
}

// адрес, строка
// время прибытия, timestamp
// интервал прибытия, целое число
// id ТС, целое число
// описание, строка
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"address": "Полный адрес",
	"arrivalData": 1386152820000,
	"arrivalInterval": 600000,
	"arrivedData": null,
	"car": null,
	"carId": 4820,
	"cycle": false,
	"description": "test desc",
	"id": 1421,
	"lat": 55.67835873246176,
	"lon": 49.1748046875	
}

// адрес, строка
// время прибытия, timestamp
// интервал прибытия, целое число

// ТС
// id ТС, целое число

// описание, строка
// id контрольной точки, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

Структура запроса:


DELETE /cars/checkpoints/25?token=bw3ty3h46yth

id: id контрольной точки

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/{id}/checkpoints

Структура запроса:


GET /cars/4034/checkpoints?token=bw3ty3h46yth

id: id машины

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
	"description": "home",
	"arrivalData": 1427361720000,
	"arrivedData": null,
	"arrivalInterval": 600000,
	"address": "",
	"cycle": false,
	"id": 128601,
	"carId": 4034,
	"lat": 55.76002392688244,
	"lon": 49.171940088272095
},...]

// описание, строка
// время прибытия, timestamp

// интервал прибытия, целое число
// адрес, строка

// id контрольной точки, целое число
// id ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — carGroups

GET /cars/groups

Структура запроса:


GET /cars/groups?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации:


GET /cars/groups?organizations=1162,1&name=группа

name: поиск группы по названию

organizations: получение списка групп, принадлежащих хотя бы одной из заданных организаций

notes: поиск группы по записям

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 703,
		name: "003",
		notes: null,
		extGroup: null,
		view: true,
		organizationId: 1
	}
]


// массив объектов с информацией по группе

// id группы, целое число
// название группы, строка
// описание группы, строка
 
// видима ли 
// id организации

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

PUT /cars/groups/{id}

Структура запроса:


PUT   /cars/groups/{id}?token=bw3ty3h46yth

{id}: id группы

token: ключ доступа

Формат: json

{
	extGroup: null,
	id: 4901,
	name: "name",
	notes: "",
	organizationId: "1143",
	view: true
}


// id группы
// название группы
// описание группы
// id организации
// видима ли

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	extGroup: null,
	id: 4901,
	name: "name",
	notes: "",
	organizationId: "1143",
	view: true
}


// id группы
// название группы
// описание группы
// id организации
// видима ли

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

POST /cars/groups

Структура запроса:


POST     /cars/groups?token=bw3ty3h46yth

token: ключ доступа

Формат: json


{
	name: "name",
	organizationId: "10"
}



// название группы
// id организации

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	extGroup: null,
	id: 4901,
	name: "name",
	notes: "",
	organizationId: "1143",
	view: true
}


// id группы
// название группы
// описание группы
// id организации
// видима ли

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

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

DELETE /cars/groups/{groupId}

Структура запроса:


DELETE /cars/groups/{groupId}?token=bw3ty3h46yth

{groupId}: id группы

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/groups.xlsx

Структура запроса:


GET /cars/groups.xlsx?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: application/vnd.ms-excel

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/groups/{groupId}/cars

Структура запроса:


GET     /cars/groups/{groupId}/cars?token=bw3ty3h46yth

{groupId}: id группы

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 4158,
		name: "testDrivers",
		glonassId: 354235,
		view: true,
		lastUpdate: null,
		projectPoints: false,
		onService: false,
		iconStandard: true,
		iconIndex: 223,
		toDelete: false,
		markId: 150,
		modelId: 1621,
		groupId: 702,
		speed: 0,
		direction: 0,
		lat: 0,
		lon: 0,
		carNo: "235235",
		isStopped: false,
		tagsIds: [ ],
		organizationId: 1
	}
]


// массив машин группы

// id машины
// название
// ГЛОНАСС id
// видима ли
// последнее обновление

// если true - машина на сервисном обслуживании
// стандартная иконка
// индекс иконки
// машина в процессе удаления
// id марки
// id модели
// id группы 
// текущая скорость
// угол, под которым вошло ТС
// широта
// долгота
// номер ТС
// остановлена
// id меток
// id организации

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/groups/count

Структура запроса:


GET /cars/groups/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат:text


10


// количество доступных групп

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

mapSurfer -rest -other

POST /shortURL

Пример запроса


{
    url: "http://geoportal.prochar.ru/"
}



// url, который необходимо сократить
                            

Ответ:

Статус: 200 - успешное выполнение

Формат: json

{    
     "status":"ok",
     "url":"http://geo4.me/l/Y9S15foVnZG"    
}



// сокращенный url

Настройка плагинов

Настройка плагинов

Для подключения нового плагина необходимо сначала подключить интерфейс. Для этого выбираем вкладки:
«Меню» -> «Проект»->«Добавить ссылку…». И во вкладке «Обзор» выбираем файлы «Interop.mvMapLib.dll», «AxInterop.mvMapLib.dll», «Interfaces.dll».

Pl_1

Рисунок 1

Добавленные файлы отобразятся в окне «Обозреватель решений» в разделе «Ссылки».

Pl_2

Рисунок 2

В добавленных файлах необходимо выбрать значение «False» для действия «Копировать локально» (это избавит нас от лишнего «мусора» в папке Plugins).

Pl_3

Рисунок 3

Для кода плагина в первую очередь необходимо подготовить файл AssemblyInfo.cs. Более подробное его описание будет дано в разделе «Настройки файла AssemblyInfo.cs».

Так как плагин должен содержать реализацию интерфейса «Interfaces.IMainPlugin», напишем минимально-допустимый код, который должен содержать плагин:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interfaces;
using System.Xml.Linq;
using System.Reflection;
namespace NewPlugin
{
    public class MainClass : Interfaces.IMainPlugin
    {
        #region Члены IMainPlugin
        string Interfaces.IMainPlugin.Name
        {
            get { return AssemblyClass.GetName(Assembly.GetExecutingAssembly()); }
        }
        string Interfaces.IMainPlugin.GUID
        {
            get { return AssemblyClass.GetGuid(Assembly.GetExecutingAssembly()); }
        }
        public void StartPlugin(XElement XSettings, IMainApp app, IWorkClass work)
        {
            // Код Плагина
        }
        public Interfaces.Forms.IControlSettings SettingsForm
        {
            get { return null; }
        }
        #endregion
    }
}

В свойстве SettingsForm мы возвращаем null, так как в нашем случае не нужно делать настройки для плагина.

Все настройки плагинов расположены в разделе «Инструменты»-> «Настройки…». Однако они требуются не каждому плагину.

Если есть необходимость в настройках, добавьте UserControl («Меню» -> «Проект» -> «Добавить пользовательский элемент управления...»). Назовём его «UCSettings.cs».

Для того чтобы работала наша форма с интерфейсом настроек, добавляем к классу UCSettings наследование интерфейса Interfaces.Forms.IControlSettings .

Полный пример кода для плагина:


using System.Windows.Forms;
using System.Xml.Linq;
namespace NewPlugin
{
    public partial class UCSettings : UserControl, Interfaces.Forms.IControlSettings
    {
        private XElement _data;          
        public UCSettings()
        {
            InitializeComponent();
        }
        public bool LoadSettings(XElement data)
        {
            _data = data;
            // функция загрузки плагина 
            return true;
        }
        public bool SaveSettings()
        {
            // проверочный код на сохранение результатов
            //Сохранение, изменения переменной _data сохраняются в файле settings.riws
            return true;
        }
    }
}

А также необходимо его передать свойству SettingsForm в классе MainClass.

Перепишем это свойство:

private Interfaces.Forms.IControlSettings _controlSettings; public Interfaces.Forms.IControlSettings SettingsForm { get { if (_controlSettings == null) _controlSettings = new UCSettings(); return _controlSettings; } }

Добавление MapViewer ActiveX в рабочий проект

Добавление MapViewer ActiveX в рабочий проект

Мы уже установили и зарегистрировали наш компонент в системе. А теперь нам необходимо начать его использовать. Для этого в первую очередь мы должны добавить его в наш проект.

Так как MapViewer ActiveX взаимодействует с приложением, используя технологию ActiveX, то и использоваться он может в различных языках программирования. Одним из таких языков, является C#, именно на этом языке и в среде Visual Studio 2010 мы рассмотрим добавление компонента  в разрабатываемый проект.

Для начала нам необходимо вывести MapViewer ActiveX на «Панель элементов». Что бы это сделать, нам нужно в контекстном меню панели элементов (как это показано на рисунке 1) выбрать действие  «Выбрать элементы…».

dobavl_1

Рисунок 1

На вашем мониторе откроется окно «Выбор элементов панели элементов» с различными вкладками. Нам нужно выбрать вкладку «COM-компоненты» и в списке элементов найти и поставить галочку напротив «MapLib Control». В итого все должно выглядеть как на рисунке 2.

dobavl_2

Рисунок 2

Нажав на кнопку «OK» наш компонент должен появиться на панели элементов (рисунок 3).

А теперь остается только добавить MapLib Control на форму, где вы хотите его видеть.

dobavl_3

Рисунок 3

Добавление компонента карты

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

Настройка внешнего вида карты

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

При использовании компонента карты, основанного на технологии ActiveX, не гарантируется корректная работа графического дизайнера среды разработки, в частности, установка свойств компонента. Рекомендуется устанавливать свойства в коде.

Сокрытие панели инструментов

Если есть необходимость ограничить доступ пользователей до панели инструментов или возложить задачи инструментария карты на ваше приложение (т.е. создать свои элементы управления для карты), воспользуйтесь следующим кодом:

axMapLIb1.toolbar = false;

 Сокрытие панели информации

Если есть необходимость скрыть панель информации, воспользуетесь следующим свойством:

axMapLIb1.statusbar = false;

 Фон карты

Немаловажным элементом внешнего вида является фоновый цвет карты. Это цвет подложки, которая располагается  непосредственно под
объектами карты. Эта подложка оголяется, если над ней нет объектов. Есть возможность изменения цвета подложки (фона), но возможные цвета для подложки это оттенки серого. Для задания цвета использовать следующий код:

axMapLIb1.setBG(color);
axMapLIb1.mapRepaint();
где color — это целочисленная переменная, принимающая значение от 0 до 255, 
где 0 — это черный цвет, 255 — белый.

Загрузка файла карты

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

axMapLIb1.LoadMap("\\map\\map_file.vmp", "id");

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