C#: GMap.Net.Core создание маркеров на основе записей в БД

В наличии таблица MS SQL, которая содержит колонки:

PointsName NVARCHAR(50)//Название точки
PointsNameRus NVARCHAR(50)//название точки на русском
Longitude FLOAT// координата долготы
Latitude FLOAT // координата широты 
PointsImg IMAGE //изображение с иконкой точки

Задача: создать маркеры на карте на основании данных из таблицы


Ответы (1 шт):

Автор решения: sky_diez

В примере используется работа с данными с помощью Ado.net:

private void ShowMarkers()
{
    GMapOverlay markers_layer = new GMapOverlay("markers"); // Создаем слой
    forMapTableAdapter1.Fill(skyDBDataSet1.ForMap);// загружаем таблицу с точками и координатами 
    //здесь ForMap - таблица в БД, 
    //skyDBDataSet1 - класс Ado.net для работы с БД, 
    //forMapTableAdapter1 - TableAdapter для работы с таблицей
    foreach (DataRow row in skyDBDataSet1.ForMap.Rows) //перебираем строки в таблице
    {
        double longitude = (double)row["Longitude"]; //получаем значение долготы из таблицы
        double latitude = (double)row["Latitude"]; //получаем значение широты из таблицы
        string point_name = row["PointsNameRus"].ToString(); // получаем название точки из таблицы
        string point_type_name = row["PointsTypeName"].ToString();
        MemoryStream ms = new MemoryStream((byte[])row["PointsTypeImg"]);//получаем изображение из БД и переводим в MemoryStream
        Bitmap bitmap = (Bitmap)Bitmap.FromStream(ms); //переводим MemoryStream в понятный GMap Bitmap 
        GMapMarker marker = new GMarkerGoogle(new PointLatLng(longitude, latitude), bitmap); //создаём маркер и присваиваем ему наше изображение
        markers_layer.Markers.Add(marker);// Добавляем маркер на слой
        marker.ToolTipText = "\n" + point_name; // задаем всплывающую подсказку с названием
        gMapControl1.Overlays.Add(markers_layer);// Добавляем слой на карту
    }
}
→ Ссылка