Exemple #1
0
        protected override void OnCreate(Android.OS.Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Clear the default layer, add a dark one instead
            MapView.Layers.Clear();

            var baseLayer = new CartoOnlineVectorTileLayer(CartoBaseMapStyle.CartoBasemapStyleDarkmatter);

            // Remove texts so dots would be more prominent
            (baseLayer.TileDecoder as MBVectorTileDecoder).SetStyleParameter("lang", "nolang");

            MapView.Layers.Add(baseLayer);

            Projection projection = MapView.Options.BaseProjection;

            // Create a datasource and layer for the map
            LocalVectorDataSource source = new LocalVectorDataSource(projection);
            VectorLayer           layer  = new VectorLayer(source);

            MapView.Layers.Add(layer);

            // Initialize CartoSQL service, set a username
            CartoSQLService service = new CartoSQLService();

            service.Username = "******";

            PointStyleBuilder builder = new PointStyleBuilder
            {
                Color = new Carto.Graphics.Color(255, 0, 0, 255),
                Size  = 1
            };

            MapView.QueryFeatures(service, source, builder.BuildStyle(), query);
        }
Exemple #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Clear the default layer, add a dark one instead
            MapView.Layers.Clear();
            MapView.Layers.Add(new CartoOnlineVectorTileLayer(CartoBaseMapStyle.CartoBasemapStyleDark));

            Projection projection = MapView.Options.BaseProjection;

            // Create a datasource and layer for the map
            LocalVectorDataSource source = new LocalVectorDataSource(projection);
            VectorLayer           layer  = new VectorLayer(source);

            MapView.Layers.Add(layer);

            // Initialize CartoSQL service, set a username
            CartoSQLService service = new CartoSQLService();

            service.Username = "******";

            PointStyleBuilder builder = new PointStyleBuilder
            {
                Color = new Carto.Graphics.Color(255, 0, 0, 255),
                Size  = 1
            };

            MapView.QueryFeatures(service, source, builder.BuildStyle(), query);
        }
        public override PointStyle OnSelectDragPointStyle(VectorElement element, VectorElementDragPointStyle dragPointStyle)
        {
            if (styleNormal == null)
            {
                PointStyleBuilder builder = new PointStyleBuilder();
                builder.Color = new Color(0, 255, 255, 255);
                builder.Size  = 20;

                styleNormal = builder.BuildStyle();

                builder.Size = 15;

                styleVirtual = builder.BuildStyle();

                builder.Color = new Color(255, 255, 0, 255);
                builder.Size  = 30;

                styleSelected = builder.BuildStyle();
            }

            if (dragPointStyle == VectorElementDragPointStyle.VectorElementDragPointStyleSelected)
            {
                return(styleSelected);
            }

            if (dragPointStyle == VectorElementDragPointStyle.VectorElementDragPointStyleVirtual)
            {
                return(styleVirtual);
            }

            return(styleNormal);
        }
Exemple #4
0
        public override bool OnVectorTileClicked(VectorTileClickInfo clickInfo)
        {
            LocalVectorDataSource source = (LocalVectorDataSource)layer.DataSource;

            source.Clear();

            Color color = new Color(0, 100, 200, 150);

            Feature  feature  = clickInfo.Feature;
            Geometry geometry = feature.Geometry;

            PointStyleBuilder pointBuilder = new PointStyleBuilder();

            pointBuilder.Color = color;

            LineStyleBuilder lineBuilder = new LineStyleBuilder();

            lineBuilder.Color = color;

            PolygonStyleBuilder polygonBuilder = new PolygonStyleBuilder();

            polygonBuilder.Color = color;

            if (geometry is PointGeometry)
            {
                source.Add(new Point((PointGeometry)geometry, pointBuilder.BuildStyle()));
            }
            else if (geometry is LineGeometry)
            {
                source.Add(new Line((LineGeometry)geometry, lineBuilder.BuildStyle()));
            }
            else if (geometry is PolygonGeometry)
            {
                source.Add(new Polygon((PolygonGeometry)geometry, polygonBuilder.BuildStyle()));
            }
            else if (geometry is MultiGeometry)
            {
                GeometryCollectionStyleBuilder collectionBuilder = new GeometryCollectionStyleBuilder();
                collectionBuilder.PointStyle   = pointBuilder.BuildStyle();
                collectionBuilder.LineStyle    = lineBuilder.BuildStyle();
                collectionBuilder.PolygonStyle = polygonBuilder.BuildStyle();

                source.Add(new GeometryCollection((MultiGeometry)geometry, collectionBuilder.BuildStyle()));
            }

            BalloonPopupStyleBuilder builder = new BalloonPopupStyleBuilder();

            /// Set a higher placement priority so it would always be visible
            builder.PlacementPriority = 10;

            string message = feature.Properties.ToString();

            BalloonPopup popup = new BalloonPopup(clickInfo.ClickPos, builder.BuildStyle(), "Click", message);

            source.Add(popup);

            return(true);
        }
