示例#1
0
 void Awake()
 {
     focusedTileOverlay = FindObjectOfType <TileOverlay>();
     spriteRenderer     = GetComponent <SpriteRenderer>();
     menu   = FindObjectOfType <MenuController>();
     source = GetComponent <AudioSource>();
 }
        public MenuItem GetKeyColorsMenuItem(RasterLayer layer)
        {
            var menuItem = new MenuItem();

            menuItem.Header = "Transparency Colors";
            menuItem.Icon   = new Image()
            {
                Source = new BitmapImage(new Uri("/GisEditorInfrastructure;component/Images/Transparent.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            menuItem.Click += (s, e) =>
            {
                if (layer != null)
                {
                    MrSidKeyColorConfigureWindow window = new MrSidKeyColorConfigureWindow(layer.KeyColors);
                    if (window.ShowDialog().GetValueOrDefault())
                    {
                        MrSidKeyColorConfigureViewModel model = window.DataContext as MrSidKeyColorConfigureViewModel;
                        layer.KeyColors.Clear();

                        foreach (var color in model.Colors)
                        {
                            layer.KeyColors.Add(new GeoColor(color.Color.A, color.Color.R, color.Color.G, color.Color.B));
                        }
                        TileOverlay tileOverlay = LayerListHelper.FindMapElementInLayerList <TileOverlay>(GisEditor.LayerListManager.SelectedLayerListItem);
                        if (tileOverlay != null)
                        {
                            tileOverlay.Refresh();
                        }
                    }
                }
            };

            return(menuItem);
        }
示例#3
0
        private static void AddOverlayInGoogleProjection(TileOverlay baseOverlay, GisEditorWpfMap map)
        {
            var    extendedMap            = map;
            string targetProj4            = Proj4Projection.GetGoogleMapParametersString();
            string sourceProj4            = extendedMap.DisplayProjectionParameters;
            var    showConfirmationResult = System.Windows.Forms.DialogResult.Yes;

            if (ManagedProj4ProjectionExtension.CanProject(targetProj4, sourceProj4) && map.Overlays.Count > 0)
            {
                showConfirmationResult = System.Windows.Forms.MessageBox.Show(GisEditor.LanguageManager.GetStringResource("DataRepositoryChangeProjectionWarningLabel"), GisEditor.LanguageManager.GetStringResource("DataRepositoryProjectionWarningCaption"), System.Windows.Forms.MessageBoxButtons.YesNo);
            }

            if (showConfirmationResult == System.Windows.Forms.DialogResult.Yes)
            {
                RemoveAllBaseOverlays(map);
                extendedMap.Overlays.Insert(0, baseOverlay);
                extendedMap.DisplayProjectionParameters = targetProj4;

                //extendedMap.ReprojectMap(targetProj4);
                SetExtent(map);
                if (map.MapUnit != GeographyUnit.Meter)
                {
                    map.MapUnit = GeographyUnit.Meter;
                }
                extendedMap.Refresh(new Overlay[] { baseOverlay, extendedMap.ExtentOverlay });
            }
        }
示例#4
0
        private void MakeOverlay(string keyword)
        {
            var points = new PointsKeywords(GetPoints(keyword), keyword);

            if (points.points.Count != 0)
            {
                if (mOverlays.Count < MAX_CHECKBOXES)
                {
                    MakeCheckBox(points.keyword);
                    HeatmapTileProvider provider = new HeatmapTileProvider.Builder().Data(points.points).Gradient(MakeGradiant(HEATMAP_COLORS[(HeatmapColors)mOverlaysRendered])).Build();
                    TileOverlay         overlay  = googleMap.AddTileOverlay(new TileOverlayOptions().InvokeTileProvider(provider));
                    mOverlays.Add(points.keyword, overlay);
                }
                mOverlaysRendered++;
                if (mOverlaysRendered == mOverlaysInput)
                {
                    ProgressBar progressBar = FindViewById <ProgressBar>(Resource.Id.progress_bar);
                    progressBar.Visibility = ViewStates.Gone;
                }
            }
            else
            {
                ProgressBar progressBar = FindViewById <ProgressBar>(Resource.Id.progress_bar);
                progressBar.Visibility = ViewStates.Gone;
                Toast.MakeText(this, "No results for this query :(", ToastLength.Short).Show();
            }
        }
        public static void RefreshCache(this TileOverlay overlay, bool enabled, string cacheId, string cacheDirectory)
        {
            BitmapTileCache tempTileCache = overlay.TileCache as BitmapTileCache;

            FileBitmapTileCache newCache = null;

            if (enabled)
            {
                newCache = new FileBitmapTileCache(cacheDirectory, cacheId);
                if (overlay.MapArguments != null)
                {
                    newCache.TileMatrix.BoundingBoxUnit = overlay.MapArguments.MapUnit;
                }
            }

            if (newCache != null)
            {
                newCache.TileMatrix.TileHeight = overlay.TileHeight;
                newCache.TileMatrix.TileWidth  = overlay.TileWidth;
            }

            overlay.TileCache = newCache;
            if (!overlay.IsBase && tempTileCache != null)
            {
                Task.Factory.StartNew(cache =>
                {
                    BitmapTileCache removingCache = (BitmapTileCache)cache;
                    lock (removingCache)
                    {
                        try { removingCache.ClearCache(); }
                        catch { }
                    }
                }, tempTileCache);
            }
        }
        private void UserControl_Unloaded(object sender, System.Windows.RoutedEventArgs e)
        {
            if (thread != null && thread.IsAlive)
            {
                thread.Abort();
            }

            if (Tag != null)
            {
                var results = (from overlay in (Tag as GisEditorWpfMap).Overlays.OfType <LayerOverlay>()
                               from layer in overlay.Layers
                               where viewModel.ChangedLayers.Contains(layer)
                               select overlay).Distinct();

                foreach (var tileOverlay in results)
                {
                    TileOverlay overlay = tileOverlay as TileOverlay;
                    if (overlay != null)
                    {
                        tileOverlay.Invalidate();
                    }
                }
            }

            viewModel.CloseFeatureLayer();
            Messenger.Default.Unregister(this);
        }
示例#7
0
        public void SetMbTilesAsBackground(string mbtilesFileName)
        {
            // Remove previous TileOverlay if created
            if (TileOverlay != null)
            {
                //TileOverlay.Remove();
                return;
            }

            // Make Db Context Options Builder to create sqlite db builder
            DbContextOptionsBuilder <TileContext> myContextBuilder = new DbContextOptionsBuilder <TileContext>();

            myContextBuilder.UseSqlite($"Filename={mbtilesFileName}");

            // Initialize TileContext with this builder
            TileContext tileContext = new TileContext(myContextBuilder.Options);

            // Create TileService with this TileConext
            ReadOnlyTileService readOnlyTileService = new ReadOnlyTileService(tileContext);

            // Create CustomTileProvider with this TileService
            CustomTileProvider customTileProvider = new CustomTileProvider(readOnlyTileService);

            // And finally, create the TileOverlayOptions
            TileOverlayOptions options = new TileOverlayOptions().InvokeZIndex(0f)
                                         .InvokeTileProvider(customTileProvider);

            // And TileOverlay
            GoogleMap map = (GoogleMap)LayerService.CurrentMap;

            TileOverlay = map.AddTileOverlay(options);
        }
示例#8
0
    void AddHeatmap()
    {
        var policeStations = DemoUtils.DeserializeLocations(heatmapDataJsonPoliceStations.text);

        _heatmap = _map.AddHeatmapWithDefaultLook(policeStations);
        CenterCamera(DemoUtils.MelbourneLatLng);
    }
示例#9
0
 private void ResetAllTiles()
 {
     RemoveAllTiles();
     Device.BeginInvokeOnMainThread(() =>
     {
         TileOverlay.ClearTileCache();
     });
 }
示例#10
0
 private void RefreshAllTiles()
 {
     MarkAllTilesDirty();
     Device.BeginInvokeOnMainThread(() =>
     {
         TileOverlay.ClearTileCache();
     });
 }
示例#11
0
        private void AddTrackerForOverlay(SKMapOverlay sharedOverlay)
        {
            OverlayTrackerTileProvider tracker        = new OverlayTrackerTileProvider(Context, NativeMap, sharedOverlay);
            TileOverlayOptions         overlayOptions = new TileOverlayOptions().InvokeTileProvider(tracker);
            TileOverlay overlay = NativeMap.AddTileOverlay(overlayOptions);

            tracker.TileOverlay = overlay;
            _TileTrackers.Add(tracker);
        }
示例#12
0
        public void OverlayTiles_should_not_throw_When_array_is_zero_length()
        {
            var imageList = new List <byte[]>
            {
                Convert.FromBase64String("")
            };

            _ = TileOverlay.OverlayTiles(imageList);
        }
        private void RemoveTracker(OverlayTrackerTileProvider tracker)
        {
            TileOverlay overlay = tracker.TileOverlay;

            tracker.RemoveAllTiles();
            overlay.Remove();

            _TileTrackers.Remove(tracker);
        }
        public static void RefreshCache()
        {
            TileOverlay tileOverlay = LayerListHelper.FindMapElementInLayerList <TileOverlay>(GisEditor.LayerListManager.SelectedLayerListItem);

            if (tileOverlay != null && tileOverlay.TileCache != null)
            {
                tileOverlay.Invalidate();
            }
        }
        public static void InvalidateTileOverlay()
        {
            TileOverlay tileOverlay = LayerListHelper.FindMapElementInTree <TileOverlay>(GisEditor.LayerListManager.SelectedLayerListItem);

            if (tileOverlay != null)
            {
                tileOverlay.Invalidate();
            }
        }
示例#16
0
        private void AddTileOverlay(TileOverlay tileOverlay)
        {
            TileOverlayOptions options = new TileOverlayOptions();

            if (tileOverlay is UrlTileOverlay)
            {
                options.InvokeTileProvider(new UrlTileOverlayProvider(tileOverlay as UrlTileOverlay));
            }

            tileOverlays.Add(tileOverlay, googleMap.AddTileOverlay(options));
        }
示例#17
0
        void Checkbox_CheckedChange(object sender, CompoundButton.CheckedChangeEventArgs e)
        {
            CheckBox c = (CheckBox)sender;
            // Text is the keyword
            TileOverlay overlay = mOverlays[c.Tag.ToString()];

            if (overlay != null)
            {
                overlay.Visible = c.Checked;
            }
        }
示例#18
0
 private void AddTileOverlay(TileOverlay tileOverlay)
 {
     if (tileOverlay is UrlTileOverlay)
     {
         MKTileOverlay overlay = new MKTileOverlay((tileOverlay as UrlTileOverlay).Url);
         overlay.CanReplaceMapContent = true;
         overlay.TileSize             = new CoreGraphics.CGSize(tileOverlay.TileWidth, tileOverlay.TileHeight);
         Control.InsertOverlay(overlay, 0);
         TileOverlays.Add(tileOverlay, overlay);
     }
 }
        public void OnClick(View v)
        {
            CheckBox c = (CheckBox)v;
            // Text is the keyword
            TileOverlay overlay = mOverlays.GetValueOrDefault(v.Tag.ToString());

            if (overlay != null)
            {
                overlay.Visible = c.Checked;
            }
        }
示例#20
0
    public void OnRemoveHeatmapClick()
    {
        if (_heatmap == null)
        {
            return;
        }

        _heatmap.Remove();
        _heatmap = null;
        Debug.Log("Tile overlay was removed.");
    }
示例#21
0
        private static void ClearCache(FeatureLayer layer)
        {
            TileOverlay cachedOverlay = (from overlay in GisEditor.ActiveMap.Overlays.OfType <LayerOverlay>()
                                         where overlay.Layers.Contains(layer)
                                         select(LayerOverlay) overlay).FirstOrDefault();

            if (cachedOverlay != null && cachedOverlay.TileCache != null)
            {
                cachedOverlay.RefreshCache(RefreshCacheMode.ApplyNewCache);
            }
        }
        public static void OpenCacheDirectory(this TileOverlay overlay)
        {
            FileBitmapTileCache tileCache = overlay.TileCache as FileBitmapTileCache;

            if (tileCache != null)
            {
                if (Directory.Exists(tileCache.CacheDirectory))
                {
                    ProcessUtils.OpenPath(tileCache.CacheDirectory);
                }
            }
        }
 private void UpdateTiles()
 {
     if (nativeMap != null)
     {
         if (tileOverlay != null)
         {
             this.tileOverlay.Remove();
             this.nativeMap.MapType = GoogleMap.MapTypeNormal;
         }
         nativeMap.MapType = GoogleMap.MapTypeNone;
         tileOverlay       = nativeMap.AddTileOverlay(new TileOverlayOptions().InvokeTileProvider(new WebTileProvider(Host)));
     }
 }
示例#24
0
 private static void RefreshOverlay(TileOverlay tileOverlay)
 {
     if (Application.Current != null)
     {
         Application.Current.Dispatcher.BeginInvoke(new Action <TileOverlay>(tmpOverlay =>
         {
             tmpOverlay.RefreshWithBufferSettings();
         }), tileOverlay);
     }
     else
     {
         tileOverlay.RefreshWithBufferSettings();
     }
 }
        public static void InsertFromLibrary()
        {
            StyleLibraryWindow library = new StyleLibraryWindow();

            if (library.ShowDialog().GetValueOrDefault())
            {
                var styleItem = GisEditor.LayerListManager.SelectedLayerListItem as StyleLayerListItem;
                if (styleItem != null)
                {
                    TileOverlay containingOverlay  = null;
                    var         compositeStyle     = styleItem.ConcreteObject as CompositeStyle;
                    var         compositeStyleItem = GisEditor.StyleManager.GetStyleLayerListItem(library.Result.CompositeStyle);
                    if (compositeStyle != null)
                    {
                        foreach (var item in compositeStyleItem.Children.Reverse())
                        {
                            styleItem.Children.Insert(0, item);
                        }
                        styleItem.UpdateConcreteObject();
                        containingOverlay = GisEditor.LayerListManager.SelectedLayerListItem.Parent.Parent.ConcreteObject as TileOverlay;
                    }
                    else if (styleItem.ConcreteObject is Styles.Style && styleItem.Parent.ConcreteObject is Styles.Style)
                    {
                        var index = styleItem.Parent.Children.IndexOf(styleItem);
                        foreach (var item in compositeStyleItem.Children)
                        {
                            index++;
                            styleItem.Parent.Children.Insert(index, item);
                        }
                        ((StyleLayerListItem)styleItem.Parent).UpdateConcreteObject();
                        containingOverlay = LayerListHelper.FindMapElementInLayerList <TileOverlay>(GisEditor.LayerListManager.SelectedLayerListItem);
                    }
                    else
                    {
                        foreach (var item in compositeStyleItem.Children.Reverse())
                        {
                            styleItem.Children.Insert(0, item);
                        }
                        styleItem.UpdateConcreteObject();
                        containingOverlay = LayerListHelper.FindMapElementInLayerList <TileOverlay>(GisEditor.LayerListManager.SelectedLayerListItem);
                    }
                    if (containingOverlay != null)
                    {
                        containingOverlay.Invalidate();
                        GisEditor.UIManager.BeginRefreshPlugins(new RefreshArgs(containingOverlay, RefreshArgsDescription.InsertFromLibraryDescription));
                    }
                }
            }
        }
示例#26
0
    public void OnClearMapClick()
    {
        if (_map == null)
        {
            return;
        }

        _map.Clear();
        // All the elements are now removed, we cannot access them any more
        _circle          = null;
        _marker          = null;
        _groundOverlay   = null;
        _polyline        = null;
        _coloradoPolygon = null;
        _heatmap         = null;
    }
        public static void ClearCaches(this TileOverlay overlay, RectangleShape extent)
        {
            BitmapTileCache tileCache = overlay.TileCache;

            if (tileCache != null)
            {
                lock (tileCache)
                {
                    try
                    {
                        tileCache.DeleteTiles(extent);
                    }
                    catch { }
                }
            }
        }
        public static void ClearCaches(this TileOverlay overlay)
        {
            BitmapTileCache tileCache = overlay.TileCache;

            if (tileCache != null)
            {
                lock (tileCache)
                {
                    try
                    {
                        tileCache.ClearCache();
                    }
                    catch { }
                }
            }
        }
示例#29
0
        private static void AddSubItems(MenuItem menuItem)
        {
            MenuItem openCacheFolderMenuItem = new MenuItem();

            openCacheFolderMenuItem.Header = GisEditor.LanguageManager.GetStringResource("LayerListMenuItemHelperWindowOpencachefolderContent");
            openCacheFolderMenuItem.Icon   = new Image()
            {
                Source = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/openfolder.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            openCacheFolderMenuItem.Click += (s, e) =>
            {
                if (GisEditor.LayerListManager.SelectedLayerListItem == null)
                {
                    return;
                }

                TileOverlay overlay = GisEditor.LayerListManager.SelectedLayerListItem.ConcreteObject as TileOverlay;
                if (overlay != null)
                {
                    overlay.OpenCacheDirectory();
                }
            };

            MenuItem clearCacheMenuItem = new MenuItem();

            clearCacheMenuItem.Header = GisEditor.LanguageManager.GetStringResource("LayerListMenuItemHelperWindowClearcacheContent");
            clearCacheMenuItem.Icon   = new Image()
            {
                Source = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/clearcache.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };
            clearCacheMenuItem.Click += (s, e) =>
            {
                if (GisEditor.LayerListManager.SelectedLayerListItem == null)
                {
                    return;
                }

                TileOverlay overlay = GisEditor.LayerListManager.SelectedLayerListItem.ConcreteObject as TileOverlay;
                if (overlay != null)
                {
                    overlay.ClearCaches();
                }
            };

            menuItem.Items.Add(openCacheFolderMenuItem);
            menuItem.Items.Add(clearCacheMenuItem);
        }
        private static FileBitmapTileCache GetTileCache(TileOverlay overlay, string cacheDirectory, string cacheId)
        {
            FileBitmapTileCache newCache = new FileBitmapTileCache(cacheDirectory, cacheId);

            if (overlay.MapArguments != null)
            {
                newCache.TileMatrix.BoundingBoxUnit = overlay.MapArguments.MapUnit;
            }

            if (newCache != null)
            {
                newCache.TileMatrix.TileHeight = overlay.TileHeight;
                newCache.TileMatrix.TileWidth  = overlay.TileWidth;
            }

            return(newCache);
        }
 public PlayerReady(Actor actor)
 {
     _actor = actor;
     var map = GameObject.FindObjectOfType<TileMap>();
     _navGraph = new NavGraph(map, _actor.Row, _actor.Col, _actor.AP);
     _highlighter = GameObject.FindObjectOfType<TileOverlay>();
     _highlighter.HighlightTiles(_navGraph.TilesInRange, TileOverlay.HighlightType.Move);
 }