コード例 #1
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
 private void MouseMove(Map map, MouseEventArgs args)
 {
     if (isMouseDown)
     {
         isMouseDrag = true;
     }
 }
コード例 #2
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 void Events_MapLoaded(Map map, DeepEarth.Events.MapEventArgs args)
 {
     _SourceControl = (MapSourceControl)map.Navigation.Toolbar;
     List<MapSourceControl.TileSourceIds> srcList = new List<MapSourceControl.TileSourceIds>();
     srcList.Add(MapSourceControl.TileSourceIds.Osmarend);
     srcList.Add(MapSourceControl.TileSourceIds.Mapnik);
     _SourceControl.TileSources = srcList;
 }
コード例 #3
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 void MapLoaded(Map map, DeepEarth.Events.MapEventArgs args)
 {
     _SourceControl = (MapSourceControl)map.Navigation.Toolbar;
     List<MapSourceControl.TileSourceIds> srcList = new List<MapSourceControl.TileSourceIds>();
     srcList.Add(MapSourceControl.TileSourceIds.BlueMarbleLocal);
     srcList.Add(MapSourceControl.TileSourceIds.BlueMarbleWeb);
     _SourceControl.TileSources = srcList;
 }
コード例 #4
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
 private void MouseDown(Map map, MouseButtonEventArgs args)
 {
     if (Keyboard.Modifiers == ModifierKeys.Shift)
     {
         args.Handled = true;
         isMouseDown = true;
         isMouseDrag = false;
     }
 }
コード例 #5
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
 public Prototype(Map map)
 {
     _Map = map;
     map.Events.MapMouseUp += this.MouseUp;
     map.Events.MapMouseDown += this.MouseDown;
     map.Events.MapMouseMove += this.MouseMove;
     map.Events.MapKeyDown += Events_MapKeyDown;
     map.Events.MapKeyUp += Events_MapKeyUp;
 }
コード例 #6
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 private void MapKeyDown(Map _map, KeyEventArgs args)
 {
     switch (args.Key)
     {
         case Key.A:if (_IsCtrlDown) SetMapSource(VeMapModes.VeAerial);break;
         case Key.R: if (_IsCtrlDown) SetMapSource(VeMapModes.VeRoad); break;
         case Key.H: if (_IsCtrlDown) SetMapSource(VeMapModes.VeHybrid); break;
         case Key.Ctrl:_IsCtrlDown = true;break;
     }
 }
コード例 #7
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
        void MapLoaded(Map map, DeepEarth.Events.MapEventArgs args)
        {
            _SourceControl = (MapSourceControl)map.Navigation.Toolbar;
            List<MapSourceControl.TileSourceIds> srcList = new List<MapSourceControl.TileSourceIds>();
            srcList.Add(MapSourceControl.TileSourceIds.VeAerial);
            srcList.Add(MapSourceControl.TileSourceIds.VeHybrid);
            srcList.Add(MapSourceControl.TileSourceIds.VeRoad);
            _SourceControl.TileSources = srcList;

            map.BaseLayer.Source = new VeTileSource(VeMapModes.VeHybrid);
            //SetMapSource(VeMapModes.VeHybrid);
        }
コード例 #8
0
        public MapSourceControl()
        {
            InitializeComponent();

            _Map = Map.DefaultInstance;

            if (_TileSources != null)
            {
                _Toolbar.SelectionChanged += SelectionChanged;
                _Map = MapInstance;
                _Map.Events.MapTileSourceChanged += OnTileSourceChanged;
                InitializeList();
            }
        }
コード例 #9
0
ファイル: GeoFind.xaml.cs プロジェクト: Centre-It/DeepEarth
        public GeoFind()
        {
            InitializeComponent();

            // Test for DesignTime for display in Blend
            if (HtmlPage.IsEnabled)
            {
                _Map = MapInstance;

                GeocodeService = new Geocode();
                Find.Click += Find_Click;
                Clear.Click += Clear_Click;
            }
        }
コード例 #10
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 private void MapKeyDown(Map _map, KeyEventArgs args)
 {
     switch (args.Key)
     {
         case Key.M:
             if (_IsCtrlDown) SetMapSource(OsmMapModes.Mapnik);
             break;
         case Key.D:
             if (_IsCtrlDown) SetMapSource(OsmMapModes.Osmarend);
             break;
         case Key.Ctrl:
             _IsCtrlDown = true;
             break;
     }
 }