Exemple #5
0
        static Point GetPoint(Projection projection, MapPos position, Color color)
        {
            PointStyleBuilder pointStyleBuilder = new PointStyleBuilder();

            pointStyleBuilder.Color = color;
            pointStyleBuilder.Size  = 16;

            return(new Point(projection.FromWgs84(position), pointStyleBuilder.BuildStyle()));
        }
Exemple #6
0
        public static PointStyleBuilder GetDefaultPointStyle()
        {
            /// Create Marker style
            var builder = new PointStyleBuilder();

            builder.Size      = 2;
            builder.Color     = new Carto.Graphics.Color(0, 0, 0, 255);
            builder.ClickSize = 10;
            //var s= new StyleSet<PointStyle>(builder);
            return(builder);
        }
        public static void AddPoint(this LocalVectorDataSource source, MapPos position)
        {
            PointStyleBuilder builder = new PointStyleBuilder();

            builder.Size  = 30;
            builder.Color = new Color(0, 0, 255, 255);

            Point point = new Point(position, builder.BuildStyle());

            source.Add(point);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            // MapSampleBaseActivity creates and configures mapView
            base.OnCreate(savedInstanceState);

            // Define style for vector objects. Note that all objects must have same style here, which can be big limitation
            PointStyleBuilder pointStyleBuilder = new PointStyleBuilder();

            pointStyleBuilder.Color = new Color(0, 0, 255, 255);
            pointStyleBuilder.Size  = 10;

            // Initialize a local vector data source
            string query =
                "SELECT cartodb_id,the_geom_webmercator AS the_geom,name,address,bikes,slot," +
                "field_8,field_9,field_16,field_17,field_18 FROM stations_1 WHERE !bbox!";

            CartoDBSQLDataSource vectorDataSource1 = new CartoDBSQLDataSource(
                BaseProjection,
                BaseUrl,
                query,
                pointStyleBuilder.BuildStyle()
                );

            // Initialize a vector layer with the previous data source
            VectorLayer vectorLayer1 = new VectorLayer(vectorDataSource1);

            // Add the previous vector layer to the map
            MapView.Layers.Add(vectorLayer1);

            // Set visible zoom range for the vector layer
            vectorLayer1.VisibleZoomRange = new MapRange(14, 23);


            // Set listener to get point click popups

            // Initialize a local vector data source and layer for click Balloons
            LocalVectorDataSource vectorDataSource = new LocalVectorDataSource(BaseProjection);

            // Initialize a vector layer with the previous data source
            VectorLayer vectorLayer = new VectorLayer(vectorDataSource);

            // Add the previous vector layer to the map
            MapView.Layers.Add(vectorLayer);

            MapView.MapEventListener = new MyMapEventListener(MapView, vectorDataSource);

            // Animate map to the marker
            MapView.SetFocusPos(BaseProjection.FromWgs84(new MapPos(-74.0059, 40.7127)), 1);
            MapView.SetZoom(15, 1);
        }
