Exemple #1
0
        private async void BtnLoc_Click(object sender, EventArgs e)
        {
            try
            {
                currentLocation = await Geolocation.GetLastKnownLocationAsync();

                if (currentLocation != null)
                {
                    txtLoc.Text = $"Latitude={currentLocation.Latitude} , Longitude={currentLocation.Longitude} ";
                    Console.WriteLine($"Latitude: {currentLocation.Latitude}, Longitude: {currentLocation.Longitude}, Altitude: {currentLocation.Altitude}");

                    //mapView.GetMapAsync(this);


                    Com.Mapbox.Geojson.Point point = Com.Mapbox.Geojson.Point.FromLngLat(currentLocation.Longitude, currentLocation.Latitude);
                    mapbox.MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(point.Latitude(), point.Longitude()), 15));

                    var options = new SymbolOptions();
                    options.WithIconImage("airport-15");
                    options.WithGeometry(point);
                    options.WithIconSize(new Float(2f))
                    .WithDraggable(true);

                    var symbol = symbolManager.Create(options);
                }
            }
            catch
            {
            }
        }
        public SymbolOptions ChooseSymbol()
        {
            // generates a value in [0,maxValue) so we add 1 to create a [1,100] percentage
            int percentage = _generator.Generate(max: 100) + 1;

            SymbolOptions chosenSymbol = null;

            // since symbols are a low count an O(N) algorithm is good enough
            // an O(logN) one may result in a more complex implementation which is harder to support with no actual benefits
            foreach (SymbolOptions currentSymbol in _options.Symbols)
            {
                if (percentage <= currentSymbol.Probability)
                {
                    chosenSymbol = currentSymbol;
                    break;
                }
                else
                {
                    percentage -= currentSymbol.Probability;
                }
            }

            if (chosenSymbol == null)
            {
                throw new InvalidOperationException("Failed to generate a symbol.");
            }

            _logger.LogDebug("Generated symbol {0}.", chosenSymbol);
            return(chosenSymbol);
        }
Exemple #3
0
        public void OnStyleLoaded(Style p0)
        {
            symbolManager = new SymbolManager(mapView, mapbox, p0);
            Com.Mapbox.Geojson.Point point = Com.Mapbox.Geojson.Point.FromLngLat(105.505, 21.033);
            mapbox.MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(point.Latitude(), point.Longitude()), 8));

            var options = new SymbolOptions();

            options.WithIconImage("fire-station-11");
            options.WithGeometry(point);
            options.WithIconSize(new Float(2f))
            .WithDraggable(true);

            var symbol = symbolManager.Create(options);

            Com.Mapbox.Geojson.Point point2 = Com.Mapbox.Geojson.Point.FromLngLat(25.8672299, 85.1720807);
            var options2 = new SymbolOptions()
                           .WithIconImage("fire-station-11")
                           .WithGeometry(point2)
                           .WithIconSize(new Float(2f))
                           .WithDraggable(true);

            var symbol2 = symbolManager.Create(options2);

            symbolManager.AddClickListener(this);
        }
Exemple #4
0
 public static SymbolHandler CreateFromHandle(IntPtr handle, SymbolOptions options = SymbolOptions.None, string searchPath = null)
 {
     if (searchPath == null)
     {
         searchPath = GetDefaultSearchPath();
     }
     Win32.SymSetOptions(options);
     Win32.SymInitialize(handle, searchPath, true).ThrowIfWin32Failed();
     return(new SymbolHandler(handle, false));
 }
Exemple #5
0
        public void SetSymbol(Action <SymbolOptions> config)
        {
            var symbolOptions = new SymbolOptions();

            config?.Invoke(symbolOptions);

            SymbolInfo = new SymbolInfo(
                symbolOptions.Name,
                symbolOptions.Margin,
                symbolOptions.PriceStep,
                symbolOptions.PipsStep);
        }
        public void SetUp()
        {
            CreateTarget();

            _data = new SymbolOptions
            {
                Type        = ValidSymbolType,
                Name        = ValidName,
                Letter      = ValidLetter,
                Coefficient = ValidCoefficient,
                Probability = ValidProbability
            };
        }
