У меня есть база данных sqlite, которая содержит транспортные станции, я дублировал некоторые станции в базе данных, потому что они находятся в разных строках, поэтому я использовал курсор:
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
float[] results = new float[1];
Database db = new Database(Stations.this);
try {
db.createDataBase();
} catch (IOException ioe) {
throw new Error("unable to create database");
}
try {
db.openDataBase();
} catch (SQLException sqle) {
throw sqle;
}
Cursor c = db.query("Stations", null, null, null, null, null, null);
if (c.moveToFirst()) {
do {
Location.distanceBetween(latitude, longitude, c.getDouble(4), c.getDouble(3), results);
if (results[0] < 1000) {
googleMap.addMarker(new MarkerOptions().position(new LatLng(c.getDouble(4), c.getDouble(3))).title(c.getString(1) + " " + c.getString(2)));
Toast.makeText(this, "nearby station "+ " " + c.getString(2) + "\n", Toast.LENGTH_SHORT).show();
}
}
while (c.moveToNext());
}
if (googleMap != null) {
LatLng googleLocation = new LatLng(latitude, longitude);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(googleLocation));
}
}
Это отображает станции, но дублируется, если станция упоминается дважды в базе данных, как я могу справиться с этим и не показывать станцию, которая уже была замечена, зная, что 2 станции имеют разные идентификаторы, но одинаковые имена ??