¿Cómo mostrar tanto MarkerIcon como Title en google map como Google Apps?

Cuando encuentro los restaurantes más cercanos en Google Maps Android Application, el nombre del restaurante se muestra cerca del icono de marcador como predeterminado. (Refer Google Image).

Pero en mi aplicación tengo que hacer lo mismo cuando busco restaurantes más cercanos, puedo mostrar sólo iconos de marcador. (Refer My Image de la aplicación).

Imagen de Google:

imagen de Google

Mi imagen de aplicación:

Mi imagen de aplicación

Solución parcial: Aquí encontré solución parcial para esto obtenemos esto dibujando un texto usando lienzo. Utilicé debajo del código refieren por estos acoplamientos aquí y aquí pero el dibujo de la lona que corta de mi texto. Referir imagen adjunta TextDrawn Image

Marker myLocMarker = map.addMarker(new MarkerOptions() .position(myLocation) .icon(BitmapDescriptorFactory.fromBitmap(writeTextOnDrawable(R.drawable.bluebox, "your text goes here")))); private Bitmap writeTextOnDrawable(int drawableId, String text) { Bitmap bm = BitmapFactory.decodeResource(context.getResources(), drawableId) .copy(Bitmap.Config.ARGB_8888, true); Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.BLACK); paint.setTextAlign(Paint.Align.CENTER); paint.setLinearText(true); paint.setAntiAlias(true); paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); paint.setTextSize(35); Rect textRect = new Rect(); paint.getTextBounds(text, 0, text.length(), textRect); Canvas canvas = new Canvas(bm); //Calculate the positions // int xPos = (canvas.getWidth() / 2) - 2; //-2 is for regulating the x position offset //"- ((paint.descent() + paint.ascent()) / 2)" is the distance from the baseline to the center. // int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint.ascent()) / 2)) ; canvas.drawText(text, canvas.getHeight() + 2, canvas.getHeight() + 2, paint); return bm; } 

Imagen de TextDrawn:

5 Solutions collect form web for “¿Cómo mostrar tanto MarkerIcon como Title en google map como Google Apps?”

Hay varias fuentes de iconos, y la API de Places proporciona detalles suficientes para que pueda elegir el icono correcto para cada lugar. No estoy familiarizado con Android, así que sólo voy a tocar ligeramente en eso.

La forma en que las cosas son hoy en día, yo diría que el truco es encontrar un conjunto confiable de iconos con los que puedes trabajar.

  1. La opción más segura puede ser Colocar los iconos propios de la API. Al menos en el servicio web, cada lugar como un campo de icon que apunta a una URL. Al ser parte de una API compatible, me sentiría más cómodo dependiendo de estos iconos – salvo por tener mis propios iconos. Aquí está el de bares:

Introduzca aquí la descripción de la imagen

  1. Si te gustan, y no te importa que puedan irse algún día sin previo aviso, podrías usar los iconos independientes de la Graph API desaconsejados . Por lo menos éstas sólo cambiarán una vez: de estar disponible a no estar disponible. No parecen especialmente bien:

Introduzca aquí la descripción de la imagen

  1. Si de verdad quieres los mismos iconos que se utilizan en los resultados de búsqueda de Google Maps y disfruta viviendo a la perfección, puedes eliminar sus URL de Google Maps. Tenga cuidado: estos pueden cambiar en cualquier momento, por lo que un día puede despertar sin iconos! ─ y puede cambiar a menudo, no sólo una vez.

Introduzca aquí la descripción de la imagen

Sin embargo, si utilizas la API de Places para Android, puedo imaginar que estás buscando una solución basada en el servicio web de la API de Places.

Parece que el objeto Place no tiene getIcon() o algo similar, por lo que tendría que crear su propia asignación desde la salida de getPlaceTypes() a los iconos. Creo que sería razonable pedirle a Google que agregue un método getIcon() que haría esto por usted, así que recomiendo presentar una solicitud de característica para ello.

Pruebe con el marcador de mapa personalizado. Puede crear su propia vista y establecer esa vista en el marcador.

Paso 1: Cree un archivo de diseño personalizado basado en sus necesidades e infle.

  View customMarker = LayoutInflater.from(getApplicationContext()).inflate(R.layout.custom_marker, null); 

Paso 2: Convertir vista personalizada a mapa de bits.

 public static Bitmap createDrawableFromView(Context context, View view) { DisplayMetrics displayMetrics = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 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; } Bitmap customeViewBitmap = createDrawableFromView(context, customMarker); 

Paso 3: Cree el marcador con el mapa de bits resultante y agréguelo al objeto google map.

 GoogleMap googleMap = googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById( R.id.map)).getMap(); googleMap.addMarker(new MarkerOptions() .position(latLng) .icon(BitmapDescriptorFactory.fromBitmap(customeViewBitmap))); 

Paso 4: Agregue el marcador de MarkerClick

 googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { //Your logic here return false; } }); 

Esos no son Marcadores. Creo que se agregan a la base de datos de Google Places, utilizando el API de añadir lugares .

Lo que puedo sugerir, es para que usted pueda recuperar el resultado de lugares, y utilizar los resultados como title cuando se está agregando Markers .

Mi enfoque de su situación sería utilizar iconos dinámicos de Google Maps .

Puede ser desaprobado, pero no soy consciente de una alternativa mejor en este momento. Con esta biblioteca usted podría crear los pernos con los iconos y las letras dentro, que creo que es exactamente lo que usted quiere.

Por ejemplo, el siguiente enlace

https://chart.googleapis.com/chart?chst=d_map_spin&chld=2.1|35|FFFF88|11|_|A|Balloon !

Creará la siguiente imagen

globo

La biblioteca es extensa y tiene un montón de opciones, esto es sólo la punta del iceberg.

¡Espero eso ayude!

Después de unos días de investigación termino con esta solución. Podemos configurar su propio diseño en IconGenerator

  View marker = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_marker_layout, null); TextView numTxt = (TextView) marker.findViewById(R.id.num_txt); numTxt.setText("Naveen"); final IconGenerator mIconGenerator = new IconGenerator(getApplicationContext()); mIconGenerator.setContentView(marker); Bitmap icon = mIconGenerator.makeIcon(); customMarker = mMap.addMarker(new MarkerOptions() .position(markerLatLng) .title("Title") .snippet("Description") .icon(BitmapDescriptorFactory.fromBitmap(icon)) .anchor(0.5f, 1)); 

CustomMapMarker

  • Google Maps API v2 SupportMapFragment dentro de ScrollView - los usuarios no pueden desplazar el mapa verticalmente
  • Android - Google Maps API v2 - NoClassDefFoundError
  • Android Maps API requiere openGL es 2
  • Recibiendo la pantalla ambigua del cielo mientras que carga el mapa de google
  • Vector sin conexión TileProvider que extiende google map api v2 en android
  • Google Maps API v2: ¿Cómo hacer que los marcadores se puedan hacer clic?
  • java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout no se puede convertir en com.google.android.maps.MapView
  • Instrucciones API en Android
  • Android: java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable
  • Cómo personalizar el color state_pressed de un infowindow en Google Maps?
  • Adición de un botón a una vista personalizada de InfoWindowAdapter que puede registrar clics
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.