Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-07-2011, 12:51   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 33
Geonames und was nun?

Hey Leute,

bin mit meiner Teampartnerin grad an eine Grenze gekommen, die wir nicht mal zu zweit überwinden. Und zwar geht es darum, dass wir den Webservice "Geonames", bestimmt bei allen bekannt, nutzen sollen, um mit Hilfe der Länge- und Breitengrade die Höhe an diesen Punkten zu bekommen. Nun ist das Problem, das wir leider absolut keinen Plan haben wie wir diesen Service ansprechen sollen, da wir 15.000+ Punkte haben und von allen die Höhenangaben brauchen ist die URL natürlich dynamisch, da folgende URL benötigt wird:

api.geonames.org/astergdemXML?lat=EINELATZAHL&lon=EINELONZAHL&usern ame=demo

Die Lat und Lon Zahlen sind in einem Array zwischen gespeichert und sollen nacheinander über diese URL an den Webservice geschickt werden.

Ich hoffe ihr könnt uns helfen, wie wir das richtig machen können

So far
Wong

P.S.: Ich weiß nicht ob schonmal so ein Thema existiert hat, aber wir haben das Internet zu zweit abgesucht und nichts gefunden, daher geh ich davon aus, dass wir die ersten sind die danach fragen
MrWong ist offline   Mit Zitat antworten
Alt 05-07-2011, 13:20   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Wieso ist das ein Flex Thema?
Omega Psi ist offline   Mit Zitat antworten
Alt 05-07-2011, 13:25   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von MrWong Beitrag anzeigen
... den Webservice "Geonames", bestimmt bei allen bekannt,...
Nicht wirklich - Danke für den Link

Laut Dokumentation heißt die Variable lng nicht lon Und damit funktioniert's dann auch:
http://api.geonames.org/astergdemXML...&username=demo

Oder liegt Euer Problem beim Laden und Verarbeiten des XMLs? Wenn ja: mit welcher AS-Version arbeitet ihr?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 05-07-2011, 13:42   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 33
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Wieso ist das ein Flex Thema?
Weil wir in Flex programmieren Und mein Thema das letzte mal hier her verschoben wurde, als ich es in der AS3 Section schrieb


Zitat:
Zitat von Martin Kraft Beitrag anzeigen
Nicht wirklich - Danke für den Link
Erstmal danke für die schnelle Antwort und sorry wegen dem Link =)

Wir arbeiten mit AS3 und ja unser Problem besteht sowohl in dem was ich bereits geschrieben habe, als auch in der Frage wie wir dann mit dem Ergebniss umgehen sollen, denn letzten Endes müssen ja auch alle zurück gelieferten Werte (ich dachte da an eine XML die zurück geliefert werden soll) ihren Ursprünglichen Punkten wieder zugewiesen werden, da wir aber davon ausgehen, dass die Werte unsortiert zurück kommen, fehlt uns die Sortierung und irgendwie kommen da auch nicht weiter...

So far
Wong

Geändert von MrWong (05-07-2011 um 13:44 Uhr)
MrWong ist offline   Mit Zitat antworten
Alt 05-07-2011, 14:29   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Wie sieht denn der Code für die Anfrage bisher aus? Und wo steht er?

Wenn z.B. jeder Punkt eine eigene Instanz ist, die selbstständig diese URL lädt, gibt es doch gar kein Zuordnungsproblem. Das Ergebnis kommt genau in der Instanz an, die es auch geladen hat...

Zitat:
Zitat von MrWong Beitrag anzeigen
(ich dachte da an eine XML die zurück geliefert werden soll)
Was ja auch passiert:

http://api.geonames.org/astergdemXML...&username=demo
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<geonames>
<astergdem>192</astergdem>
<lat>50.01</lat>
<lng>10.2</lng>
</geonames>
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 05-07-2011, 20:53   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 33
Martin wie meinst du das mit der Instanz? Da steig ich grad nicht so recht hinter? Also momentan komm ich leider nicht an den Code ran, sitz nämlich grad am Laptop und entferne mich mit jeder Minute weiter von meine Desktop PC

Aber wir haben es so gemacht, dass wir ein mehrdimensionales Array erstellen, indem die Lat und Lng Points zwischen gespeichert sind, dann gehen wir mit einer for-Schleife jedes Element des Arrays durch und starten so für jeden Eintrag ein http.send().

Und dann fangen wir die Ergebnisse mit der Event Funktion vom HTTPService wieder ab. Aber da dies ja völlig unsortiert erfolgt weiß ich halt nicht wie wir das wieder zusammen fügen sollen, klar es gibt die alternative aus der zurück gesendeten XML ein neues mehrdimensionales Array zu machen, wo alle drei Daten (Lat,Lng,Höhe) eingespeichert werden, aber das scheint mir irgendwie nicht wirklich sinnvoll

