Как вызвать событие, когда маркер карты Google сбрасывается в определенном месте на экране?
Маркер карты Google можно перетаскивать по экрану, поэтому я хочу знать, есть ли способ вызвать событие, когда маркер опускается в определенном месте на экране, скажем, слева внизу.
2 ответа
Решение
После создания макета и инициализации карты добавьте следующий код в onCreate();
View mapView = getSupportFragmentManager().findFragmentById(R.id.map).getView();
if (mapView.getViewTreeObserver().isAlive()) {
mapView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CENTER, 15));
Point markerScreenPosition = map.getProjection().toScreenLocation(marker.getPosition());
int x = markerScreenPosition.getX();
int y = markerScreenPosition.getY();
if(x == yourValue && y == yourValue){
//your trigger code goes here
}
}
});
}
Я думаю, что маркеры не сбрасываются автоматически. они обрабатываются вашим кодом. например, вы можете добавить маркер на карту клик или на карту длинный клик. получить это событие и попытаться исправить