Не удалось получить событие Click для GMapMarkerCircle в Gmap.net

Я использую встроенный в Gmap.net класс GMapMarkerCircle, чтобы показать круг, обозначающий вершины многоугольника. Мне нужно предоставить пользователям возможность изменять размер многоугольника, перемещая эти круглые маркеры. Моя проблема в том, что я не могу получить какое-либо событие для GMapMarkerCircle. Я использую следующий код до сих пор...

        GMapOverlay overlay = new GMapOverlay();
        // Create all circles
        List<PointLatLng> listVertexPoints = Get_VertexPoints(zoneVertex);           
        // Create Polygon
        GMapPolygon zonePolygon;
        zonePolygon = new GMapPolygon(listVertexPoints, zoneName);
        zonePolygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));
        zonePolygon.Stroke = new Pen(zoneBoundaryColor, 1);
        zonePolygon.IsFilled = true;
        zonePolygon.IsHitTestVisible = true;
        overlay.Polygons.Add(zonePolygon);
        foreach (PointLatLng vertex in listVertexPoints)
        {
            GMapMarkerCircle circleVertex = new GMapMarkerCircle(vertex, 1, 1, 1, 1, Color.Red, 1);// GMarkerGoogle(vertex, GMarkerGoogleType.blue_pushpin);
            circleVertex.IsVisible = true;
            circleVertex.IsHitTestVisible = true;
            overlay.Markers.Add(circleVertex);
        }
        this.MainMap.Overlays.Add(overlay);
        this.MainMap.Invalidate();

Пожалуйста, помогите мне найти событие для этих круглых маркеров.

Заранее спасибо!


person Community    schedule 10.07.2018    source источник
comment
Какой пакет gmap.net nuget вы используете?   -  person γηράσκω δ' αεί πο    schedule 10.07.2018
comment
@γηράσκωδ'αείπολλάδιδασκόμε Я использую версию 1.7.5.0   -  person    schedule 11.07.2018
comment
Добавьте прямоугольный многоугольник вокруг каждого маркера, чтобы вы могли получать события мыши. Или создайте класс, который наследуется от маркера Google, чтобы получить событие бесплатно. Однако размер маркера Google фиксирован.   -  person γηράσκω δ' αεί πο    schedule 13.07.2018


Ответы (1)


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

gMapControl1.OnMarkerClick += new MarkerClick(gMapControl1_OnMarkerClick);

void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{

}

срабатывает при нажатии на один из маркеров. Затем вы можете обнаружить, что кнопка мыши удерживается нажатой, и использовать ее для перетаскивания маркера в новое место.

person T James    schedule 07.08.2018