Ich habe eine Android App geschrieben und mich gefragtWenn es eine API gibt, die das Einfügen eines vom GPS erhaltenen Breiten- und Längengrads sowie des Radius R unterstützt, ermitteln Sie den neuen Breiten- und Längengrad mit einer sehr hohen Genauigkeit. Vorzugsweise ein Java-Code. Angenommen, der aktuelle Standort ist curX und curY Jetzt können maxX und maxY innerhalb eines Radius von 200 Metern um diesen Ort liegen. Wenn ich also eine Liste mit Einträgen habe, drucke ich nur die Einträge innerhalb des maximalen Bereichs. Damit der Vergleich stimmt, sollte die Präzision hoch sein. Gibt es eine API, die das kann? Irgendeine Formel? (in Java)
So the function is
findNewLatitude(curLat,curLong,oldList,radius)
{
do bla bla bla; //Find a newList with respect to current Geo points on MAP and considering the radius
}
output: newList such that distance between (lat,long) in newList and
(curLat,curLong) is equal to radius
Antworten:
1 für die Antwort № 1Versuche dies :
Geocoder coder = new Geocoder(this);
List<Address> address;
try {
address = coder.getFromLocationName(strAddress,5);
if (address == null) {
return null;
}
Address location = address.get(0);
location.getLatitude();
location.getLongitude();
p1 = new GeoPoint((int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
return p1;
}
Siehe diese Antwort Wie erhalte ich den Namen der Stadt aus den Breiten- und Längengradkoordinaten in Google Maps?
Wie ändert man den Abstand von 1 Meter zu Pixel?
0 für die Antwort № 2
Ich vermute, Sie suchen nach dieser Methode:
Dadurch wird die Entfernung zwischen zwei Standorten berechnet
0 für die Antwort № 3
List<Location> filter(Location current, List<Location> locations, int radius) {
List<Location> results = new ArrayList<Location>();
for (Location loc : locations) {
if (current.distanceTo(loc) <= radius) {
results.add(loc);
}
}
return results;
}