gpt4 book ai didi

android - 移动 map 时如何更新标记?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:58 24 4
gpt4 key购买 nike

我正在使用 Algolia 的 InstantSearch Android 库。

这是我的查询:

searcher.setQuery(new Query().setAroundLatLngViaIP(true).setAroundRadius(5000)).

但是当我移动 map 时,标记会留在原地。如何在移动 map 位置 View 时在 map 上显示新标记?

最佳答案

所以基本上你想听 map 变化,每次用户拖动 map 并重新加载结果?这是你应该做的:

public class AwesomeCameraActivity extends FragmentActivity implements
OnCameraIdleListener,
OnMapReadyCallback {

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_camera);

SupportMapFragment mapFragment =
(SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}

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

mMap.setOnCameraIdleListener(this);

// Show the initial position
mMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(new LatLng(YOUR_LATITUDE, YOUR_LONGITUDE), 10));
}

@Override
public void onCameraIdle() {
// The camera / map stopped moving, now you can fetch the center of the map
GeoPoint center = mMap.getProjection().fromPixels(mMap.getHeight() / 2, mMap.getWidth() / 2);
double centerLat = (double)center.getLatitudeE6() / (double)1E6;
double centerLng = (double)center.getLongitudeE6() / (double)1E6;

// Now fire a new search with the new latitude and longitude
searcher.setQuery(new Query().setAroundLatLng(new AbstractQuery.LatLng(centerLat, centerLng)).setAroundRadius(5000))
}
}

关于android - 移动 map 时如何更新标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616352/

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