В данной инструкции будет рассмотрено использование мощного инструмента для .NET Framework – GMap.NET, по работе с различными источниками карт. В этой части будет рассматриваться процесс загрузки и подключения данного инструмента к вашему проекту, загрузка карт различных поставщиков, загрузка по координатам и установка маркеров. Скачать необходимые для работы библиотеки вы можете как с нашего сайта, так и с сайта производителя (www.greatmaps.codeplex.com).
Рассмотрим пример с загрузкой библиотеки с сайта производителя. Откройте веб-браузер и перейдите по следующему адресу: (www.greatmaps.codeplex.com). После полной загрузки страницы вы увидите множество ссылок для скачивания различных версий, нажмите по первой.
После полной загрузки файла, перейдите в директорию со скачанным архивом библиотек. Сделайте клик правой клавишей по архиву и выберете из появившегося контекстного меню пункт «Извлечь в GMap.Net».
Директория с распакованным архивом будет содержать следующие файлы:
- BSE.Windows.Forms.dll
- Demo.WindowsForms.exe
- Demo.WindowsPresentation.exe
- GMap.NET.Core.dll
- GMap.NET.Core.xml
- GMap.NET.WindowsForms.dll
- GMap.NET.WindowsForms.xml
- GMap.NET.WindowsPresentation.dll
- GMap.NET.WindowsPresentation.xml
- License.txt
Создайте проект Windows Form в Microsoft Visual Studio и перейдите в Обозреватель решений, открыв «Меню-Вид-Обозреватель решений». Чтобы использовать скачанный компонент в данном проекте, необходимо сначала добавить ссылку на этот компонент. В обозревателе решений, сделайте клик правой клавишей мыши по группе «References», содержащей ссылки на библиотеки необходимые для работы проекта, а в открывшемся контекстном меню, выберете пункт «Добавить ссылку…».
У вас откроется диалоговое окно «Менеджер ссылок». В левой части окна, у вас будет представлен список разделов. Выберете последний пункт «Обзор». После выбора данного раздела, в нижней части у вас появится кнопка «Обзор…». Нажав на нее, у вас откроется проводник для выбора файлов библиотек, ссылки на которые будут добавлены в проект.
Перейдите в папку с распакованными библиотеками «GMap.Net». Выберете библиотеки «GMap.NET.Core.dll», «GMap.NET.WindowsForms.dll» и нажмите кнопку «Добавить».
В Менеджере ссылок, вы увидите выбранные вами библиотеки. Для завершения добавления ссылок на данные библиотеки, нажмите кнопку «ОК».
Перейдите в Обозреватель решений. В группе «References», вы увидите два новых пункта, содержащие имена добавленных библиотек.
Для графического отображения карты необходимо добавить компонент «GMap.NET». Перейдите в Панель элементов и в группе «Общие» сделайте клик правой клавишей мыши по пустому пространству группы. В открывшемся контекстном меню выберете пункт «Выбрать элементы…».
В открывшемся окне «Выбор элементов панели элементов», у вас по умолчанию будет открыта вкладка «Компоненты .NET Framework». На данной вкладке вам будет предложено отметить галочками, компоненты которые вы хотите добавить. Так же присутствует кнопка «Обзор…», для добавления компонента стороннего производителя. Нажмите на нее для добавления компонента «GMap.Net».
Перейдите в папку с раскованным архивом библиотек «GMap.Net» и выберете библиотеку «GMap.NET.WindowsForms.dll» и нажмите кнопку «Открыть».
Вернувшись в окно «Выбор элементов панели элементов», во вкладку «Компоненты .NET Framework», вы увидите в списке компонентов новый элемент управления «GMapControl», с установленной напротив галочкой, означающей, что данный компонент будет добавлен и отображаться в панели элементов. Нажмите кнопку «ОК».
Перейдите в Панель элементов. В группе «Общие» у вас появится новый элемент управления «GMapControl». Добавьте его на главную форму вашего проекта и сделайте двойной клик по пустому пространству главной формы. Вы перейдете в автоматически созданный метод «Form1_Load», события «Load», выполняющегося при каждой загрузке главной формы. Добавьте приведенный ниже листинг инициализации карты с настройками.
//Настройки для компонента GMap. gMapControl1.Bearing = 0; //CanDragMap - Если параметр установлен в True, //пользователь может перетаскивать карту ///с помощью правой кнопки мыши. gMapControl1.CanDragMap = true; //Указываем, что перетаскивание карты осуществляется //с использованием левой клавишей мыши. //По умолчанию - правая. gMapControl1.DragButton = MouseButtons.Left; gMapControl1.GrayScaleMode = true; //MarkersEnabled - Если параметр установлен в True, //любые маркеры, заданные вручную будет показаны. //Если нет, они не появятся. gMapControl1.MarkersEnabled = true; //Указываем значение максимального приближения. gMapControl1.MaxZoom = 18; //Указываем значение минимального приближения. gMapControl1.MinZoom = 2; //Устанавливаем центр приближения/удаления //курсор мыши. gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; //Отказываемся от негативного режима. gMapControl1.NegativeMode = false; //Разрешаем полигоны. gMapControl1.PolygonsEnabled = true; //Разрешаем маршруты gMapControl1.RoutesEnabled = true; //Скрываем внешнюю сетку карты //с заголовками. gMapControl1.ShowTileGridLines = false; //Указываем, что при загрузке карты будет использоваться //18ти кратное приближение. gMapControl1.Zoom = 5; //Указываем что все края элемента управления //закрепляются у краев содержащего его элемента //управления(главной формы), а их размеры изменяются //соответствующим образом. gMapControl1.Dock = DockStyle.Fill; //Указываем что будем использовать карты Google. //gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap; GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; //Если вы используете интернет через прокси сервер, //указываем свои учетные данные. GMap.NET.MapProviders.GMapProvider.WebProxy = System.Net.WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
Для загрузки определенного места на карте в данном компоненте реализованы следующие форматы загрузки определенного местоположения:
- SetCurrentPositionByKeywords(“country”) – USA – Страна;
- SetCurrentPositionByKeywords(“state, country”) – Berlin, Germany – Город;
- SetCurrentPositionByKeywords(“province, country”) – Alberta, Canada – Провинция;
- Position = New PointLatLng(latitude,longitude) – New PointLatLng(54.6961334816182, 25.2985095977783) – Координаты.
Рассмотрим пример открытия определенного места на карте через указание координат. Для получения координат есть много способов, один из них, это получение через браузер с использованием Google карт.
- 1)Откройте браузер и перейдите на страницу Google карт(https://www.google.ru/maps/preview);
- 2)Выберете на карте необходимый вам объект;
- 3)В строке браузера вы увидите координаты этого объекта;
- 4)Скопируйте и вставьте в таком же формате как показано ниже.
gMapControl1.Position = new GMap.NET.PointLatLng(65.75393, 47.620795);
Для Красной площади в Москве, будут координаты «55.75393, 37.620795», соответственно код их открытия будет выглядеть следующим образом:
gMapControl1.Position = new GMap.NET.PointLatLng(55.75393, 37.620795);
Если ваш объект известен Google, то в левой верхней части вы увидите описание объекта и необходимые вам координаты.
Добавьте строку кода с указанием координат выбранного вами объекта после кода с настройками элемента управления «GMap.NET» и запустите компиляцию проекта, нажав на клавиатуре клавишу «F5». В разрабатываемом примере были введены координаты красной площади в Москве. Пример работы тестового проекта представлен ниже.
По умолчанию карта не отображает маркеры по координатам, которые вы указали. Их необходимо создавать вручную. Пример создания зеленого маркера при использовании Google карт представлен ниже:
//Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(55.75393, 37.620795)); marker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker); //Текст отображаемый при наведении на маркер marker.ToolTipText = "Красная площадь"; //Добавляем маркер в список маркеров markersOverlay.Markers.Add(marker); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay);
Пример использования красного маркера для Google карт, представлен ниже. Для наглядности маркер смещен по горизонтали.
//Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen markerG = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(55.75393, 37.620795)); markerG.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerG); //Текст отображаемый при наведении на маркер markerG.ToolTipText = "Красная площадь"; //Инициализация нового КРАСНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed markerR = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed( new GMap.NET.PointLatLng(55.75393, 37.620695)); markerR.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerR); //Текст отображаемый при наведении на маркер markerR.ToolTipText = "Красная площадь"; //Добавляем маркеры в список маркеров markersOverlay.Markers.Add(markerG); markersOverlay.Markers.Add(markerR); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay);
Карты Google так же позволяют использовать следующие варианты карт:
- Уличные:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap;
- Спутниковые:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleSatelliteMap;
- Гибридные:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleHybridMap;
Данный компонент позволяет использовать карты различных источников, основные из них:
BingMap – Карты от Microsoft;
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.BingMap;
OpenStreet – Карты от Open Street.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.OpenStreetMap;
YahooMap – Карты от Yahoo (Есть уличные, спутниковые и гибридные варианты).
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.YahooHybridMap;
YandexMap –Карты от Яндекс.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.YandexMap;
TurkeyMap – Турецкие карты.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.TurkeyMap;
OviMap – карты от Nokia.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.OviMap;
В данной инструкции будет рассмотрено использование мощного инструмента для .NET Framework — GMap.NET, по работе с различными источниками карт. В этой части будет рассматриваться процесс загрузки и подключения данного инструмента к вашему проекту, загрузка карт различных поставщиков, загрузка по координатам и установка маркеров. Скачать необходимые для работы библиотеки вы можете как с нашего сайта, так и с сайта производителя (www.greatmaps.codeplex.com).
Рассмотрим пример с загрузкой библиотеки с сайта производителя. Откройте веб-браузер и перейдите по следующему адресу: (www.greatmaps.codeplex.com). После полной загрузки страницы вы увидите множество ссылок для скачивания различных версий, нажмите по первой.
После полной загрузки файла, перейдите в директорию со скачанным архивом библиотек. Сделайте клик правой клавишей по архиву и выберете из появившегося контекстного меню пункт «Извлечь в GMap.Net».
Директория с распакованным архивом будет содержать следующие файлы:
- BSE.Windows.Forms.dll
- Demo.WindowsForms.exe
- Demo.WindowsPresentation.exe
- GMap.NET.Core.dll
- GMap.NET.Core.xml
- GMap.NET.WindowsForms.dll
- GMap.NET.WindowsForms.xml
- GMap.NET.WindowsPresentation.dll
- GMap.NET.WindowsPresentation.xml
- License.txt
Создайте проект Windows Form в Microsoft Visual Studio и перейдите в Обозреватель решений, открыв «Меню-Вид-Обозреватель решений». Чтобы использовать скачанный компонент в данном проекте, необходимо сначала добавить ссылку на этот компонент. В обозревателе решений, сделайте клик правой клавишей мыши по группе «References», содержащей ссылки на библиотеки необходимые для работы проекта, а в открывшемся контекстном меню, выберете пункт «Добавить ссылку…».
У вас откроется диалоговое окно «Менеджер ссылок». В левой части окна, у вас будет представлен список разделов. Выберете последний пункт «Обзор». После выбора данного раздела, в нижней части у вас появится кнопка «Обзор…». Нажав на нее, у вас откроется проводник для выбора файлов библиотек, ссылки на которые будут добавлены в проект.
Перейдите в папку с распакованными библиотеками «GMap.Net». Выберете библиотеки «GMap.NET.Core.dll», «GMap.NET.WindowsForms.dll» и нажмите кнопку «Добавить».
В Менеджере ссылок, вы увидите выбранные вами библиотеки. Для завершения добавления ссылок на данные библиотеки, нажмите кнопку «ОК».
Перейдите в Обозреватель решений. В группе «References», вы увидите два новых пункта, содержащие имена добавленных библиотек.
Для графического отображения карты необходимо добавить компонент «GMap.NET». Перейдите в Панель элементов и в группе «Общие» сделайте клик правой клавишей мыши по пустому пространству группы. В открывшемся контекстном меню выберете пункт «Выбрать элементы…».
В открывшемся окне «Выбор элементов панели элементов», у вас по умолчанию будет открыта вкладка «Компоненты .NET Framework». На данной вкладке вам будет предложено отметить галочками, компоненты которые вы хотите добавить. Так же присутствует кнопка «Обзор…», для добавления компонента стороннего производителя. Нажмите на нее для добавления компонента «GMap.Net».
Перейдите в папку с раскованным архивом библиотек «GMap.Net» и выберете библиотеку «GMap.NET.WindowsForms.dll» и нажмите кнопку «Открыть».
Вернувшись в окно «Выбор элементов панели элементов», во вкладку «Компоненты .NET Framework», вы увидите в списке компонентов новый элемент управления «GMapControl», с установленной напротив галочкой, означающей, что данный компонент будет добавлен и отображаться в панели элементов. Нажмите кнопку «ОК».
Перейдите в Панель элементов. В группе «Общие» у вас появится новый элемент управления «GMapControl». Добавьте его на главную форму вашего проекта и сделайте двойной клик по пустому пространству главной формы. Вы перейдете в автоматически созданный метод «Form1_Load», события «Load», выполняющегося при каждой загрузке главной формы. Добавьте приведенный ниже листинг инициализации карты с настройками.
//Настройки для компонента GMap. gMapControl1.Bearing = 0; //CanDragMap - Если параметр установлен в True, //пользователь может перетаскивать карту ///с помощью правой кнопки мыши. gMapControl1.CanDragMap = true; //Указываем, что перетаскивание карты осуществляется //с использованием левой клавишей мыши. //По умолчанию - правая. gMapControl1.DragButton = MouseButtons.Left; gMapControl1.GrayScaleMode = true; //MarkersEnabled - Если параметр установлен в True, //любые маркеры, заданные вручную будет показаны. //Если нет, они не появятся. gMapControl1.MarkersEnabled = true; //Указываем значение максимального приближения. gMapControl1.MaxZoom = 18; //Указываем значение минимального приближения. gMapControl1.MinZoom = 2; //Устанавливаем центр приближения/удаления //курсор мыши. gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; //Отказываемся от негативного режима. gMapControl1.NegativeMode = false; //Разрешаем полигоны. gMapControl1.PolygonsEnabled = true; //Разрешаем маршруты gMapControl1.RoutesEnabled = true; //Скрываем внешнюю сетку карты //с заголовками. gMapControl1.ShowTileGridLines = false; //Указываем, что при загрузке карты будет использоваться //18ти кратное приближение. gMapControl1.Zoom = 5; //Указываем что все края элемента управления //закрепляются у краев содержащего его элемента //управления(главной формы), а их размеры изменяются //соответствующим образом. gMapControl1.Dock = DockStyle.Fill; //Указываем что будем использовать карты Google. //gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap; GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; //Если вы используете интернет через прокси сервер, //указываем свои учетные данные. GMap.NET.MapProviders.GMapProvider.WebProxy = System.Net.WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
Для загрузки определенного места на карте в данном компоненте реализованы следующие форматы загрузки определенного местоположения:
- SetCurrentPositionByKeywords(“country”) – USA – Страна;
- SetCurrentPositionByKeywords(“state, country”) – Berlin, Germany – Город;
- SetCurrentPositionByKeywords(“province, country”) – Alberta, Canada – Провинция;
- Position = New PointLatLng(latitude,longitude) – New PointLatLng(54.6961334816182, 25.2985095977783) – Координаты.
Рассмотрим пример открытия определенного места на карте через указание координат. Для получения координат есть много способов, один из них, это получение через браузер с использованием Google карт.
- 1)Откройте браузер и перейдите на страницу Google карт(https://www.google.ru/maps/preview);
- 2)Выберете на карте необходимый вам объект;
- 3)В строке браузера вы увидите координаты этого объекта;
- 4)Скопируйте и вставьте в таком же формате как показано ниже.
gMapControl1.Position = new GMap.NET.PointLatLng(65.75393, 47.620795);
Для Красной площади в Москве, будут координаты «55.75393, 37.620795», соответственно код их открытия будет выглядеть следующим образом:
gMapControl1.Position = new GMap.NET.PointLatLng(55.75393, 37.620795);
Если ваш объект известен Google, то в левой верхней части вы увидите описание объекта и необходимые вам координаты.
Добавьте строку кода с указанием координат выбранного вами объекта после кода с настройками элемента управления «GMap.NET» и запустите компиляцию проекта, нажав на клавиатуре клавишу «F5». В разрабатываемом примере были введены координаты красной площади в Москве. Пример работы тестового проекта представлен ниже.
По умолчанию карта не отображает маркеры по координатам, которые вы указали. Их необходимо создавать вручную. Пример создания зеленого маркера при использовании Google карт представлен ниже:
//Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(55.75393, 37.620795)); marker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker); //Текст отображаемый при наведении на маркер marker.ToolTipText = "Красная площадь"; //Добавляем маркер в список маркеров markersOverlay.Markers.Add(marker); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay);
Пример использования красного маркера для Google карт, представлен ниже. Для наглядности маркер смещен по горизонтали.
//Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen markerG = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(55.75393, 37.620795)); markerG.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerG); //Текст отображаемый при наведении на маркер markerG.ToolTipText = "Красная площадь"; //Инициализация нового КРАСНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed markerR = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed( new GMap.NET.PointLatLng(55.75393, 37.620695)); markerR.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerR); //Текст отображаемый при наведении на маркер markerR.ToolTipText = "Красная площадь"; //Добавляем маркеры в список маркеров markersOverlay.Markers.Add(markerG); markersOverlay.Markers.Add(markerR); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay);
Карты Google так же позволяют использовать следующие варианты карт:
- Уличные:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap;
- Спутниковые:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleSatelliteMap;
- Гибридные:
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleHybridMap;
Данный компонент позволяет использовать карты различных источников, основные из них:
BingMap – Карты от Microsoft;
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.BingMap;
OpenStreet – Карты от Open Street.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.OpenStreetMap;
YahooMap – Карты от Yahoo (Есть уличные, спутниковые и гибридные варианты).
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.YahooHybridMap;
YandexMap –Карты от Яндекс.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.YandexMap;
TurkeyMap – Турецкие карты.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.TurkeyMap;
OviMap — карты от Nokia.
gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.OviMap;
Ссылка для скачивания библиотек Gmap: Яндекс.Диск
Время на прочтение
6 мин
Количество просмотров 14K
На написание данной статьи меня подтолкнуло не столь большое наличие текстовой информации по работе с GMap на просторах интернета, как хотелось бы.
Стояла задача визуализировать на карте положение объектов по известным координатам для дальнейшего анализа и выявления каких-либо закономерностей расположения этих объектов.
Первое что могу порекомендовать из своего опыта – начать работать сразу с WinForm, а не с WPF т.к. проще и больше информации можно добыть именно по ней.
Краткий словарь терминов, которые встретятся в моей статье:
-
Тайловая, плиточная или знакоместная графика (от англ. tile — плитка) — метод создания больших изображений (как правило, уровней в компьютерных играх) из маленьких фрагментов одинаковых размеров
-
Тайл — элемент разбиения
-
Слой можно сравнить с прозрачной пленкой, наложенной на изображение, на который наносятся пользовательские элементы
-
Тепловая карта — графическое представление данных, где индивидуальные значения в таблице отображаются при помощи цвета. Термин «heatmap» изначально был придуман и официально зарегистрирован как товарный знак разработчиком программного обеспечения Кормаком Кинни в 1991 году.
-
Полигон — многоугольник, минимальная поверхность для визуализации в трёхмерной графике.
-
Маркер — отметка на карте
Переходим к работе с библиотекой.
Нам понадобятся GMap.NET.Core.dll и GMap.NET.WindowsForms.dll Для установки можно использовать Nuget.
или скачать dll из интернета и вставить ссылки
Щелкните правой кнопкой мыши панель инструментов и нажмите «Выбрать элементы…». В появившемся окне с помощью кнопки «Обзор» найдите файл GMap.NET.WindowsForms.dll:
После закрытия окна новый элемент управления появится в наборе инструментов. Перетаскиваем его в форму и настраиваем положение и размеры.
Создаем эвент (событие) загрузки контрала.
Вставляем код:
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache; //выбор подгрузки карты – онлайн или из ресурсов
gMapControl1.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance; //какой провайдер карт используется (в нашем случае гугл)
gMapControl1.MinZoom = 2; //минимальный зум
gMapControl1.MaxZoom = 16; //максимальный зум
gMapControl1.Zoom = 4; // какой используется зум при открытии
gMapControl1.Position = new GMap.NET.PointLatLng(66.4169575018027, 94.25025752215694);// точка в центре карты при открытии (центр России)
gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; // как приближает (просто в центр карты или по положению мыши)
gMapControl1.CanDragMap = true; // перетаскивание карты мышью
gMapControl1.DragButton = MouseButtons.Left; // какой кнопкой осуществляется перетаскивание
gMapControl1.ShowCenter = false; //показывать или скрывать красный крестик в центре
gMapControl1.ShowTileGridLines = false; //показывать или скрывать тайлы
Результат выполнения кода. Карта делится на квадраты, называемые тайлами. Тайлы и крест по центру включены.
Работа с библиотекой. Маркеры
Чтобы отобразить объект на карте мы создаем маркер с координатами объекта и выводим его на карту. Теперь создадим функцию, возвращающую тот самый маркер. В коде ниже функция принимает параметры: классы Us откуда я беру название и координаты и необязательный параметр gMarkerGoogleType – тип маркера.
private GMarkerGoogle GetMarker(Us us, GMarkerGoogleType gMarkerGoogleType= GMarkerGoogleType.red)
{
GMarkerGoogle mapMarker = new GMarkerGoogle(new GMap.NET.PointLatLng(us.сoordinates[0].lat, us.сoordinates[0].lon), gMarkerGoogleType);//широта, долгота, тип маркера
mapMarker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(mapMarker);//всплывающее окно с инфой к маркеру
mapMarker.ToolTipText = us.id; // текст внутри всплывающего окна
mapMarker.ToolTipMode = MarkerTooltipMode.OnMouseOver; //отображение всплывающего окна (при наведении)
return mapMarker;
}
Необходимо сказать о GMapOverlay – это слой, похожий на слой в Photoshop, который можно описать как прозрачный холст размером с карту на который мы размещаем все маркеры.
Теперь функция возвращающая слой с маркерами. Входные параметры: список классов с именами и координатами, название слоя и все тот же необязательный параметр gMarkerGoogleType.
private GMapOverlay GetOverlayMarkers(List<Us> uss, string name, GMarkerGoogleType gMarkerGoogleType= GMarkerGoogleType.red)
{
GMapOverlay gMapMarkers = new GMapOverlay(name);// создание именованного слоя
foreach (Us us in uss)
{
gMapMarkers.Markers.Add(GetMarker(us, gMarkerGoogleType));// добавление маркеров на слой
}
return gMapMarkers;
}
Добавление слоя. Вызываем функцию создающую слой и добавляем его к слоям контрола карты:
gMapControl1.Overlays.Add(GetOverlayMarkers(groups, "GroupsMarkers"));
то же самое, но с указанием типов маркеров:
gMapControl1.Overlays.Add(GetOverlayMarkers(LUs, " GroupsMarkers", GMarkerGoogleType.blue));
Можно отображать / скрывать слои
gMapControl1.Overlays[0].IsVisibile = false;
Слой добавлен, теперь просто обновляем контрол
gMapControl1.Update();// обновить контрол
На выходе получаем карту с нанесенными на нее маркерами
Тепловая карта
Изначально хотелось сделать тепловую карту по количеству маркеров в районах разных городов, но для этого придется искать и добывать координаты границ этих районов. А это больше труда и времени, а дедлайн, как всегда, уже позавчера, поэтому было придумано составлять карту по концентрациям в тайлах. Чтобы это хорошо смотрелось, тайлы лучше брать меньшего размера, чем для нынешнего зума. И из таких соображений я делаю набор слоев для каждого зума, и при изменении зума меняю слой.
Код создания слоев с цветными полигонами:
public void GetHeatMap(List<Us> LUs, string name, bool AllCoord = true)
{
MercatorProjection mercatorProjection = new MercatorProjection(); // класс с функциями https://github.com/radioman/greatmaps/blob/master/GMap.NET.Core/GMap.NET.Projections/MercatorProjection.cs#L73
for (int myZoom = gMapControl1.MinZoom + 3; myZoom <= gMapControl1.MaxZoom + 3; myZoom++)
{
GMapOverlay gMapOverlay = new GMapOverlay(name + myZoom); // создание слоя с именем включающий зум
int tileSizePx = (int)mercatorProjection.TileSize.Height; //размер тайла
List<GPoint> gPoints = new List<GPoint>();//список точек
foreach (Us us in LUs)
{
if (AllCoord)
{
foreach (Coordinat coordinat in us.сoordinates)
{
GPoint pixelCoord = mercatorProjection.FromLatLngToPixel(coordinat.lat, coordinat.lon, myZoom);
gPoints.Add(new GPoint(pixelCoord.X / tileSizePx * tileSizePx, pixelCoord.Y / tileSizePx * tileSizePx));
}
}
else
{
GPoint pixelCoord = mercatorProjection.FromLatLngToPixel(us.сoordinates[0].lat, us.сoordinates[0].lon, myZoom);//из широты долготы в пиксели
gPoints.Add(new GPoint(pixelCoord.X / tileSizePx * tileSizePx, pixelCoord.Y / tileSizePx * tileSizePx));
}
}
var group = gPoints.GroupBy(r => r).ToList();
int TileMaxCount = group.Max(r => r.Count());// максимальное содержание маркеров на тайле
foreach (var item in group)
{
int minus = Convert.ToInt32(155 * item.Count() / TileMaxCount);//сколько вычитать из РГБ
if (minus == 0) { minus++; }
Color color = Color.FromArgb(200, 255, 155 - minus, 155 - minus);// задаем цвет для использования
List<PointLatLng> pointLatLngs = new List<PointLatLng>()
{
mercatorProjection.FromPixelToLatLng(item.Key, myZoom),
mercatorProjection.FromPixelToLatLng(item.Key.X+tileSizePx, item.Key.Y, myZoom),
mercatorProjection.FromPixelToLatLng(item.Key.X+tileSizePx, item.Key.Y+tileSizePx, myZoom),
mercatorProjection.FromPixelToLatLng(item.Key.X, item.Key.Y+tileSizePx, myZoom)
}; //создаем список точек для полигона
GMapPolygon gMapPolygon = new GMapPolygon(pointLatLngs, item.Key.ToString()); //создаем полигон из списка точек
gMapPolygon.Fill = new SolidBrush(color);// заливка
gMapPolygon.Stroke = new Pen(color, -1); // рамка
gMapPolygon.IsVisible = true; // видимость
gMapOverlay.Polygons.Add(gMapPolygon); // добавляем полигон
}
gMapControl1.Overlays.Add(gMapOverlay);// добавляем слой
GC.Collect();// сбор мусора
}
}
Код при изменении зума:
private void gMapControl1_OnMapZoomChanged()
{
if (AllPolygonsToolStripMenuItem.CheckState == CheckState.Checked)
{
CheckHeatMap("AllPolygons");
gMapControl1.Update();
}
}
Код функции:
private void CheckHeatMap(string name)
{
foreach (GMapOverlay gMapOverlay in gMapControl1.Overlays.Where(r => r.Id.Contains("Polygons")))
{
gMapOverlay.IsVisibile = false;
}// все слои содержащие слово полигон невидимы
if (name != null)
{
name += gMapControl1.Zoom + 3;
GMapOverlay gMapOverlaySearch = gMapControl1.Overlays.Where(r => r.Id == name).FirstOrDefault();
gMapControl1.Overlays.Where(r => r.Id == name).FirstOrDefault().IsVisibile = true;//видимость слоя с заданным именем
}
}
При приближении размер тайлов меняется:
Заключение
В статье показано как начать знакомство с GMap: работать со слоями, тайлами, полигонами и добавлять маркеры. Надеюсь, идеи и код, изложенные в статье, будут полезны при решении ваших задач.
Также предлагаю заглянуть:
Gmap.Net Beginners Tutorial
OpenStreetMap в Visual Studio 2017. GMap.Net
На чтение 5 мин Просмотров 29.6к. Опубликовано 03.09.2021
Как найти потерянную банковскую карту? С такой ситуацией сталкивались многие люди – банковская карта имеет очень компактный размер и ее довольно легко потерять. Многие люди кладут карту в карман брюк, рядом с телефоном, забывают ее в банкомате, во время уборки прячут карту между – ситуаций может быть много. Как можно найти банковскую карту если потерял? Рассмотрим известные способы на страницах журнала bankovskie-karty.ru.
Содержание
- Как найти потерянную банковскую карту
- Как можно найти банковскую карту если потерял
- Как найти банковскую карту если потерял дома
- Как найти банковскую карту если потерял Сбербанк
Как найти потерянную банковскую карту
Прежде всего удостоверьтесь, что карта действительно потерялась. Искать потерянную карту не стоит затраченных усилий и времени. Гораздо важнее сохранить деньги на ней. Если вы убеждены, что карта правда утрачена (а не забыта дома), то предотвратить финансовые потери поможет срочная блокировка.
Если карту заблокировать не удалось, можно отслеживать только информацию по ней посредством push-уведомлений; СМС-оповещений (услуга подключается заранее). Факт оплаты покупок в магазине или снятия наличных в банкомате автоматически выдаст местоположение того, кто пользуется картой.
Поэтому для определения геолокации вора достаточно проверить последние платежи по карте, используя онлайн-банк; мобильное приложение; выписку по счету, полученную через банкомат или в отделении банка. Как только получено подтверждение несанкционированного списания денег, нужно позвонить в банк. Если действовать быстро, то есть шанс вернуть похищенные средства.
Как можно найти банковскую карту если потерял
Если к карточке была привязана услуга СМС- или PUSH-уведомлений, то сразу после каждой транзакции (снятие наличных, перечисление денег, оплата покупки в магазине и др.) держатель будет получать соответствующее сообщение.
Определить карточку можно через мобильное приложение; с помощью Интернет-банкинга;по выписке, полученной в отделении банка или через банкомат. В каждом случае будет видно, где и когда была совершена расходная операция по счету (в выписке по всем типам транзакций указывается адрес магазина или устройства самообслуживания). О зафиксированном местонахождении злоумышленника следует немедленно сообщить в правоохранительные органы.
Услуга мобильной геолокации – новый вид защиты пластиковых карт. У международных платежных систем есть сервисы геолокации, которые позволяют отслеживать перемещение держателей пластиковых карт MasterCard – MasterCard and Syniverse; Visa Inc. – Visa Mobile Location Confirmation.
Благодаря этому клиенту не обязательно уведомлять банк о своем перемещении – система будет автоматически фиксировать данные о местоположении телефона пользователя во время оплаты услуг картой.
Одновременно такие меры помогут предотвратить мошенничество и несанкционированные транзакции в случае кражи карты: сотрудники банка смогут легко определить, кто осуществляет операцию – владелец счета; или неавторизованный пользователь. Эта функция будет включена в приложение онлайн-банкинга с письменного согласия владельца карты (иначе опция не активируется).
Как найти банковскую карту если потерял дома
Сначала надо все сделать, чтобы его заблокировать. После этого, попытаться отыскать. Дальше не паниковать. Нужно все подробно вспомнить, когда последний раз вы ее использовали.Часто случается, что клиент производил оплату некоторых услуг через компьютер, оставил ее возле клавиатуры, и она случайно, с помощью любого предмета, который находится на столе (книга, ручка, очки и др.) попала под нее.
Тогда поступают таким образом: делают генеральную уборку квартиры. Случается, что таким образом находятся водительские права, ключи от квартиры или с работы, нужный документ, квитанция и т.д. Ведь они могут находиться под диваном, за кроватью, мягким креслом.
Часто пользуются таким методом поиска: все члены семьи тщательно проверяют свою одежду, барсетки, сумочки, портмоне. Если это не удастся, обращаться в свое отделение, где специалисты подскажут, как дальше вам поступать.
Как найти банковскую карту если потерял Сбербанк
Утеря банковской карты предполагает негативные последствия для ее владельца. Основное из них заключается в том, что доступ к денежным средствам могут получить третьи лица. По некоторым картам платежные системы устанавливают лимиты, в рамках которых можно совершать покупки в магазинах без ввода пин-кода.
По большинству показателей Сбербанк занимает первое место в отечественном банковском сегменте. Но ни здесь, ни в каком-либо другом банке нет функционала, при помощи которого можно было бы найти карту при утере.
Эмитент может отследить, где территориально была совершена последняя операция: покупка в магазине, платежи и переводы в банкомате. Если операция не совершалась, то даже примерное местонахождение карты отследить будет невозможно.
Советуем почитать: Как узнать статус дебетовой карты
Проблему с поиском банковской карты клиент решает самостоятельно. При этом следует помнить, что первое действие — это блокировка. В настоящее время проблем с внеплановым перевыпуском нет. Золотые и платиновые линейки перевыпускаются Сбербанком бесплатно. Стоимость досрочного выпуска стандартных карт колеблется от 30 рублей до 250 рублей.
Источники:
- https://bankiros.ru/questions/mozhno-li-otsledit-bankovskyu-kartu
- https://yandex.ru/q/question/kak_naiti_kartu_sberbanka_esli_poterial_730dd631/
- http://moneyinvesto.com/kak-najti-bankovskuju-kartu-doma.html
- https://plusfinance.ru/sovety/kak-otsledit-kartu-sberbanka/
Post Views: 15 528
Если нравится – подписывайтесь на телеграм-канал Бробанк.ру и не пропускайте новости
Высшее образование в Международном Восточно-Европейском Университете по направлению “Банковское дело”. С отличием окончила Российский экономический институт имени Г.В. Плеханова по профилю “Финансы и кредит”. Десятилетний опыт работы в ведущих банках России: Альфа-Банк, Ренессанс Кредит, Хоум Кредит Банк, Дельта Кредит, АТБ, Связной (закрылся). Является аналитиком и экспертом сервиса Бробанк по банковской деятельности и финансовой стабильности. rusanova@brobank.ru
Открыть профиль
Что делать в случае утери карты Сбербанка
Утеря банковской карты предполагает негативные последствия для ее владельца. Основное из них заключается в том, что доступ к денежным средствам могут получить третьи лица. Сервис Brobank.ru напоминает, что по некоторым картам платежные системы устанавливают лимиты, в рамках которых можно совершать покупки в магазинах без ввода пин-кода.
-
Что делать в случае утери карты Сбербанка
-
Как найти карту Сбербанка, если потерял
-
Как найти карту Сбербанка по GPS
-
Технологии Visa Mobile Location Confirmation и MasterCard and Syniverse
-
Как снять деньги с потерянной карты Сбербанка
-
Перевод в Сбербанк Онлайн
-
Использование банкомата Сбербанка
-
Снятие наличных в офисе
Это означает, что лицо, нашедшее карту, сможет совершить покупку, не зная пин-кода. VISA и Mastercard установили лимит в размере 3000 рублей и 1000 рублей соответственно. При этом ограничений на количество подобных операций — нет. При утере карты первое, что необходимо сделать держателю, — заблокировать ее. Для этого предусмотрено несколько каналов:
- СМС-банк — отправить сообщение на номер 900 с текстом «блокировка 1234 0», где вместо примера указываются последние четыре цифры номера карты + причина блокировки.
- Мобильное приложение или веб-версия Сбербанк Онлайн — блокировка активируется в настройках карты.
- Звонок в банк — на короткий номер 900.
Чем быстрее пользователь воспользуется функцией блокировки, тем ниже вероятность потери денежных средств с баланса карты. Если пластик впоследствии будет найден, блокировка снимается любым из доступных способов.
Как найти карту Сбербанка, если потерял
По большинству показателей Сбербанк занимает первое место в отечественном банковском сегменте. Но ни здесь, ни в каком-либо другом банке нет функционала, при помощи которого можно было бы найти карту при утере.
Эмитент может отследить, где территориально была совершена последняя операция: покупка в магазине, платежи и переводы в банкомате. Если операция не совершалась, то даже примерное местонахождение карты отследить будет невозможно.
Следовательно, проблему с поиском банковской карты клиент решает самостоятельно. При этом следует помнить, что первое действие — это блокировка. В настоящее время проблем с внеплановым перевыпуском нет. Золотые и платиновые линейки перевыпускаются Сбербанком бесплатно. Стоимость досрочного выпуска стандартных карт колеблется от 30 рублей до 250 рублей. Клиент может заказать выпуск любого другого продукта по номинальной стоимости.
Как найти карту Сбербанка по GPS
Некоторые пользователи уверены, что банковская карта обладает функционалом, благодаря которому ее можно найти или отследить. Такие механизмы теоретически могут быть разработаны, но на практике в этом нет надобности. Причины этого следующие:
- В любой момент карту можно заблокировать — действующая блокировка снимет все вопросы относительно сохранности денежных средств.
- Стоимость проекта — внедрение подобного механизма обойдется банкам, платежным системам и разработчикам достаточно дорого.
Еще одной причиной, по которой подобная технология станет неконкурентоспособной, заключается в повышении стоимости выпуска и обслуживания банковских карт. Продукты станут оснащаться дополнительными опциями, что повлечет увеличение расходов компании-эмитента. При этом существуют системы, которые позволяют банкам отслеживать местонахождение клиента и карты.
Технологии Visa Mobile Location Confirmation и MasterCard and Syniverse
Платежные системы VISA и Mastercard разработали решения, позволяющие следить за перемещением владельца карты. Ни о какой тотальной слежке речи нет, так как система заключается в следующем:
- Скачивается специальное мобильное приложение.
- В приложение добавляется карта.
- После совершения указанных действий происходит синхронизация карты и мобильного устройства.
В результате этого эмитент банк-эмитент может блокировать операции, если клиент и карта окажутся далеко друг от друга. К примеру, клиент с телефоном находится в одном городе, а картой пытаются расплатиться в другом — банк в целях безопасности заблокирует подобную операцию.
В 2016 году подобную технологию планировала внедрить НСПК МИР. Возникшие сомнения в ее эффективности вполне логичны: если держатель находится в Москве, а постороннее лицо воспользуется картой так же в столице, то система не сработает. При колоссальном бюджете этот проект изначально был обречен на провал, поэтому он остался нереализованным.
Как снять деньги с потерянной карты Сбербанка
Держателю доступны несколько способов снятия денежных средств с потерянной карты Сбербанка. Важно учитывать момент с блокировкой: все операции по заблокированным картам автоматически приостанавливаются. Доступные способы снятия денег:
- Онлайн-перевод — в мобильном приложении или веб-версии Сбербанк Онлайн можно перевести деньги на дебетовую или кредитную карту любого банка.
- Использование банкомата Сбербанка — если в смартфоне подключена технология NFC.
- Визит в отделение Сбербанка на территории домашнего региона.
Независимо от используемого способа, при потере пластика рекомендуется его сразу блокировать. Активная блокировка делает саму карту бесполезной в использовании. При снятии денег первыми двумя способами из приведенного списка блокировка снимается. В офисах Сбербанка наличные снимаются через кассу, поэтому наличие или отсутствие блокировки не имеет значения.
Перевод в Сбербанк Онлайн
Карта — это физический носитель для управления карточным счетом. Ее потеря (фактическое отсутствие) не влияет на возможность совершать операции в интернет-банке. Операция выполняется по стандартному сценарию:
- Перейти в «Платежи» и выбрать направление перевода — клиенту Сбербанка или отправка на карту в другой банк.
- Выбрать получателя или ввести реквизиты банковской карты — в зависимости от направления операции.
- Ввести сумму и активировать перевод.
В Сбербанк Онлайн можно отслеживать историю операций. Если картой успели воспользоваться третьи лица, то операция отразится в истории. После совершения перевода карту следует заблокировать. Бробанк.ру напоминает, что блокировка не подразумевает одновременное закрытие карты. Карточный счет закрывается путем подачи заявления в банк. Это в том случае, если клиент не планирует в дальнейшем пользоваться услугами Сбербанка.
Использование банкомата Сбербанка
Технология NFC позволяет совершать операции бесконтактно. У большинства кредитных организаций стала доступна услуга снятия наличных в банкомате без карты. Для этого смартфон пользователя должен поддерживать данную технологию. У Сбербанка не все устройства самообслуживания оснащены NFC. Если на корпусе банкомата или в районе клавиатуры есть наклейка (логотип) Near Field Communication, то для снятия денег потребуется:
- Открыть карту в смартфоне и поднести его к считывающему устройству.
- Ввести пин-код.
- В меню банкомата выбрать операцию выдачи наличных.
Если данные введены верно, устройство выдаст указанную пользователем сумму. После снятия наличных пластик необходимо заблокировать любым из доступных способов. В зависимости от вида карты действуют ограничения на дневное снятие. Оставшуюся сумму можно запросить в отделении Сбербанка.
Снятие наличных в офисе
При утере карты Сбербанка деньги можно снять в отделении. Для этого необходимо взять с собой паспорт (иной документ, удостоверяющий личность) и воспользоваться помощью специалистов кредитной организации. После идентификации клиента наличные выдаются через кассу банка.
Здесь же при необходимости можно воспользоваться дополнительными услугами: заблокировать пластик, закрыть карточный счет (подать заявление на закрытие), заказать досрочный перевыпуск. Новый физический носитель готовится в течение 3-5 дней, о чем клиент получает персональное уведомление.