private void setUserPlaneCoord(double coordx, double coordy, double rotation) { // --------------------------- User Plane live coordiantes and heading --------------------- var userPlaneGraphicsLayer = MyMap.Layers["UserAirplaneCoord"] as Esri.ArcGISRuntime.Layers.GraphicsLayer; if (userPlaneGraphicsLayer == null) { userPlaneGraphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer(); userPlaneGraphicsLayer.ID = "UserAirplaneCoord"; userPlaneGraphicsLayer.RenderingMode = Esri.ArcGISRuntime.Layers.GraphicsRenderingMode.Dynamic; MyMap.Layers.Add(userPlaneGraphicsLayer); } var pictureSym = new Esri.ArcGISRuntime.Symbology.PictureMarkerSymbol(); var path = System.IO.Path.Combine(Environment.CurrentDirectory, planeIcoUri); var uri = new Uri(path); pictureSym.SetSourceAsync(uri); pictureSym.Angle = rotation; pictureSym.Height = 50; pictureSym.Width = 50; var pointGraphic = new Esri.ArcGISRuntime.Layers.Graphic(); var mapPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(coordx, coordy, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84); pointGraphic.Geometry = mapPoint; pointGraphic.Symbol = pictureSym; userPlaneGraphicsLayer.Graphics.Add(pointGraphic); }
public async void ReverseGeocode() { try { var geoSpatialRef = new Esri.ArcGISRuntime.Geometry.SpatialReference(4326); var spatialRef = new Esri.ArcGISRuntime.Geometry.SpatialReference(102100); spatialRef.Wkt = "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0]]"; var mapPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(this.mapPoint.X, this.mapPoint.Y, spatialRef); var mapPointGeo = Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(mapPoint, geoSpatialRef) as Esri.ArcGISRuntime.Geometry.MapPoint; var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"); var token = String.Empty; var locator = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorTask(uri, token); var addressInfo = await locator.ReverseGeocodeAsync(mapPointGeo, 150, new System.Threading.CancellationToken()); if (addressInfo == null || addressInfo.AddressFields == null || addressInfo.AddressFields.Count == 0) { //really wrong approch, but I was to bored and to tired to fix it LocatorTask_Failed(this, "result is empty"); } else { LocatorTask_LocationToAddressCompleted(this, addressInfo.AddressFields); } }catch (Exception e) { LocatorTask_Failed(this, e.Message); } }
private static System.Spatial.GeographyPosition ToGeographyPosition(Esri.ArcGISRuntime.Geometry.MapPoint p) { return(new System.Spatial.GeographyPosition( p.Y, p.X, p.HasZ ? (double?)p.Z : null, p.HasM ? (double?)p.M : null )); }
public static CusDragEventArgs ConvertFrom(View.DragEventArgs e) { MapPoint mapPoint = _currentMapView.ScreenToLocation(new PointF(e.Event.GetX(), e.Event.GetY())); return(new CusDragEventArgs { Handled = e.Handled, Action = GetAction(e.Event.Action), Log = mapPoint.X, Lat = mapPoint.Y }); }
public static CusTouchEventArgs ConvertFrom(View.TouchEventArgs e) { MapPoint mapPoint = _currentMapView.ScreenToLocation(new PointF(e.Event.RawX, e.Event.RawY)); return(new CusTouchEventArgs { Handled = e.Handled, PointerCount = e.Event.PointerCount, Log = mapPoint.X, Lat = mapPoint.Y }); }
private static Microsoft.SqlServer.Types.SqlGeometry CreateGeometryPoint(Esri.ArcGISRuntime.Geometry.MapPoint p, int cs) { if (!p.HasZ && !p.HasM) { return(Microsoft.SqlServer.Types.SqlGeometry.Point(p.X, p.Y, cs)); } var b = new Microsoft.SqlServer.Types.SqlGeometryBuilder(); b.SetSrid(cs); b.BeginGeometry(Microsoft.SqlServer.Types.OpenGisGeometryType.Point); b.BeginFigure(p.X, p.Y, p.HasZ ? (double?)p.Z : null, p.HasM ? (double?)p.M : null); b.EndFigure(); b.EndGeometry(); return(b.ConstructedGeometry); }
private System.Spatial.GeographyPoint CreateGeographyPoint(Esri.ArcGISRuntime.Geometry.MapPoint mapPoint, System.Spatial.CoordinateSystem cs) { return(System.Spatial.GeographyPoint.Create(cs, mapPoint.Y, mapPoint.X, mapPoint.HasZ ? (double?)mapPoint.Z : null, mapPoint.HasM ? (double?)mapPoint.M : null)); }
private void btnLoad_Click(object sender, RoutedEventArgs e) { SQLCode sql = new SQLCode(); //{1/1/0001 12:00:00 AM if (startDateTime == Convert.ToDateTime("1/1/0001") || endDateTime == Convert.ToDateTime("1/1/0001")) { MessageBox.Show("Missing Date/Time information, preload data first"); return; } if (string.IsNullOrEmpty(cboTrucks.Text)) { MessageBox.Show("Please select a truck first"); return; } sql.loadPlaybackData(cboTrucks.Text, startDateTime, endDateTime); if (globalData.playbackData.Count > 0) { foreach (List <playBackRow> list in globalData.playbackData) { //draw data on the map var graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer(); graphicsLayer.ID = "PointPlots"; Esri.ArcGISRuntime.Geometry.SpatialReference aSpacRef = new Esri.ArcGISRuntime.Geometry.SpatialReference(4326); MyMap.Layers.Add(graphicsLayer); LineSeries2D series = new LineSeries2D(); //series.ArgumentScaleType = ScaleType.DateTime; int iCount = 0; foreach (playBackRow row in list) { //Add Data to the chart string st = string.Empty; string hour = row.timeStamp.Hour.ToString(); string minute = row.timeStamp.Minute.ToString(); string second = row.timeStamp.Second.ToString(); while (hour.Length < 2) { hour = "0" + hour; } while (minute.Length < 2) { minute = "0" + minute; } while (second.Length < 2) { second = "0" + second; } st = hour + "." + minute + "." + second; series.Points.Add(new SeriesPoint(st, row.Speed)); //Add Data to the map var markerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol(); switch (row.Status.ToUpper()) { case "ONPATROL": markerSym.Color = ConvertStringToColor("#219846"); break; case "ONBREAK": markerSym.Color = ConvertStringToColor("#5ef2fb"); break; case "ONLUNCH": markerSym.Color = ConvertStringToColor("#5ef2fb"); break; case "FORCEDBREAK": markerSym.Color = ConvertStringToColor("#5ef2fb"); break; case "ROLLOUT": markerSym.Color = ConvertStringToColor("#5ef2fb"); break; case "ONINCIDENT": markerSym.Color = ConvertStringToColor("#265cff"); break; case "ONTOW": markerSym.Color = ConvertStringToColor("#dee742"); break; case "ROLLIN": markerSym.Color = ConvertStringToColor("#5ef2fb"); break; case "ENROUTE": markerSym.Color = ConvertStringToColor("#f37330"); break; default: markerSym.Color = Colors.Red; break; } //markerSym.Color = Colors.Red; markerSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle; markerSym.Size = 5; Esri.ArcGISRuntime.Geometry.MapPoint aPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(); aPoint.SpatialReference = aSpacRef; aPoint.X = row.Lon; aPoint.Y = row.Lat; var pointGraphic = new Esri.ArcGISRuntime.Layers.Graphic(); pointGraphic.Geometry = aPoint; pointGraphic.Symbol = markerSym; graphicsLayer.Graphics.Add(pointGraphic); iCount += 1; } //series.ArgumentScaleType = ScaleType.DateTime; chart.Series.Add(series); } myGrid.ItemsSource = globalData.playbackData[0]; List <statusData> status = sql.getStatusData(cboTrucks.Text, startDateTime, endDateTime); spStatus.Children.Clear(); foreach (statusData sd in status) { Label l = new Label(); l.Content = sd.statusName + " " + sd.statusMins.ToString(); spStatus.Children.Add(l); } } }
private async void centerAtPoint(double coordx, double coordy) { Esri.ArcGISRuntime.Geometry.MapPoint mp = new Esri.ArcGISRuntime.Geometry.MapPoint(coordx, coordy, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84); await MyMapView.SetViewAsync(mp); }