Marcador de google maps definido en XML de presentación
¿Es posible definir en la carpeta Layouts (Android) un archivo XML donde especifique cómo se verá mi puntero / marcador? Por ejemplo, me gustaría tener una imagen y un TextView como marcador (no el popup, pero el marcador en sí).
He estado usando Google Maps Utility Library para usar Clusters en Google Maps, pero solo tienen ejemplos de cómo hacerlo usando el marcador blanco normal con el fondo ( ejemplo )
- Map.setmylocationenabled (true) no funciona
- Referencia de mapa de bits desconocida publicada
- Agregando marcador múltiple en google map en android
- Google Maps v2 que centra y que da vuelta a la posición de la cámara para caber dos marcadores
- Mostrar barra de herramientas para el marcador de Google Maps automáticamente
Digamos que quiero exactamente lo que tienen, excepto la pizarra blanca alrededor.
¿Sabes cómo puedo lograr esto?
Gracias por adelantado.
EDITAR:
Estoy intentando combinar este tutorial con Google Maps Utility Library (Clusters). Por ahora tengo esto, pero no funciona:
Custom_cluster_marker_layout.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/image" android:layout_width="55dp" android:layout_height="65dp" android:src="@drawable/cluster" /> <TextView android:id="@+id/num_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="19dp" android:layout_marginTop="10dp" android:gravity="center" android:text="0" android:textColor="#ce8223" android:textSize="25dp" android:textStyle="bold" /> </RelativeLayout>
MeterRender.java
private class MeterRenderer extends DefaultClusterRenderer<MyMeter> { private TextView mClusterTextView; public MeterRenderer() { super(c, map, mClusterManager); View custom_cluster_view = ((LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_cluster_marker_layout, null); mClusterTextView = (TextView) custom_cluster_view.findViewById(R.id.num_txt); } @Override protected void onBeforeClusterItemRendered(MyMeter meter, MarkerOptions markerOptions) { markerOptions.icon(BitmapDescriptorFactory .fromPath(createBillboardTexture("a", "123"))); } @Override protected void onBeforeClusterRendered(Cluster<MyMeter> cluster, MarkerOptions markerOptions) { View custom_cluster_view = ((LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_cluster_marker_layout, null); mClusterTextView = (TextView) custom_cluster_view.findViewById(R.id.num_txt); mClusterTextView.setText(cluster.getSize()); markerOptions.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(c, custom_cluster_view))); } public Bitmap createDrawableFromView(Context context, View view) { DisplayMetrics displayMetrics = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels); view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels); view.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); view.draw(canvas); return bitmap; } }
- Marcadores de mapa con texto en Google Maps Android API v2
- Abrir URL desde Marcador, Android Google Maps V2
- ¿Cómo activar el evento onClick de un marcador en un Google Maps V2 para Android?
- Cómo ocultar la ubicación actual en google map?
- Eliminar marcador anterior y agregar nuevo marcador en Google Map v2
- Android google maps marker desactivar la opción de navegación
- Cómo mostrar el marcador de posición actual en el mapa en android?
- Cómo crear un marcador de mapa de bits personalizado con Android mapa API v2
Probablemente ya has añadido Marker
en tu mapa, así que intenta usar Marker
lugar de MarkerOptions
@Override protected void onBeforeClusterItemRendered(MyMeter meter, Marker marker) { marker.setIcon(BitmapDescriptorFactory .fromPath(createBillboardTexture("a", "123"))); } @Override protected void onBeforeClusterRendered(Cluster<MyMeter> cluster, Marker marker) { View custom_cluster_view = ((LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_cluster_marker_layout, null); mClusterTextView = (TextView) custom_cluster_view.findViewById(R.id.num_txt); mClusterTextView.setText(cluster.getSize()); marker.setIcon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(c, custom_cluster_view))); }
Puede usar su propia imagen como marcador. Puede cargar el icono de fuentes.
fromAsset(String assetName) – Loading from assets folder fromBitmap (Bitmap image) – Loading bitmap image fromFile (String path) – Loading from file fromResource (int resourceId) – Loading from drawable resource // create marker MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Hello Maps"); // Changing marker icon marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon))); // adding marker googleMap.addMarker(marker);