private void MyMap_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs e) { CsvLayer csvLayer = MyMap.Layers["MyCSVLayer"] as CsvLayer; System.Windows.Point screenPnt = MyMap.MapToScreen(e.MapPoint); // Account for difference between Map and application origin GeneralTransform generalTransform = MyMap.TransformToVisual(null); System.Windows.Point transformScreenPnt = generalTransform.Transform(screenPnt); int tolerance = 20; Rect screenRect = new Rect(new Point(transformScreenPnt.X - tolerance / 2, transformScreenPnt.Y - tolerance / 2), new Point(transformScreenPnt.X + tolerance / 2, transformScreenPnt.Y + tolerance / 2)); IEnumerable <Graphic> selected = csvLayer.FindGraphicsInHostCoordinates(screenRect); foreach (Graphic g in selected) { MyInfoWindow.Anchor = e.MapPoint; MyInfoWindow.IsOpen = true; //Since a ContentTemplate is defined, Content will define the DataContext for the ContentTemplate MyInfoWindow.Content = g.Attributes; return; } }
private async void OnGraphicsLayerAddClicked(object sender, RoutedEventArgs e) { try { CsvLayer csvLayer = new CsvLayer(); Uri uri = new Uri("./Data/earthquake_csv_data.txt", UriKind.Relative); StreamResourceInfo sri = Application.GetContentStream(uri); if (sri != null) { using (Stream s = sri.Stream) { await csvLayer.SetSourceAsync(s).ConfigureAwait(true); csvLayer.Renderer = LayoutRoot.Resources["MyClassBreaksRenderer"] as ClassBreaksRenderer; map1.Layers.Add(csvLayer); await csvLayer.InitializeAsync(); } } } catch (Exception ex) { throw; } }
/// <summary> /// 菜单操作 /// </summary> private void LoadPointLayer(object parameter) { CsvLayer PointCsvLayer = new CsvLayer(); PointCsvLayer.ServiceUri = "http://www.cnlightning.cn/videos/beijing0616.csv"; PointCsvLayer.XFieldName = "LONGITUDE"; PointCsvLayer.YFieldName = "LATITUDE"; PointCsvLayer.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; PointCsvLayer.SourceSpatialReference = SpatialReferences.Wgs84; PointCsvLayer.Renderer = App.Current.Resources["UniqueVauleRender"] as Renderer; PointCsvLayer.DisplayName = "点图层"; PointCsvLayer.ID = "PointLayer"; scene.Layers.Add(PointCsvLayer); }
/// <summary> /// 菜单操作 /// </summary> private void LoadPointLayer(object parameter ) { CsvLayer PointCsvLayer = new CsvLayer(); PointCsvLayer.ServiceUri = "http://www.cnlightning.cn/videos/beijing0616.csv"; PointCsvLayer.XFieldName = "LONGITUDE"; PointCsvLayer.YFieldName = "LATITUDE"; PointCsvLayer.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; PointCsvLayer.SourceSpatialReference = SpatialReferences.Wgs84; PointCsvLayer.Renderer = App.Current.Resources["UniqueVauleRender"] as Renderer; PointCsvLayer.DisplayName = "点图层"; PointCsvLayer.ID = "PointLayer"; scene.Layers.Add(PointCsvLayer); }