¿Cómo agregar texto sobre polilínea en google maps?

Tengo 2 marcadores, me gustaría dibujar una línea entre ellos, y tener un texto que muestra la distancia por encima de la línea, al igual que en la versión web de google maps.

Mapas

Ya he encontrado este ejemplo sobre dibujar una línea entre 2 marcadores, pero ¿cómo puedo añadir texto por encima de la línea?

Una idea sería calcular el punto medio entre los dos marcadores usando sus coordenadas lat y long y luego poner un infowindow con la información que desea mostrar. O algo como lo siguiente podría ayudar: Link

Tuve una situación para mostrar la distancia entre dos marcadores por encima de la polilínea.

A continuación se muestra cuál era mi requisito:

Introduzca aquí la descripción de la imagen

Me las arreglé para hacerlo de alguna otra manera y es bastante interesante manera, de esta manera se puede personalizar para lograr cualquier cosa.

Pasos:

  1. Calcular la distancia entre los marcadores mediante el método Location.distanceBetween () .
  2. Cree un nuevo archivo Layout XML y cree cualquier tipo de UI de UI que desee mostrar para su texto. En mi caso contenía sólo un TextView .
  3. Establezca la distancia calculada en TextView .
  4. Convierta el XML Layout en Bitmap de Bitmap .
  5. Cree un BitmapDescriptor de ese objeto Bitmap .
  6. Averigüe el punto medio entre los marcadores deseados y añada un marcador personalizado utilizando el BitmapDescriptor creado en el último paso y ya está.

Código:

Para calcular la distancia entre dos marcadores

 float[] distance1 = new float[1]; Location.distanceBetween(userMarker.getPosition().latitude, userMarker.getPosition().longitude, positionMarker.getPosition().latitude, positionMarker.getPosition().longitude, distance1); 

Crear mapa de bits desde el archivo de diseño XML

 LinearLayout distanceMarkerLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.distance_marker_layout, null); distanceMarkerLayout.setDrawingCacheEnabled(true); distanceMarkerLayout.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); distanceMarkerLayout.layout(0, 0, distanceMarkerLayout.getMeasuredWidth(), distanceMarkerLayout.getMeasuredHeight()); distanceMarkerLayout.buildDrawingCache(true); TextView positionDistance = (TextView) distanceMarkerLayout.findViewById(R.id.positionDistance); positionDistance.setText(distance1[0]+" meters"); Bitmap flagBitmap = Bitmap.createBitmap(distanceMarkerLayout.getDrawingCache()); distanceMarkerLayout.setDrawingCacheEnabled(false); BitmapDescriptor flagBitmapDescriptor = BitmapDescriptorFactory.fromBitmap(flagBitmap); 

Para averiguar el punto medio entre dos marcadores hacer algo como lo siguiente:

 double dLon = Math.toRadians(flagMarker.getPosition().longitude - positionMarker.getPosition().longitude); double lat1 = Math.toRadians(positionMarker.getPosition().latitude); double lat2 = Math.toRadians(flagMarker.getPosition().latitude); double lon1 = Math.toRadians(positionMarker.getPosition().longitude); double Bx = Math.cos(lat2) * Math.cos(dLon); double By = Math.cos(lat2) * Math.sin(dLon); double lat3 = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt((Math.cos(lat1) + Bx) * (Math.cos(lat1) + Bx) + By * By)); double lon3 = lon1 + Math.atan2(By, Math.cos(lat1) + Bx); lat3 = Math.toDegrees(lat3); lon3 = Math.toDegrees(lon3); 

Agregue un nuevo marcador de cutom utilizando el descriptor de mapa de bits creado por nosotros en los pasos anteriores

 Marker centerOneMarker = mMap.addMarker(new MarkerOptions() .position(new LatLng(lat3, lon3)) .icon(flagBitmapDescriptor)); 

Espero que te ayude.

  • Android agrega a las ubicaciones de los usuarios (Google maps)
  • Cómo utilizar Viewport Marker Management en Android
  • Android google maps Polígono añadir círculo agujero
  • Google map android api v2 falla en la aplicación
  • Obtener latitud y longitud del nombre de la ciudad
  • La API de Google Maps para Android no funciona con debug.keystore
  • ¿Existe una funcionalidad como el método onFirstFix en el Android Maps Api V2?
  • Android mapa api-2 deshabilitar haga clic
  • Cómo agregar animaciones personalizadas en Google Map V3 Marker cuando suelto cada marcador uno por uno?
  • Cómo calcular el radio visible en Google Maps en Android
  • ¿Cuándo puedes llamar a GoogleMap.moveCamera después de onMapReady de OnMapReadyCallback?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.