2013-02-28 2 views
32

Я добавляю Маркер по умолчанию Googlemap следующим образом:Всегда показывать карту название маркера в Android

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap(); 

MarkerOptions markerOptions = new MarkerOptions(); 
markerOptions.position(currentLocation.getCoordinate()); 
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate())); 
markerOptions.snippet("Blah"); 

locationMarker = map.addMarker(markerOptions); 
locationMarker.setDraggable(true); 

Как я могу сделать маркер всегда показывать название и фрагмент кода без прикосновения? Я также хотел бы отключить скрытие их при прикосновении.

ответ

3

Просто вернуть ложь для onMarkerClickListener, если вы возвращаете верно показывает infoWindow.

Чтобы скрыть название, когда мы нажимаем на маркер:

map.setOnMarkerClickListener(this); 
... 

@Override 
public boolean onMarkerClick(Marker arg0) {  
    Log.i(TAG,"marker arg0 = "+arg0);    
    return false; 
} 

Если мы возвращаем истинное название будет отображаться, иначе, если мы возвращаем ложное название не будет отображаться.

+0

это возможно для карт Google v2? я возвращаю false, но маркер все еще отображает заголовок ... – Ricky

+0

да. Он работает для V2. Я пробовал только для v2. Существует и другая альтернатива, которая ставится в качестве пустой строки. т.е. "". Но не хорошо – sandeepmaaram

3

Существует два способа отображения и скрытия маркеров. Возвращаемое значение boolean просто предотвращает выполнение по умолчанию (false) или позволяет ему произойти (true). Другими словами, он информирует систему о том, потреблял ли вы это событие или нет. См. Google API Reference.

private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker) { 
     if (marker.isInfoWindowShown()) { 
      marker.hideInfoWindow(); 
     } else { 
      marker.showInfoWindow(); 
     } 
     return true; 
    } 
}; 

mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener); 
2

использовать showInfoWindow() и добавить маркер, как показано ниже.

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text")); 
marker.showInfoWindow(); 
Смежные вопросы