gpt4 book ai didi

android - Android 上的拖动 map 监听事件

转载 作者:行者123 更新时间:2023-12-01 09:22:11 25 4
gpt4 key购买 nike

伙计们,我构建了一个具有 SupportMapFragment 的 fragment ,我希望能够拖动 map 并检测相机显示的新“区域”,以便我可以在该区域内加载我的标记。

 ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);

在 mapReadycall back 上我添加了一个 onCameraChangeListener:

 @Override
public void onMapReady(GoogleMap googleMap) {

googleMap.getUiSettings().setZoomControlsEnabled(false);
googleMap.getUiSettings().setMyLocationButtonEnabled(true);

googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {

showItemsinMap(cameraPosition.target.latitude, cameraPosition.target.longitude);

}
});

}

我的 map 上还有另一个功能,我可以在它上面拖动一个多边形,并使用 getProjection 方法获取区域内的标记:

LatLng latLng = map.getProjection().fromScreenLocation(x_y_points);

其中 x_y_points 是屏幕上的 x,y 坐标,然后我创建一个多边形并添加 get SW、SE、NW 和 NE 点以获得要搜索标记的区域。

处理 map 上新区域的最佳方法是什么?

最佳答案

从 map v2 开始回调 onCameraMoveStarted 是您开始的关键。

   @Override
public void onMapReady(GoogleMap map) {
mMap = map;

mMap.setOnCameraIdleListener(this);
mMap.setOnCameraMoveStartedListener(this);
mMap.setOnCameraMoveListener(this);
mMap.setOnCameraMoveCanceledListener(this);

// Show Sydney on the map.
mMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(new LatLng(-33.87365, 151.20689), 10));
}

@Override
public void onCameraMoveStarted(int reason) {

if (reason == OnCameraMoveStartedListener.REASON_GESTURE) {
Toast.makeText(this, "The user gestured on the map.",
Toast.LENGTH_SHORT).show();
} else if (reason == OnCameraMoveStartedListener
.REASON_API_ANIMATION) {
Toast.makeText(this, "The user tapped something on the map.",
Toast.LENGTH_SHORT).show();
} else if (reason == OnCameraMoveStartedListener
.REASON_DEVELOPER_ANIMATION) {
Toast.makeText(this, "The app moved the camera.",
Toast.LENGTH_SHORT).show();
}
}

关于android - Android 上的拖动 map 监听事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com