public void AddMarker(UserMarker userMarker)
        {
            _dataContext.UserMarkers.Add(userMarker);

            try
            {
                _dataContext.SaveChanges();
            }
            catch
            {
                // ignored
            }
        }
Esempio n. 2
0
 public override void Resume(StateExitValue results)
 {
     Debug.Log("Resume FetchUserData");
     if (results != null)
     {
         if (results.sourceState == typeof(WaitingForDBLoad <UserMarker>))
         {
             var resultData = results.data as WaitingForDBLoad <UserMarker> .Results;
             if (resultData.wasSuccessful)
             {
                 if (resultData.results != null)
                 {
                     // Got some results back!  Use this data.
                     // CommonData.currentUserMarker = new DBStruct<UserMarker>(
                     //     CommonData.DBUserTablePath + userID, CommonData.app);
                     // CommonData.currentUserMarker.Initialize(resultData.results);
                     // Debug.Log("Fetched user " + CommonData.currentUserMarker.data.name);
                 }
                 else
                 {
                     // Make a new user, using default credentials.
                     Debug.Log("Could not find user " + userID + " - Creating new profile.");
                     UserMarker temp = new UserMarker();
                     temp.name = StringConstants.DefaultUserName;
                     temp.id   = userID;
                     //  CommonData.currentUserMarker = new DBStruct<UserMarker>(
                     //    CommonData.DBUserTablePath + userID, CommonData.app);
                     //  CommonData.currentUserMarker.Initialize(temp);
                     //  CommonData.currentUserMarker.PushData();
                 }
             }
             else
             {
                 // Can't fetch data.  Assume internet problems, stay offline.
                 CommonData.currentUser = null;
             }
         }
     }
     // Whether we successfully fetched, or had to make a new user,
     // return control to the calling state.
     manager.PopState();
 }
Esempio n. 3
0
        private void NavigationView_Load(object sender, EventArgs e)
        {
            MainMap.Manager.Mode = AccessMode.CacheOnly;
            PointLatLng p = new PointLatLng(0.0, 0.0);

            // map center
            center = new GMapMarkerCross(MainMap.Position);
            objects.Markers.Add(center);
            MainMap.Position            = p;
            NodeMarker                  = new UserMarker(p);
            NodeMarker.IsHitTestVisible = true;
            objects.Markers.Add(NodeMarker);
            NodeMarker.ToolTip     = new MapToolTip(NodeMarker);
            NodeMarker.ToolTipMode = MarkerTooltipMode.Always;
            PointLatLng gpspos = NodeMarker.Position;
            string      lngstr, latstr;

            if (gpspos.Lng > 0)
            {
                lngstr = gpspos.Lng.ToString("F06") + " E";
            }
            else
            {
                lngstr = (-gpspos.Lng).ToString("F06") + " W";
            }
            if (gpspos.Lat > 0)
            {
                latstr = gpspos.Lat.ToString("F06") + " N";
            }
            else
            {
                latstr = (-gpspos.Lat).ToString("F06") + " S";
            }
            NodeMarker.ToolTipText = "GPS\r\n经度=" + lngstr + "\r\n纬度=" + latstr;
            MainMap.MapType        = MapType.None;
            MainMap.MinZoom        = 1;
            MainMap.MaxZoom        = 18;
            MainMap.Zoom           = 15;
            MainMap.MapName        = MapTitle;
            ShowTrack.PerformClick();
            AutoTrack.PerformClick();
        }
        public IActionResult Index([FromBody] UserMarkerRequest request)
        {
            var user = _userRepository.GetValidUser(request.Token);

            if (user == null)
            {
                throw new Exception("User does not exist");
            }

            var marker = _markerRepository.Get(request.Marker);

            if (marker == null)
            {
                throw new Exception("Marker does not exist");
            }

            var claim = HttpContext.User?.Claims.FirstOrDefault(q => q.Type == ClaimTypes.NameIdentifier)?.Value;

            if (!string.IsNullOrEmpty(claim))
            {
                var requestedUser = _markerRepository.GetRequestedUser(request.Token);
                if (requestedUser == null || requestedUser.Email != claim)
                {
                    throw new SecurityException("Operation is not permitted.");
                }
            }

            var userMarker = new UserMarker
            {
                UserId   = user.Id,
                MarkerId = marker.Id,
                DateTime = DateTime.UtcNow
            };

            _markerRepository.AddMarker(userMarker);

            return(Ok());
        }
Esempio n. 5
0
        public IActionResult GetMapMarker([FromBody] GetMapMarkerModel model)
        {
            var userRoomMarker = _context.UserRoom.ToList().FindAll(ur => ur.RoomId == model.RoomId);

            List <UserMarker> userMarkers = new List <UserMarker>();

            foreach (var item in userRoomMarker)
            {
                if (item.Latitude != null && item.Longitude != null)
                {
                    UserMarker userMarker = new UserMarker(userManager.FindByIdAsync(item.UserId).Result.UserName, item.Latitude, item.Longitude);
                    userMarkers.Add(userMarker);
                }
            }

            if (userMarkers.Count == 0)
            {
                return(null);
            }
            else
            {
                return(Json(userMarkers));
            }
        }
