public void AddMarker(UserMarker userMarker) { _dataContext.UserMarkers.Add(userMarker); try { _dataContext.SaveChanges(); } catch { // ignored } }
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(); }
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()); }
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)); } }
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(); }
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); }