Exemple #9
0
        public void AddPointOfInterest(VectorTileFeature item)
        {
            var builder = new PointStyleBuilder();

            builder.Size  = 20.0f;
            builder.Color = new Carto.Graphics.Color(230, 100, 100, 200);

            MapPos position = (item.Geometry as PointGeometry).Pos;
            var    point    = new Point(position, builder.BuildStyle());

            point.SetMetaDataElement(VectorElementListener.RouteSearchTitle, new Variant("Properties"));
            point.SetMetaDataElement(VectorElementListener.RouteSearchDescription, new Variant(item.Properties.ToString()));

            overlaySource.Add(point);
        }
        public void Update()
        {
            MapPos position = Projection.FromWgs84(new MapPos(Longitude, Latitude));

            if (!FoundUser)
            {
                MapView.SetFocusPos(position, 0);
                MapView.SetZoom(17, 0);
                FoundUser = true;
            }

            var builder = new PolygonStyleBuilder();

            builder.Color = LightTransparentAppleBlue;

            var borderBuilder = new LineStyleBuilder();

            borderBuilder.Color = DarkTransparentAppleBlue;
            borderBuilder.Width = 1;

            MapPosVector points = GetCirclePoints(Longitude, Latitude, Accuracy);

            if (accuracyMarker == null)
            {
                accuracyMarker = new Polygon(points, new MapPosVectorVector(), builder.BuildStyle());
                source.Add(accuracyMarker);
            }
            else
            {
                accuracyMarker.Style    = builder.BuildStyle();
                accuracyMarker.Geometry = new PolygonGeometry(points);
            }

            if (userMarker == null)
            {
                var markerBuilder = new PointStyleBuilder();
                markerBuilder.Color = DarkTransparentAppleBlue;
                markerBuilder.Size  = 16.0f;

                userMarker = new Point(position, markerBuilder.BuildStyle());
                source.Add(userMarker);
            }
            else
            {
                userMarker.SetPos(position);
            }
        }
        public void ShowAt(double latitude, double longitude, float accuracy)
        {
            var positiion = projection.FromWgs84(new MapPos(longitude, latitude));

            if (focus)
            {
                map.FocusPos = positiion;
                map.Zoom     = 16;
            }

            var builder = new PolygonStyleBuilder();

            // Light transparent apple blue
            builder.Color = new Carto.Graphics.Color(14, 122, 254, 70);
            var borderBuilder = new LineStyleBuilder();

            // Dark transparent apple blue
            borderBuilder.Color = new Carto.Graphics.Color(14, 122, 254, 150);
            borderBuilder.Width = 1;
            builder.LineStyle   = borderBuilder.BuildStyle();

            var points = GetCirclePoints(latitude, longitude, accuracy);

            if (accuracyMarker == null)
            {
                var holes = new MapPosVectorVector();
                accuracyMarker = new Polygon(points, holes, builder.BuildStyle());
                source.Add(accuracyMarker);
            }
            else
            {
                accuracyMarker.Style    = builder.BuildStyle();
                accuracyMarker.Geometry = new PolygonGeometry(points);
            }

            if (userMarker == null)
            {
                var pointBuilder = new PointStyleBuilder();
                // Apple blue
                pointBuilder.Color = new Carto.Graphics.Color(14, 122, 254, 255);
                pointBuilder.Size  = 16.0f;

                userMarker = new Point(positiion, pointBuilder.BuildStyle());
                source.Add(userMarker);
            }
        }