コード例 #11
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 private void Events_MapKeyDown(Map _map, KeyEventArgs args)
 {
     switch (args.Key)
     {
         case Key.M:
             if (_IsCtrlDown) SetMapSource(BmMapModes.BlueMarbleWeb);
             break;
         case Key.D:
             if (_IsCtrlDown) SetMapSource(BmMapModes.BlueMarbleLocal);
             break;
         case Key.Ctrl:
             _IsCtrlDown = true;
             break;
     }
 }
コード例 #12
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
        private void MouseUp(Map map, MouseButtonEventArgs args)
        {
            if (isMouseDown && !isMouseDrag)
            {
                Point coord = map.CoordHelper.PixelToGeo(args.GetPosition(map));

                if (shapeLayer == null)
                {
                    ///TODO: RoadWarrior, to demo this, create a subclass of ShapeLayer for specialty behavior.
                    //shapeLayer = new ShapeLayer(map)
                    //{
                    //    ID = "PROTOTYPE",
                    //    InfoBoxOffset = new Point(-20, 0),
                    //    InfoBoxContentProvider = (shape, callback) =>
                    //    {
                    //        var pin = (PointBase)shape;
                    //        var point = pin.Point;
                    //        var description = string.Format("Created point at {0:N6}, {1:N6}", point.X, point.Y);
                    //        callback(description);
                    //    }
                    //};
                    shapeLayer = new GeometryLayer(map){ID = "PROTOTYPE"};

                    map.Layers.Add(shapeLayer);

                    //create the info box
                    //infoBox = new InfoBox();
                    //shapeLayer.Shapes.Add(infoBox);
                    //infoBox.HideInfoBox();  // initially hide the infobox
                }

                // create the pushpin if the "A" key is held down;  We don't want this behaviour with normal clicks.

                if (_IsAKeyDown)
                {
                    //var pushpin = new Pushpin(shapeLayer) { Point = coord };
                    var pushpin = new Pushpin() { Point = coord };
                    //pushpin.MouseLeftButtonDown += OnPushpinMouseDown;
                    shapeLayer.Add(pushpin);

                    args.Handled = true;
                }
            }

            isMouseDown = false;
            isMouseDrag = false;
        }
コード例 #13
0
ファイル: ReverseGeocode.cs プロジェクト: Centre-It/DeepEarth
        public void MouseDown(Map map, MouseButtonEventArgs args)
        {
            if (Keyboard.Modifiers == ModifierKeys.Alt)
            {
                args.Handled = true;

                Point location = map.CoordHelper.PixelToGeo(args.GetPosition(map));
                GeocodeService.Find(location, (o, ev) =>
                                                  {
                                                      List<GeocodeResult> results = ((GeocodeResultArgs) ev).Results;
                                                      if (results.Count > 0)
                                                      {
                                                          MessageBox.Show(results[0].DisplayName);
                                                      }
                                                  });
            }
        }
コード例 #14
0
        public GeoServices()
        {
            // Required to initialize variables
            InitializeComponent();

            // Test for DesignTime for display in Blend
            if (HtmlPage.IsEnabled)
            {
                _Map = MapInstance;

                GeocodeService = new Geocode();
                RouteService = new Route();

                AddPolygon.Click += AddPolygon_Click;
                Rotate.Click += Rotate_Click;
                ZoomToLocation.Click += ZoomToLocation_Click;
                ToggleDevPins.Click += ToggleDevPins_Click;

                MapInstance.Events.MapLoaded += (o, e) => ConfigureDevPins();
            }
        }
コード例 #15
0
ファイル: Page.xaml.cs プロジェクト: Centre-It/DeepEarth
 private void MapKeyUp(Map _map, KeyEventArgs args)
 {
     if (args.Key == Key.Ctrl) _IsCtrlDown = false;
 }
コード例 #16
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
 void Events_MapKeyUp(Map map, KeyEventArgs args)
 {
     if (args.Key == Key.A) _IsAKeyDown = false;
 }
