Zitat von vermeer
Und wieder ein Stück weiter - wenn auch nur mit den "Randarbeiten":
Meine Seite "http://www.kitewiese.de/_app_android/nearest,cfm?Lat=<latitude>&Lng=<longitude>" ist fertig,
Klappt ja sehr gut. Hab's gerade mal getestet. Ganz fertig bist du allerdings nocht nicht mit dem Skript.
Das Problem ist, dass du unbedingt ein Trennzeichen zwischen der Beschreibung und dem Abstand benötigst, da du ansonsten Probleme beim Parsen der Antwort bekommen kannst. Die Antwort des Servers sollte also eher so aussehen:
Stadt<Trennzeichen>Abstand
Meine Stadt|7
Andere Stadt|12
Wie du an meinem Beispiel oben sehen kannst, habe ich auch gleich das "km" weggelassen. Das stört nämlich nur beim Verarbeiten der Daten und macht auch nur Sinn, wenn du in manchen Fällen auch mal Meilen zurück gibst. Falls das der Fall ist, dann sollte die Antwort aber eher so aussehen:
Was du auch noch bedenken musst ist, dass du dein Trennzeichen in allen Strings ersetzt. Es könnte nämlich passieren, dass jemand als Stadtname sowas eingibt: "Meine Stadt | Auf dem großen Hügel"
Das Ergebnis wäre dann:
Meine Stadt | Auf dem großen Hügel|7|km
Sowas wird vom Parser natürlich falsch interpretiert. Du musst also in jedem String eventuelle Vorkommen deines Trennzeichens entweder kodieren oder aber einfach durch ein anderes Zeichen ersetzen.
An deiner Stelle würde ich auch noch gleich die Geo-Koordinaten pro Treffer mitübermitteln, da du dann auf dem Android Handy sehr einfach Google-Maps anwerfen kannst und der Benutzer kann sich zum Standort hinnavigieren lassen.
Zitat
die Frage ist jetzt eben "nur": Wie bekomme ich die jetzt auf dem Android angezeigt bzw. wie übermitlle ich den aktuellen Standort.
Wäre schän, wenn mir jemand helfen könnte/würde.
Das mit dem Standort würde ich als letztes machen. Das ist das kleinste Problem, denn den kann man sich einfach vom Telefon zurückgeben lassen.
Sobald du dich für ein Trennzeichen entschieden hast, können wir den Parser bauen. das geht dann ungefähr so:
try
{
URL url = new URL("http://www.kitewiese.de/_app_android/nearest.cfm?Lat=49.540005&Lng=11.026396");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null)
{
// Jede Zeile der Antwort parsen
String line_parts[] = line.split("|");
// Jede Zeile muss aus 2 Komponenten bestehen: Stadt & Entfernung
// Falls fehlerhafte Zeile, diese überspringen
if (line_parts == null || line_parts.length != 2)
continue;
String stadt = line_parts[0];
String entfernung = line_parts[1];
// TODO:
// Stadt und Entfernung als KiteLocation Klasse
// in irgendeinem Vektor speichern.
}
in.close();
}
catch (MalformedURLException e) {}
catch (IOException e) {}
Alles anzeigen