【发布时间】:2021-02-27 03:49:21
【问题描述】:
应用程序有一个带有标记的地图,标记的可见性设置为 false,我希望当设备位于任何标记的某个范围内时显示标记,结果将该标记设置为可见。我认为它与方法 location.distanceTo(anotherLocation) 有关,然后在距离小于以米为单位的预定义距离时显示位置。但我无法完成这项工作。
这是从数组列表中将标记添加到地图上的方法。
for(MyLatLngData location : locations){
mMap.addMarker(new MarkerOptions()
.position(location.getLatLng())
.title(location.getTitle())
.visible(false));
}
这是我如何使用 MyLatLngData 对象将数据存储在数据库中的数组中。
void storeDataInArrays() {
Cursor cursor = databaseHelper.readAllData();
if (cursor.getCount() == 0) {
Toast.makeText(this, "No data", Toast.LENGTH_SHORT).show();
} else {
while (cursor.moveToNext()) {
// remove all previous list adds.
locations.add(new MyLatLngData(
cursor.getString(0),
cursor.getString(1),
cursor.getDouble(2),
cursor.getDouble(3)));
}
}
}
如何使用 distanceTo 方法考虑所有位置以及如何将第一个位置设置为 fusedLocationProvider 的当前位置。
作为补充,我希望保存标记的状态,以便设置为可见的状态保持可见。
非常感谢,我希望有人可以帮助解决这个问题,因为我的编程技能仍在磨练中。
【问题讨论】:
标签: java android google-maps google-maps-markers