2014-11-15 3 views
0

Это должно быть легко, но я не могу найти что-либо, чтобы помочь.Постоянное название с маркером в Картах Google Api v2

Я устанавливаю пользовательский маркер для Google Maps Api так:

MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Fisk"); 
    marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.doghouse)); 
    mMap.addMarker(marker); 

Я хотел, чтобы иметь возможность сделать название постоянными, так что она всегда показывает. Мне также интересно, как изменить внешний вид названия! Название в конечном итоге будет динамичным, или я бы сделал изображение, включающее название.

ответ

1

Прежде всего, следует отметить некоторые особенности GoogleMaps:

  • Невозможно отобразить несколько маркер InfoWindow сек
  • Marker конкретные нажмите слушатели не доступны, хотя вы могли бы проверить, какой маркер щелкнул
  • Нажмите на маркерах, скрывает InfoWindow, даже если вы потребляете клик в слушателе
  • Нажмите на карту, закрывает открытую InfoWindow

Чтобы преодолеть те вот кусок кода:

final Marker marker = mMap.addMarker(new MarkerOptions().position(
     new LatLng(51.5072, 0.1275)).title("B")); 
marker.showInfoWindow(); 

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker m) { 
     marker.showInfoWindow(); 
     return true; // Consume the clicks 
    } 
}); 

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
    @Override 
    public void onMapClick(LatLng latLng) { 
     marker.showInfoWindow(); 
    } 
}); 

Примечание: Это будет работать с одним маркером, если вы хотите использовать несколько названий Marker видимых в то же время, вы лучше добавлять накладку ,

+0

Эй, спасибо за вход! Я получаю сообщение об ошибке «не могу найти маркер класса Marker», я, очевидно, новичок в этом, есть простой способ выяснить, какие классы мне нужно импортировать, чтобы иметь доступ к этому? – user1610719

+0

@ user1610719 У вас есть несколько вариантов. Во-первых: [google] (http://bit.ly/11r36Td), во-вторых: используйте IDE (Eclipse, AS и т. Д.), Что позволяет легко импортировать с помощью сочетания клавиш. – Simas

+0

Человек, который был бы так легко, если бы знал, что это называется InfoWindow! Спасибо, теперь. Для других это отличный ресурс https://developers.google.com/maps/documentation/android/infowindows. – user1610719

1

Вы можете сделать свой собственный макет маркера и добавить этот

LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.test_layout, null, false); 
     tv.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); 

     tv.setDrawingCacheEnabled(true); 
     tv.buildDrawingCache(); 
     Bitmap bm = tv.getDrawingCache(); 


and  BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(bm); 
       BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher); 
       map.addMarker(new MarkerOptions().position(new LatLng(latitudemy, longitudemy)).title("xxxx").snippet("xxxxx").icon(icon)); 
Смежные вопросы