当 google 地图标记被放置在屏幕上的某个位置时如何触发事件?
How to trigger an event when google map marker is dropped at a certain location on screen?
google 地图标记可以在屏幕上拖动,所以我想知道是否有办法在将标记放在屏幕上的某个位置(例如左下角)时触发事件。
我认为标记不会自动删除。它们由您的代码处理。例如,您可以在地图上单击或在地图上长按添加标记。获取该事件并尝试修复
创建布局并初始化地图后,在 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
}
}
});
}
google 地图标记可以在屏幕上拖动,所以我想知道是否有办法在将标记放在屏幕上的某个位置(例如左下角)时触发事件。
我认为标记不会自动删除。它们由您的代码处理。例如,您可以在地图上单击或在地图上长按添加标记。获取该事件并尝试修复
创建布局并初始化地图后,在 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
}
}
});
}