Exemple #12
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Define style for vector objects.
            // Note that all objects must have same style here, which can be big limitation
            PointStyleBuilder builder = new PointStyleBuilder();

            builder.Color = new Color(0, 0, 255, 255);
            builder.Size  = 10;

            PointStyle style = builder.BuildStyle();

            // Initialize a local vector data source
            CartoDBSQLDataSource dataSource = new CartoDBSQLDataSource(BaseProjection, BaseUrl, Query, style);

            // Initialize a vector layer with the previous data source
            VectorLayer vectorLayer1 = new VectorLayer(dataSource);

            // Add the previous vector layer to the map
            MapView.Layers.Add(vectorLayer1);

            // Set visible zoom range for the vector layer
            vectorLayer1.VisibleZoomRange = new MapRange(14, 23);

            // Initialize a local vector data source and layer for click Balloons
            LocalVectorDataSource vectorDataSource = new LocalVectorDataSource(BaseProjection);

            // Initialize a vector layer with the previous data source
            VectorLayer vectorLayer = new VectorLayer(vectorDataSource);

            // Add the previous vector layer to the map
            MapView.Layers.Add(vectorLayer);

            // Set listener to get point click popups
            MapView.MapEventListener = new MyMapEventListener(MapView, vectorDataSource);

            // Animate map to the marker
            MapPos newYork = BaseProjection.FromWgs84(new MapPos(-74.0059, 40.7127));

            MapView.SetFocusPos(newYork, 1);
            MapView.SetZoom(15, 1);
        }
        public static void ShowResult(this LocalVectorDataSource source, MapView map, GeocodingResult result, string title, string description, bool goToPosition)
        {
            source.Clear();

            var builder = new BalloonPopupStyleBuilder();

            builder.LeftMargins  = new BalloonPopupMargins(0, 0, 0, 0);
            builder.TitleMargins = new BalloonPopupMargins(6, 3, 6, 3);
            builder.CornerRadius = 5;
            // Make sure this label is shown on top of all other labels
            builder.PlacementPriority = 10;

            FeatureCollection collection = result.FeatureCollection;
            int count = collection.FeatureCount;

            MapPos   position = new MapPos();
            Geometry geometry;

            for (int i = 0; i < count; i++)
            {
                geometry = collection.GetFeature(i).Geometry;
                var color = new Carto.Graphics.Color(0, 100, 200, 150);

                var pointBuilder = new PointStyleBuilder();
                pointBuilder.Color = color;

                var lineBuilder = new LineStyleBuilder();
                lineBuilder.Color = color;

                var polygonBuilder = new PolygonStyleBuilder();
                polygonBuilder.Color = color;

                VectorElement element = null;

                if (geometry is PointGeometry)
                {
                    element = new Point(geometry as PointGeometry, pointBuilder.BuildStyle());
                }
                else if (geometry is LineGeometry)
                {
                    element = new Line(geometry as LineGeometry, lineBuilder.BuildStyle());
                }
                else if (geometry is PolygonGeometry)
                {
                    element = new Polygon(geometry as PolygonGeometry, polygonBuilder.BuildStyle());
                }
                else if (geometry is MultiGeometry)
                {
                    var collectionBuilder = new GeometryCollectionStyleBuilder();
                    collectionBuilder.PointStyle   = pointBuilder.BuildStyle();
                    collectionBuilder.LineStyle    = lineBuilder.BuildStyle();
                    collectionBuilder.PolygonStyle = polygonBuilder.BuildStyle();

                    element = new GeometryCollection(geometry as MultiGeometry, collectionBuilder.BuildStyle());
                }

                if (element != null)
                {
                    position = geometry.CenterPos;
                    source.Add(element);
                }
            }

            if (goToPosition)
            {
                map.SetFocusPos(position, 1.0f);
                map.SetZoom(16, 1.0f);
            }

            var popup = new BalloonPopup(position, builder.BuildStyle(), title, description);

            source.Add(popup);
        }
        public override bool OnVectorTileClicked(Carto.Ui.VectorTileClickInfo clickInfo)
        {
            source.Clear();

            Color color = new Color(0, 100, 200, 150);

            Feature  feature  = clickInfo.Feature;
            Geometry geometry = feature.Geometry;

            PointStyleBuilder pointBuilder = new PointStyleBuilder();

            pointBuilder.Color = color;

            LineStyleBuilder lineBuilder = new LineStyleBuilder();

            lineBuilder.Color = color;

            PolygonStyleBuilder polygonBuilder = new PolygonStyleBuilder();

            polygonBuilder.Color = color;

            if (geometry is PointGeometry)
            {
                source.Add(new Point((PointGeometry)geometry, pointBuilder.BuildStyle()));
            }
            else if (geometry is LineGeometry)
            {
                source.Add(new Line((LineGeometry)geometry, lineBuilder.BuildStyle()));
            }
            else if (geometry is PolygonGeometry)
            {
                source.Add(new Polygon((PolygonGeometry)geometry, polygonBuilder.BuildStyle()));
            }
            else if (geometry is MultiGeometry)
            {
                GeometryCollectionStyleBuilder collectionBuilder = new GeometryCollectionStyleBuilder();
                collectionBuilder.PointStyle   = pointBuilder.BuildStyle();
                collectionBuilder.LineStyle    = lineBuilder.BuildStyle();
                collectionBuilder.PolygonStyle = polygonBuilder.BuildStyle();

                source.Add(new GeometryCollection((MultiGeometry)geometry, collectionBuilder.BuildStyle()));
            }

            BalloonPopupStyleBuilder builder = new BalloonPopupStyleBuilder();

            // Set a higher placement priority so it would always be visible
            builder.PlacementPriority = 10;

            string id = clickInfo.FeatureId.ToString();

            string name = "Info (id: " + id + ")";

            if (feature.Properties.GetObjectElement("name").String != "null")
            {
                name += " about " + feature.Properties.GetObjectElement("name").String;
            }

            string description = feature.Properties.ToString();

            BalloonPopup popup = new BalloonPopup(clickInfo.ClickPos, builder.BuildStyle(), name, description);

            source.Add(popup);

            return(true);
        }
        static Point GetPoint(Projection projection, MapPos position, Color color)
        {
            PointStyleBuilder pointStyleBuilder = new PointStyleBuilder();
            pointStyleBuilder.Color = color;
            pointStyleBuilder.Size = 16;

            return new Point(projection.FromWgs84(position), pointStyleBuilder.BuildStyle());
        }
