예제 #1
0
        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;
            }
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
 /// <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);
 }