Exemple #7
0
        public static SymbolHandler TryCreateFromProcess(int pid, SymbolOptions options = SymbolOptions.None, string searchPath = null)
        {
            if (searchPath == null)
            {
                searchPath = GetDefaultSearchPath();
            }
            var handle = new IntPtr(pid);

            if (Win32.SymInitialize(handle, searchPath, true))
            {
                return(new SymbolHandler(handle, false));
            }
            return(null);
        }
Exemple #8
0
        public static SymbolHandler CreateFromProcess(int pid, SymbolOptions options = SymbolOptions.None, string searchPath = null)
        {
            if (searchPath == null)
            {
                searchPath = GetDefaultSearchPath();
            }
            var handle = new IntPtr(pid);

            if (Win32.SymInitialize(handle, searchPath, true))
            {
                return(new SymbolHandler(handle, false));
            }
            throw new Win32Exception(Marshal.GetLastWin32Error());
        }
Exemple #9
0
        private void GenerateSymbolRow(StringBuilder rowBuilder, Symbol[] symbols)
        {
            rowBuilder.Clear();

            for (int symbolIndex = 0; symbolIndex < _options.Spin.SymbolCount; ++symbolIndex)
            {
                _output.AddSuspense();
                SymbolOptions chosenSymbol = _symbolGenerator.ChooseSymbol();
                symbols[symbolIndex] = _symbols[chosenSymbol.Letter];
                rowBuilder.Append(chosenSymbol.Letter).Append(' ');
            }

            _logger.LogDebug("Generated row {0}", rowBuilder.ToString());
        }
Exemple #10
0
        public static SymbolHandler Create(SymbolOptions options = SymbolOptions.CaseInsensitive | SymbolOptions.UndecorateNames, string searchPath = null)
        {
            if (Debugger.IsAttached)
            {
                options |= SymbolOptions.Debug;
            }
            if (searchPath == null)
            {
                searchPath = GetDefaultSearchPath();
            }
            Win32.SymSetOptions(options);
            var handle = new IntPtr(++_instances);

            Win32.SymInitialize(handle, searchPath, false).ThrowIfWin32Failed();
            return(new SymbolHandler(handle, false));
        }
Exemple #11
0
 public static extern SymbolOptions SymSetOptions(SymbolOptions options);
Exemple #12
0
 internal static extern void SymSetOptions(SymbolOptions options);
Exemple #13
0
 internal static extern SymbolOptions SetOptions(SymbolOptions options);