Esempio n. 6
0
        private void NavigationView_Load(object sender, EventArgs e)
        {
            MainMap.Manager.Mode = AccessMode.CacheOnly;
            PointLatLng p = new PointLatLng(0.0, 0.0);

            // map center
            center = new GMapMarkerCross(MainMap.Position);
            objects.Markers.Add(center);
            MainMap.Position = p;
            NodeMarker = new UserMarker(p);
            NodeMarker.IsHitTestVisible = true;
            objects.Markers.Add(NodeMarker);
            NodeMarker.ToolTip = new MapToolTip(NodeMarker);
            NodeMarker.ToolTipMode = MarkerTooltipMode.Always;
            PointLatLng gpspos = NodeMarker.Position;
            string lngstr, latstr;
            if (gpspos.Lng > 0)
                lngstr = gpspos.Lng.ToString("F06") + " E";
            else
                lngstr = (-gpspos.Lng).ToString("F06") + " W";
            if (gpspos.Lat > 0)
                latstr = gpspos.Lat.ToString("F06") + " N";
            else
                latstr = (-gpspos.Lat).ToString("F06") + " S";
            NodeMarker.ToolTipText = "GPS\r\n经度=" + lngstr + "\r\n纬度=" + latstr;
            MainMap.MapType = MapType.None;
            MainMap.MinZoom = 1;
            MainMap.MaxZoom = 18;
            MainMap.Zoom = 15;
            MainMap.MapName = MapTitle;
            ShowTrack.PerformClick();
            AutoTrack.PerformClick();
            
        }
Esempio n. 7
0
        private void SetRouteForm_Load(object sender, EventArgs e)
        {
            UtilityClass.CopyHashTableStringList(mf.NodeNetMap, NewNetMap);
            UtilityClass.CopyHashTableStringListArray(mf.NodeRouteMap, NewRouteMap);
            UtilityClass.CopyHashTableString(mf.DistMap, DistMap);
            double v = 0.5;

            // config map
            string[] str = { "地图配置", "地图中心", "纬度" };
            double   lat = double.Parse(XmlHelper.GetConfigValue(xmldoc, str));

            string[]    lngstr = { "地图配置", "地图中心", "经度" };
            double      lng    = double.Parse(XmlHelper.GetConfigValue(xmldoc, lngstr));
            PointLatLng p      = new PointLatLng(lat, lng);

            // set node marker

            p.Offset(GpsToGmapOffset);
            routemap.Position           = p;
            NodeMarker                  = new UserMarker(p);
            NodeMarker.IsHitTestVisible = true;
            objects.Markers.Add(NodeMarker);
            NodeMarker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
            CultureInfo ci     = new CultureInfo("en-us");
            PointLatLng gpspos = NodeMarker.Position;

            gpspos.Offset(GmapToGpsOffset);
            NodeMarker.ToolTipText = "GPS\r\n{经度=" + gpspos.Lng.ToString("F08", ci) + ",纬度=" + gpspos.Lat.ToString("F08", ci) + "}";
            string[] offsetstr  = { "地图配置", "偏移校准", "纬度" };
            string[] offsetstr1 = { "地图配置", "偏移校准", "经度" };
            string   offset     = XmlHelper.GetConfigValue(xmldoc, offsetstr);
            double   latoffset  = 0;
            double   lngoffset  = 0;

            if (offset != null)
            {
                latoffset = double.Parse(offset);
            }
            offset = XmlHelper.GetConfigValue(xmldoc, offsetstr1);
            if (offset != null)
            {
                lngoffset = double.Parse(offset);
            }
            if ((lngoffset != 0) && (latoffset != 0))
            {
                GmapToGpsOffset = new PointLatLng(latoffset, lngoffset);
                GpsToGmapOffset = new PointLatLng(-latoffset, -lngoffset);
            }

            routemap.MapType = mf.MainMap.MapType;
            routemap.MinZoom = 1;
            routemap.MaxZoom = 18;
            routemap.Zoom    = 16;
            routemap.MapName = "路由设置";


            gtl = new PointLatLng(lat + v, lng - v);
            gtl.Offset(GpsToGmapOffset);
            gbr = new PointLatLng(lat - v, lng + v);
            gbr.Offset(GpsToGmapOffset);

            //读取节点
            XmlDocument xmlfile = new XmlDocument();

            xmlfile.Load(xmldoc);
            XmlNode xn = xmlfile.DocumentElement;

            xn = xn.SelectSingleNode("descendant::节点配置");
            foreach (XmlNode subnode in xn.ChildNodes)
            {
                NodeBox.Items.Add(subnode.Name);
                string[] sstr    = { "节点配置", subnode.Name, "节点位置", "纬度" };
                double   slat    = double.Parse(XmlHelper.GetConfigValue(xmldoc, sstr));
                string[] lngsstr = { "节点配置", subnode.Name, "节点位置", "经度" };
                double   slng    = double.Parse(XmlHelper.GetConfigValue(xmldoc, lngsstr));
                //string[] desc = { "节点配置", subnode.Name, "节点描述" };
                //string strdes = XmlHelper.GetConfigValue(xmldoc, desc);
                PointLatLng pp = new PointLatLng(slat, slng);
                pp.Offset(GpsToGmapOffset);
                GMapMarkerGoogleGreen newnode = new GMapMarkerGoogleGreen(pp);
                newnode.Tag              = subnode.Name;
                newnode.ToolTipMode      = MarkerTooltipMode.Always;
                newnode.IsHitTestVisible = true;
                pp.Offset(GmapToGpsOffset);
                newnode.ToolTipText = newnode.Tag.ToString();
                WebNodeLayer.Markers.Add(newnode);
            }

            if (objects.Markers.Count > 0)
            {
                routemap.ZoomAndCenterMarkers(null);
                //ZoomSlider.Value = (int)MainMap.Zoom;
            }

            //AddRoutes();
            AddNet();
            RefreshNetGrid();//更新网络表
            //注册网络表改变事件
            Net.Routes.CollectionChanged += new GMap.NET.ObjectModel.NotifyCollectionChangedEventHandler(Net_CollectionChanged);
        }