package com.nutiteq.advancedmap3; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import com.nutiteq.advancedmap3.R; import com.nutiteq.core.MapPos; import com.nutiteq.core.MapRange; import com.nutiteq.datasources.LocalVectorDataSource; import com.nutiteq.layers.VectorLayer; import com.nutiteq.styles.MarkerStyle; import com.nutiteq.styles.MarkerStyleBuilder; import com.nutiteq.utils.BitmapUtils; import com.nutiteq.vectorelements.Marker; /** * A sample demonstrating how to use markers on the map. This involves creating * a data source for the markers, creating a layer using the data source, loading * marker bitmaps, creating style for the marker and finally adding the marker to the data source. * For multiple markers, the same data source, layer and style should be reused if possible. */ public class PinMapActivity extends VectorMapSampleBaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { // MapSampleBaseActivity creates and configures mapView super.onCreate(savedInstanceState); // Add a pin marker to map // 1. Initialize a local vector data source LocalVectorDataSource vectorDataSource1 = new LocalVectorDataSource(baseProjection); // 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(0, 18)); // 2. Create marker style Bitmap androidMarkerBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.marker); com.nutiteq.graphics.Bitmap markerBitmap = BitmapUtils.createBitmapFromAndroidBitmap(androidMarkerBitmap); MarkerStyleBuilder markerStyleBuilder = new MarkerStyleBuilder(); markerStyleBuilder.setBitmap(markerBitmap); //markerStyleBuilder.setHideIfOverlapped(false); markerStyleBuilder.setSize(30); MarkerStyle sharedMarkerStyle = markerStyleBuilder.buildStyle(); // 3. Add marker MapPos markerPos = mapView.getOptions().getBaseProjection().fromWgs84(new MapPos(13.38933, 52.51704)); // Berlin Marker marker1 = new Marker(markerPos, sharedMarkerStyle); vectorDataSource1.add(marker1); // finally animate map to the marker mapView.setFocusPos(markerPos, 1); mapView.setZoom(12, 1); } }