So far
MrWong ist offline   Mit Zitat antworten
Alt 05-07-2011, 22:15   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von MrWong Beitrag anzeigen
Martin wie meinst du das mit der Instanz? Da steig ich grad nicht so recht hinter?
Ich würde zum Speichern der Wertpaare eine Klasse anlegen, von dieser dann für jeden Punkt eine Instanz erzeugen und die Instanzen dann in einem Array (oder Vector) speichern.

Habt ihr schonmal mit Klassen gearbeitet?
Wenn ich morgen etwas Zeit habe, schreib ich Euch mal ein Beispiel.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 05-07-2011, 22:41   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 33
Das wär super von dir =) Ich hab glaub ich schon so ziemlich verstanden, was du meinst, aber ein beispiel ist einfach besser

Ok bin jetzt am Code dran und hab die URL abgeändert...es war tatsächlich nur dieser dumme kleine Fehler "lng" statt "lon". Dafür schonmal ein riesen Danke und ich bin auf morgen gespannt, ob ich dich richtig verstanden habe

So far
Wong
MrWong ist offline   Mit Zitat antworten
Alt 06-07-2011, 10:34   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
So - hier die Klasse:
PHP-Code:
package {
    
import flash.events.Event;
    
import flash.events.EventDispatcher;
    
import flash.net.URLLoader;
    
import flash.net.URLRequest;
    
    public class 
GeoLocation extends EventDispatcher{
        
        
////
        
        
public var longitude:Number;
        public var 
latitude    :Number;
        
        public var 
elevation:Number;
        
        
///////////////////////////////////////////
        
        
public function GeoLocationlatitude:Number 0longitude :Number ) {
            
// Daten übernehmen
            
this.latitude latitude;
            
this.longitude longitude;
            
            
// Höhe laden
            
loadElevation();
        }
        
        
///////////////////////////////////////////
        
        
public function loadElevation():void {
            var 
urlLoader:URLLoader = new URLLoader();
            
urlLoader.addEventListener(Event.COMPLETEupdateElevation);
            
urlLoader.load( new URLRequest("http://api.geonames.org/astergdemJSON?lat="+latitude+"&lng="+longitude+"&username=demo" ) );
        }
        
        
////
        
        
private function updateElevation(event:Event):void {
            
// Höhe aus XML auslesen
            
var xml:XML = new XMLURLLoader(event.target).data );
            
elevation Numberxml.astergdem[0] );
            
            
// Ein Ereignis auslösen um anderen Elementen mitzuteilen, das der LAdevorgang abgeschlossen wurde
            
dispatchEvent( new Event(Event.COMPLETE) );
        }
    }
    

Und ein Code-Schnipsel zum testen:
PHP-Code:
var locations:Vector.<GeoLocation> = new Vector.<GeoLocation>();

private function 
showElevation(event:Event):void {
    var 
location:GeoLocation GeoLocation(event.target);
    
trace("latitude:"+location.latitude+", longitude:"+location.longitude+", elevation:"+location.elevation);
}

var 
location:GeoLocation;            
for (var 
i:Number = -9090i++) {
    
location = new GeoLocation
        
i,
        
Math.random() * 360 180
    
);
    
    
trace(i);
    
    
location.addEventListener(Event.COMPLETEshowElevation);
    
locations.push(location);

Der Demo-Account läßt nur wenige Zugriffe zu, so dass ich es leider nicht wirklich testen konnte.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 07-07-2011, 05:50   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2011
Beiträge: 33
Zitat:
Zitat von MrWong Beitrag anzeigen
WOW vielen vielen Dank =) Jetzt hab ich es kapiert ^^ Ich danke dir Martin.

Ja das stimmt wohl, aber leider müssen wir uns auch mit dem Demo Account zufrieden geben.

Nochmals vielen Dank

So far
Wong

PROBLEM SCHEINT ERLEDIGT: Es scheint so, als ob man pro Stunde maximal 2000 Anfragen senden darf. Was bei einer Liste von teilweise 15.000+ Punkten extrem bescheiden ist... müssen mal gucken wie wir das regeln. Jedenfalls nochmal Danke und sollte es doch irgendwie falsch sein, melde ich mich nochmal ^^

So far
Wong

Geändert von MrWong (07-07-2011 um 05:56 Uhr)
MrWong ist offline   Mit Zitat antworten
Alt 07-07-2011, 07:34   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Hab's verschoben weil es nur um das Laden und Verarbeiten von Webservices Daten ging - nichts Flex spezifisches.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele