Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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();
                        }
                    }
                }
            }
        }