Exemple #16
0
        public override bool OnVectorTileClicked(VectorTileClickInfo clickInfo)
        {
            LocalVectorDataSource source = (LocalVectorDataSource)layer.DataSource;

            source.Clear();

            Color color = new Color(0, 100, 200, 150);

            Feature  feature  = clickInfo.Feature;
            Geometry geometry = feature.Geometry;

            PointStyleBuilder pointBuilder = new PointStyleBuilder();

            pointBuilder.Color = color;

            LineStyleBuilder lineBuilder = new LineStyleBuilder();

            lineBuilder.Color = color;

            PolygonStyleBuilder polygonBuilder = new PolygonStyleBuilder();

            polygonBuilder.Color = color;

            if (geometry is PointGeometry)
            {
                source.Add(new Point((PointGeometry)geometry, pointBuilder.BuildStyle()));
            }
            else if (geometry is LineGeometry)
            {
                source.Add(new Line((LineGeometry)geometry, lineBuilder.BuildStyle()));
            }
            else if (geometry is PolygonGeometry)
            {
                source.Add(new Polygon((PolygonGeometry)geometry, polygonBuilder.BuildStyle()));
            }
            else if (geometry is MultiGeometry)
            {
                GeometryCollectionStyleBuilder collectionBuilder = new GeometryCollectionStyleBuilder();
                collectionBuilder.PointStyle   = pointBuilder.BuildStyle();
                collectionBuilder.LineStyle    = lineBuilder.BuildStyle();
                collectionBuilder.PolygonStyle = polygonBuilder.BuildStyle();

                source.Add(new GeometryCollection((MultiGeometry)geometry, collectionBuilder.BuildStyle()));
            }

            BalloonPopupStyleBuilder builder = new BalloonPopupStyleBuilder();

            // Set a higher placement priority so it would always be visible
            builder.PlacementPriority = 10;

            string id          = clickInfo.FeatureId.ToString();
            string message     = "(Id: " + id + ") ";
            string name        = feature.Properties.GetObjectElement("name").String;
            string description = feature.Properties.GetObjectElement("description").String.ToMax200Characters();

            if (name.Equals("null"))
            {
                string facility = feature.Properties.GetObjectElement("facility").String;

                if (!facility.Equals("null"))
                {
                    message += facility;
                }
                else
                {
                    message += feature.Properties.ToString();
                }
            }
            else
            {
                message += name;

                if (!description.Equals("null"))
                {
                    message += "\n" + description;
                }
            }

            BalloonPopup popup = new BalloonPopup(clickInfo.ClickPos, builder.BuildStyle(), "", message);

            source.Add(popup);

            if (IsForce)
            {
                Console.WriteLine("Force touch");
                return(false);
            }

            Console.WriteLine("Non-force");
            return(true);
        }