コード例 #17
0
 private void MapKeyDown(Map _map, KeyEventArgs args)
 {
     switch (args.Key)
     {
         case Key.A: if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.VeAerial; break;
         case Key.R: if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.VeRoad; break;
         case Key.H:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.VeHybrid; break;
         case Key.M:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.Mapnik; break;
         case Key.D:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.Osmarend; break;
         case Key.O:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.OAM; break;
         case Key.W:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.CmWeb; break;
         case Key.B:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.CmMobile; break;
         case Key.N:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.CmNoNames; break;
         case Key.C:if (_IsCtrlDown) mapSourceControl.SelectedSource = MapSourceControl.TileSourceIds.CmCycle; break;
         case Key.Ctrl:_IsCtrlDown = true;
             break;
     }
 }
コード例 #18
0
ファイル: ReverseGeocode.cs プロジェクト: Centre-It/DeepEarth
 public ReverseGeocode(Map map, Geocode geocodeService)
 {
     GeocodeService = geocodeService;
     _Map = map;
     map.Events.MapMouseDown += this.MouseDown;
 }
コード例 #19
0
ファイル: InfoBox.cs プロジェクト: Centre-It/DeepEarth
 private void ViewChanged(Map map, MapEventArgs args)
 {
     ///RoadWarrior:  This is so breaking encapsulation.
     //base.ViewChanged(map, args);
     infoBox.Hide(true);
 }
コード例 #20
0
ファイル: InfoBox.cs プロジェクト: Centre-It/DeepEarth
 public static void AttachToMap(Map map, InfoBox infoBox)
 {
     var behavior = _InfoBoxEventBehavior;
     //var behavior = map.EventBehavior.List[BehaviorName] as InfoBoxEventBehavior;
     if (behavior != null)
     {
         if (!ReferenceEquals(behavior.infoBox, infoBox))
         {
             behavior.infoBox.Hide(true);
         }
         behavior.infoBox = infoBox;
     }
     else
     {
         _InfoBoxEventBehavior = new InfoBoxEventBehavior(map, infoBox);
         //behavior = new InfoBoxEventBehavior(map, infoBox);
         //map.EventBehavior.List.Add(behavior);
     }
 }
コード例 #21
0
ファイル: InfoBox.cs プロジェクト: Centre-It/DeepEarth
 //: base(BehaviorName)
 public InfoBoxEventBehavior(Map map, InfoBox infoBox)
 {
     _Map = map;
     this.infoBox = infoBox;
 }
コード例 #22
0
ファイル: Prototype.cs プロジェクト: Centre-It/DeepEarth
 void Events_MapKeyDown(Map map, KeyEventArgs args)
 {
     if (args.Key == Key.A) _IsAKeyDown = true;
 }
コード例 #23
0
ファイル: Map.cs プロジェクト: Centre-It/DeepEarth
        /// <summary>
        /// Create an instance of the DeepEarth Map Control
        /// </summary>
        public Map()
        {
            DefaultInstance = this;

            _SpatialReference = new MercatorProjection();
            _TileLayer = new TileLayer(this);
            _MouseControl = new MouseControl(this);
            _Layers = new ObservableCollection<ILayer>();
            _Layers.CollectionChanged += Layers_CollectionChanged;

            DefaultStyleKey = typeof (Map);
            DisplayUnit = Unit.Meter;
            DragMode = DragBehavior.Pan;

            //Wire up the keyboard events.
            TabNavigation = KeyboardNavigationMode.Once;
            IsTabStop = true;
            KeyDown += (o, e) => Events.KeyDown(this, e);
            KeyUp += (o, e) => Events.KeyUp(this, e);

            //Create event handlers for default map behavior
            Events.MapDoubleClick += MapDoubleClick;
            Events.MapZoomEnded += (o, e) => _TargetZoom = 0;
            Events.MapLoaded += (o, e) => UpdateCenterPoint();
            Events.MapTileSourceChanged += (o, e) => UpdateCopyrights();
        }
コード例 #24
0
ファイル: Map.cs プロジェクト: Centre-It/DeepEarth
        private static void MapDoubleClick(Map map, MouseButtonEventArgs args)
        {
            bool isShiftDown = (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift;
            int adjustment = isShiftDown ? -1 : 1;

            Point pixel = args.GetPosition(map);
            map.ZoomOnPixelPoint(pixel, adjustment);
        }