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); }
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); }
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); }
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); }
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())); }
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); }
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); } }
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()); }
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); }