private void newRoute() { GMapRoute route = new GMapRoute(somePoints, "newroute"); route.Stroke = currentGroup.Pen; _Dh.getOverlay(TheMap, currentGroup).Routes.Add(route); //Removing temporary markers for (int i = recycleIndexes.Count - 1; i >= 0; i--) { _Dh.getOverlay(TheMap, currentGroup).Markers.RemoveAt(i); } //Route = route, Coordinates = point.Lat + ":" + point.Lng + ";" GeoCoderStatusCode status; var dlgResult = new FrmObjInfo(new xObject() { Route = route, Uid = _Dh.myAccount.Id, ObGroupId = currentGroup.Id, Coordinates = somePoints, C_Date = _Dh.rightNow, Placemark = GMapProviders.OpenStreet4UMap.GetPlacemark(somePoints[0], out status).Value.Address }); dlgResult.ShowDialog(); if (dlgResult.DialogResult != System.Windows.Forms.DialogResult.OK) { } RefreshUI(); }
private void newPolygon() { GMapOverlay ov = _Dh.getOverlay(TheMap, currentGroup); var polygon = new GMapPolygon(somePoints, "mpolygon"); polygon.Fill = new SolidBrush(Color.FromArgb(50, currentGroup.Pen.Color)); polygon.Stroke = currentGroup.Pen; polygon.IsHitTestVisible = true; ov.Polygons.Add(polygon); //Removing temporary markers for (int i = recycleIndexes.Count - 1; i >= 0; i--) { ov.Markers.RemoveAt(i); } GeoCoderStatusCode status; var fObjInfo = new FrmObjInfo(new xObject() { Polygon = polygon, Uid = _Dh.myAccount.Id, ObGroupId = currentGroup.Id, Coordinates = somePoints, C_Date = _Dh.rightNow, Placemark = GMapProviders.OpenStreet4UMap.GetPlacemark(somePoints[0], out status).Value.Address }); fObjInfo.ShowDialog(); RefreshUI(); }
private void editObject(xObject obj) { // Check if user has Edit permissions for this group of objects if (_Dh.getGroupAccessLevel(_Dh.getGroupById(obj.ObGroupId)).CompareTo(_Dh.AccessLevel.Edit) < 0) { _Dh.msgExclamation("У вас на достаточно привилегий"); return; } // Show markers of polygons if (wObject.Polygon != null && _Dh.getGroupById(obj.ObGroupId).GroupType == ObjectType.POLYGON) { for (int i = 0; i < wObject.Polygon.Points.Count; i++) { GMapMarker m = new GMarkerGoogle(wObject.Polygon.Points[i], GMarkerGoogleType.green_pushpin) { Tag = (i) + "", IsVisible = true, ToolTipMode = MarkerTooltipMode.Always }; wObject.Polygon.Overlay.Markers.Add(m); TheMap.UpdateMarkerLocalPosition(m); } TheMap.UpdatePolygonLocalPosition(wObject.Polygon); } // Show markers of route if (wObject.Route != null && _Dh.getGroupById(obj.ObGroupId).GroupType == ObjectType.ROUTE) { for (int i = 0; i < wObject.Route.Points.Count; i++) { GMapMarker m = new GMarkerGoogle(wObject.Route.Points[i], GMarkerGoogleType.green_pushpin) { Tag = (i) + "", IsVisible = true, ToolTipMode = MarkerTooltipMode.Always }; wObject.Route.Overlay.Markers.Add(m); TheMap.UpdateMarkerLocalPosition(m); } TheMap.UpdateRouteLocalPosition(wObject.Route); } var fObjInfo = new FrmObjInfo(obj); fObjInfo.Show(); if (_Dh.myAccount.IsModerator) { isEditMode = true; } // RefreshUI(); }
private void TheMap_MouseClick(object sender, MouseEventArgs e) { /* Don't use those, 'cause no one uses! * Recalculate gRecalculations = new Recalculate(); * var lat = gRecalculations.SK42_WGS84_Lat(point.Lat, point.Lng, 0); * var lng = gRecalculations.WGS84_SK42_Long(point.Lat, point.Lng, 0); */ // MessageBox.Show(GeoAngle.FromDouble(point.Lat).ToString() + "\r\n" + GeoAngle.FromDouble(point.Lng).ToString()); if (isbtnNewObjectClicked) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { switch (currentGroup.GroupType) { case ObjectType.DOT: { cmbObGroups.Enabled = true; GMarkerGoogle marker; PointLatLng point = TheMap.FromLocalToLatLng(e.X, e.Y); if (currentGroup.Appendix.Length > 5) { Bitmap bmp; using (var ms = new MemoryStream(Convert.FromBase64String(currentGroup.Appendix))) { bmp = new Bitmap(ms); } marker = new GMarkerGoogle(point, bmp); } else { marker = new GMarkerGoogle(point, GMarkerGoogleType.green); } TheMap.Overlays[cmbObGroups.SelectedIndex].Markers.Add(marker); TheMap.UpdateMarkerLocalPosition(marker); isbtnNewObjectClicked = false; GeoCoderStatusCode status; var fObjInfo = new FrmObjInfo(new xObject() { Coordinates = new List <PointLatLng>() { point }, ObGroupId = currentGroup.Id, C_Date = _Dh.rightNow, Placemark = GMapProviders.OpenStreet4UMap.GetPlacemark(point, out status).Value.Address }); if (fObjInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK) { MarkerTooltipMode mode = MarkerTooltipMode.Always; marker.ToolTip = new GMapBaloonToolTip(marker); marker.ToolTipMode = mode; Brush ToolTipBackColor = new SolidBrush(Color.Transparent); marker.ToolTipText = wObject.Name; wObject.Marker = marker; } RefreshUI(); break; } case ObjectType.ROUTE: { somePoints.Add(TheMap.FromLocalToLatLng(e.X, e.Y)); _Dh.getOverlay(TheMap, currentGroup).Markers.Add(new GMarkerCross(TheMap.FromLocalToLatLng(e.X, e.Y)) { IsVisible = true, ToolTipMode = MarkerTooltipMode.Always }); recycleIndexes.Add(_Dh.getOverlay(TheMap, currentGroup).Markers.Count - 1); break; } case ObjectType.POLYGON: { somePoints.Add(TheMap.FromLocalToLatLng(e.X, e.Y)); GMapOverlay ov = _Dh.getOverlay(TheMap, currentGroup); ov.Markers.Add(new GMarkerCross(TheMap.FromLocalToLatLng(e.X, e.Y)) { IsVisible = true, ToolTipMode = MarkerTooltipMode.Always }); recycleIndexes.Add(_Dh.getOverlay(TheMap, currentGroup).Markers.Count - 1); break; } } } if (e.Button == System.Windows.Forms.MouseButtons.Right) { DialogResult dr = _Dh.msgQuestion("Закончить выбор точек?"); if (dr == DialogResult.Yes) { cmbObGroups.Enabled = true; isbtnNewObjectClicked = false; if (currentGroup.GroupType == ObjectType.ROUTE) { newRoute(); } if (currentGroup.GroupType == ObjectType.POLYGON) { newPolygon(); } } } } }