Exemple #14
0
 public NormalSymbol(SymbolOptions symbolOptions) : base(symbolOptions)
 {
 }
 public WildcardSymbol(SymbolOptions symbolOptions) : base(symbolOptions)
 {
 }
        public static SymbolOptions ToSymbolOptions(this SymbolAnnotation symbolAnnotation)
        {
            var symbolOptions = new SymbolOptions()
                                .WithLatLng(symbolAnnotation.Coordinates.ToLatLng());

            if (!string.IsNullOrWhiteSpace(symbolAnnotation.IconAnchor))
            {
                symbolOptions.WithIconImage(symbolAnnotation.IconAnchor);
            }
            if (symbolAnnotation.IconColor.HasValue)
            {
                symbolOptions.WithIconColor(symbolAnnotation.IconColor.Value.ToRGBAString());
            }
            if (symbolAnnotation.IconHaloBlur.HasValue)
            {
                symbolOptions.WithIconHaloBlur(new Float(symbolAnnotation.IconHaloBlur.Value));
            }
            if (symbolAnnotation.IconHaloColor.HasValue)
            {
                symbolOptions.WithIconHaloColor(symbolAnnotation.IconHaloColor.Value.ToRGBAString());
            }
            if (symbolAnnotation.IconHaloWidth.HasValue)
            {
                symbolOptions.WithIconHaloWidth(new Float(symbolAnnotation.IconHaloWidth.Value));
            }
            if (symbolAnnotation.IconImage != null)
            {
                symbolOptions.WithIconImage(symbolAnnotation.IconImage.Id);
            }
            if (symbolAnnotation.IconOffset?.Length > 0)
            {
                symbolOptions.WithIconOffset(symbolAnnotation.IconOffset.Select(x => new Float(x)).ToArray());
            }
            if (symbolAnnotation.IconOpacity.HasValue)
            {
                symbolOptions.WithIconOpacity(new Float(symbolAnnotation.IconOpacity.Value));
            }
            if (symbolAnnotation.IconRotate.HasValue)
            {
                symbolOptions.WithIconRotate(new Float(symbolAnnotation.IconRotate.Value));
            }
            if (symbolAnnotation.IconSize.HasValue)
            {
                symbolOptions.WithIconSize(new Float(symbolAnnotation.IconSize.Value));
            }
            if (symbolAnnotation.IsDraggable.HasValue)
            {
                symbolOptions.WithDraggable(symbolAnnotation.IsDraggable.Value);
            }
            if (symbolAnnotation.SymbolSortKey.HasValue)
            {
                symbolOptions.WithSymbolSortKey(new Float(symbolAnnotation.SymbolSortKey.Value));
            }
            if (!string.IsNullOrWhiteSpace(symbolAnnotation.TextAnchor))
            {
                symbolOptions.WithTextAnchor(symbolAnnotation.TextAnchor);
            }
            if (symbolAnnotation.TextColor.HasValue)
            {
                symbolOptions.WithTextColor(symbolAnnotation.TextColor.Value.ToRGBAString());
            }
            if (!string.IsNullOrWhiteSpace(symbolAnnotation.TextField))
            {
                symbolOptions.WithTextField(symbolAnnotation.TextField);
            }
            if (symbolAnnotation.TextFont?.Length > 0)
            {
                symbolOptions.WithTextFont(symbolAnnotation.TextFont);
            }
            if (symbolAnnotation.TextHaloBlur.HasValue)
            {
                symbolOptions.WithTextHaloBlur(new Float(symbolAnnotation.TextHaloBlur.Value));
            }
            if (symbolAnnotation.TextHaloColor.HasValue)
            {
                symbolOptions.WithTextHaloColor(symbolAnnotation.TextHaloColor.Value.ToRGBAString());
            }
            if (symbolAnnotation.TextHaloWidth.HasValue)
            {
                symbolOptions.WithTextHaloWidth(new Float(symbolAnnotation.TextHaloWidth.Value));
            }
            if (!string.IsNullOrWhiteSpace(symbolAnnotation.TextJustify))
            {
                symbolOptions.WithTextJustify(symbolAnnotation.TextJustify);
            }
            if (symbolAnnotation.TextLetterSpacing.HasValue)
            {
                symbolOptions.WithTextLetterSpacing(new Float(symbolAnnotation.TextLetterSpacing.Value));
            }
            if (symbolAnnotation.TextMaxWidth.HasValue)
            {
                symbolOptions.WithTextMaxWidth(new Float(symbolAnnotation.TextMaxWidth.Value));
            }
            if (symbolAnnotation.TextOffset?.Length > 0)
            {
                symbolOptions.WithTextOffset(symbolAnnotation.TextOffset.Select(x => new Float(x)).ToArray());
            }
            if (symbolAnnotation.TextOpacity.HasValue)
            {
                symbolOptions.WithTextOpacity(new Float(symbolAnnotation.TextOpacity.Value));
            }
            if (symbolAnnotation.TextRadialOffset.HasValue)
            {
                symbolOptions.WithTextRadialOffset(new Float(symbolAnnotation.TextRadialOffset.Value));
            }
            if (symbolAnnotation.TextRotate.HasValue)
            {
                symbolOptions.WithTextRotate(new Float(symbolAnnotation.TextRotate.Value));
            }
            if (symbolAnnotation.TextSize.HasValue)
            {
                symbolOptions.WithTextSize(new Float(symbolAnnotation.TextSize.Value));
            }
            if (!string.IsNullOrWhiteSpace(symbolAnnotation.TextTransform))
            {
                symbolOptions.WithTextTransform(symbolAnnotation.TextTransform);
            }

            return(symbolOptions);
        }
Exemple #17
0
 protected Symbol(SymbolOptions symbolOptions)
 {
     _symbolOptions = symbolOptions;
 }