package com.nutiteq.advancedmap3;
import android.os.Bundle;
import com.nutiteq.advancedmap3.datasource.CartoDBSQLDataSource;
import com.nutiteq.advancedmap3.listener.MyMapEventListener;
import com.nutiteq.core.MapPos;
import com.nutiteq.core.MapRange;
import com.nutiteq.datasources.LocalVectorDataSource;
import com.nutiteq.graphics.Color;
import com.nutiteq.layers.VectorLayer;
import com.nutiteq.styles.PointStyleBuilder;
/**
* A sample demonstrating how to use CartoDB SQL API to get data
* and how to create custom VectorDataSource
*/
public class CartoDBSQLActivity extends VectorMapSampleBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// MapSampleBaseActivity creates and configures mapView
super.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.setColor(new Color(0x800000ff)); // blue
pointStyleBuilder.setSize(10);
// Initialize a local vector data source
CartoDBSQLDataSource vectorDataSource1 = new CartoDBSQLDataSource(baseProjection,"https://nutiteq.cartodb.com/api/v2/sql","SELECT cartodb_id,the_geom_webmercator AS the_geom,name,address,bikes,slot,field_7,field_8,field_9,field_16,field_17,field_18 FROM stations_1 WHERE !bbox!",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.getLayers().add(vectorLayer1);
// Set visible zoom range for the vector layer
vectorLayer1.setVisibleZoomRange(new MapRange(14, 23));
// set listener to get point click popups
// 1. 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.getLayers().add(vectorLayer);
mapView.setMapEventListener(new MyMapEventListener(mapView, vectorDataSource));
// finally animate map to the marker
mapView.setFocusPos(baseProjection.fromWgs84(new MapPos(-74.0059, 40.7127)), 1);
mapView.setZoom(15, 1);
}
@Override
protected void onDestroy() {
mapView.setMapEventListener(null);
super.onDestroy();
}
}