skipper6340: Funktionsaufruf

Hallo zusammen, bin mal wieder am werkeln und baue Google Maps auf meiner Webseite ein.

Da ich alles immer etwas komplizierter mache habe ich folgendes Problem: Die Zeile 'var mapcenter = new GLatLng(last_position);' löst das last_position nicht auf und es bleibt immer die Konstante.

Ich habe es schon auf verschiedene weisen versucht so "47.1844084,8.5316098" und auch so 47.1844084,8.5316098; nichts geht.

Zur Info. Die Funktion 'get_last_track_position()' liest aus einem XML File den letzten Eintrag. Funktioniert! In GLatLng wird die Google Maps Karte positioniert.

Danke für eine Hilfe und Ciao Skipper6340

  
<head>  
	<script type="text/javascript">  
		function get_last_track_position() {  
	........  
	........  
			return position;  
		}  
	</script>  
</head>  
	<script type="text/javascript">  
		function initialize(last_position) {  
			var last_position = get_last_track_position();  
			alert(last_position);  
			if (GBrowserIsCompatible()) {  
	........  
	........  
				<!-- var mapcenter = new GLatLng(47.1844084,8.5316098);  
				var mapcenter = new GLatLng(last_position);  
	........  
	........  
			}  
		}  
	</script>  
<body>	  
  

  1. Hallo,

    <head>
    <script type="text/javascript">
    function get_last_track_position() {
    ........
    ........
    return position;
    }
    </script>
    </head>
    <script type="text/javascript">
    function initialize(last_position) {
    var last_position = get_last_track_position();
    alert(last_position);
    if (GBrowserIsCompatible()) {
    ........
    ........
    <!-- var mapcenter = new GLatLng(47.1844084,8.5316098);
    var mapcenter = new GLatLng(last_position);
    ........
    ........
    }
    }
    </script>
    <body>

    Gruß  
      
    warum wird ein Parameter angegeben, wenn er gleich überschirieben wird ("last\_position")?  
      
    jobo
    
    1. Sorry, wenn ich mich zu technisch ausgedrückt habe!

      Im URL der komplette Code!

      Die Javaskript Zeile: "var mapcenter = new GLatLng(47.1844084,8.5316098);" setzt den Startpunkt der Google Maps Karte auf den letzten bekannten Ort. D.h. Wenn ich in Hamburg losfahre zentriert sich die Karte auf Hamburg. Nach zwei Monaten bin ich in der Südsee dann sollte sich die Karte dort zentrieren weil Hamburg sinnlos ist.

      Im XML wir der vorletzte Eintrag: "coordinates" verwendet um die letzte Position zu ermitteln. Das XML wird regelmässig durch PHP aus einer mySQL Datenbank generiert und ich ein GUI (GrafikUserInterface) habe um die Position fortlaufen einzugeben.

      Danke skipper6340

      1. Im URL der komplette Code!

        Das Beispiel funktioniert doch, es gibt keinen Fehler und zwei Marker sind zu sehen.

        Du hast immer noch HTML-Kommentare im JS Code, anscheinend haben aber viele Browser da eine Fehlerkorrektur eingebaut, aber verlassen würde ich mich darauf nicht. Kommentare werden in JS anders markiert.

        Struppi.

        1. Im URL der komplette Code!

          Das Beispiel funktioniert doch, es gibt keinen Fehler und zwei Marker sind zu sehen.

          Du hast immer noch HTML-Kommentare im JS Code, anscheinend haben aber viele Browser da eine Fehlerkorrektur eingebaut, aber verlassen würde ich mich darauf nicht. Kommentare werden in JS anders markiert.

          Struppi.

          Hoi Struppi, ja das funktioniert!

          Aber die zwei Positionswerte in "var mapcenter = new GLatLng(47.1844084,8.5316098);" sind hardcoded und sollten durch die Variable 'last_position' (die die richtigen Werte enthält) eine Zeile weiter unten (ist remarked) ausgefüllt werden.

          Diese Werte setzten die Karte auf einen bestimmten Punkt auf der Welt! Stell dir vor ich bin mit dem Schiff in der Südsee dann würde Google Maps die Karte in der Schweiz positionieren obwohl sie in der Südsee positioniert sein sollte. Unpraktisch oder?

          Danke und Ciao skipper6340

          1. Hoi Struppi, ja das funktioniert!

            Dann wäre es interessant gewesen, den nicht funktionierenden Teil und den dazu gehörigen Wert zu sehen.

            Aber die zwei Positionswerte in "var mapcenter = new GLatLng(47.1844084,8.5316098);" sind hardcoded und sollten durch die Variable 'last_position' (die die richtigen Werte enthält) eine Zeile weiter unten (ist remarked) ausgefüllt werden.

            Wie gesagt das ist nicht "remarked" sonderneigentlich ein Fehler < ist ein gültiger JS Operator - ! auch  und -- ebenfalls, d.h. hier müßte iegentlich der Parser austeigen. Kommentare gehen so // oder so /* /* in JS

            Die Lösung hat dir aber ChrisB schon gesagt, woran scheitert es?

            Struppi.

      2. Hi,

        Sorry, wenn ich mich zu technisch ausgedrückt habe!

        Der *Mangel* an technischem Hintergrundwissen ist das Problem.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Da ich alles immer etwas komplizierter mache habe ich folgendes Problem: Die Zeile 'var mapcenter = new GLatLng(last_position);' löst das last_position nicht auf und es bleibt immer die Konstante.

    Was heißt das? Welche Konstante?

    Ich habe es schon auf verschiedene weisen versucht so "47.1844084,8.5316098" und auch so 47.1844084,8.5316098; nichts geht.

    Wo hast du das versucht?

    Zur Info.

    Diese sind leider sehr dürftig. Ich kann an den Codefragmenten nicht erkenen was überhaupt dein Problem ist, geschweige denn dass ich daraus mir ein Beispiel o.ä. bauen kann.

    Das einzige Problem was ich sehe, ist dass du einen HTML Kommentar im Skript verwendest, das sollte eigentlich an dieser Stelle zu einer Fehlermeldung führen - du weißt wo du die Fehlerkonsole findest?

    Struppi.

  3. Hi,

    Da ich alles immer etwas komplizierter mache habe ich folgendes Problem: Die Zeile 'var mapcenter = new GLatLng(last_position);' löst das last_position nicht auf und es bleibt immer die Konstante.

    Ich habe es schon auf verschiedene weisen versucht so "47.1844084,8.5316098" und auch so 47.1844084,8.5316098; nichts geht.

    Ein Textliteral bleibt ein Textliteral, das wird nicht auf magische Weise zu mehreren einzelnen Parametern.
    Und der zweite Versuch ist komplett falsch, weil er fehlerhafte Syntax erzeugt.

    Zur Info. Die Funktion 'get_last_track_position()' liest aus einem XML File den letzten Eintrag. Funktioniert!

    Und liefert was für Daten in was für einem Format?

    Wenn die wirklich ein Textliteral in der Form "47.1844084,8.5316098" liefert, und du zwei einzelne Parameter mit den Zahlen zur Übergabe an die Funktion brauchst - dann nutze String.split, und gebe die beiden Array-Elemente, die du bekommst, separat beim Erzeugen des GLatLng-Objektes an.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Ein Textliteral bleibt ein Textliteral, das wird nicht auf magische Weise zu mehreren einzelnen Parametern.

      Na dann wäre es doch toll hierauf ein Antwort zu bekommen! Evtl. mit shtml?

      Danke Klaus

      1. Ein Textliteral bleibt ein Textliteral, das wird nicht auf magische Weise zu mehreren einzelnen Parametern.

        Na dann wäre es doch toll hierauf ein Antwort zu bekommen! Evtl. mit shtml?

        Danke Klaus

        OK, Danke nun funktioniert es!

        Der Fehler war: Die Daten kommen in Lattitude/Langitude aber die Funktion braucht Langitude/Lattitude (wie blöd)!

        So      var mapcenter = new GLatLng(last_position[1], last_position[0]);
        anstatt var mapcenter = new GLatLng(last_position[0], last_position[1]);

        Danke für die Hilfe. Ciao Klaus

    2. Hi,

      Da ich alles immer etwas komplizierter mache habe ich folgendes Problem: Die Zeile 'var mapcenter = new GLatLng(last_position);' löst das last_position nicht auf und es bleibt immer die Konstante.

      Ich habe es schon auf verschiedene weisen versucht so "47.1844084,8.5316098" und auch so 47.1844084,8.5316098; nichts geht.

      Ein Textliteral bleibt ein Textliteral, das wird nicht auf magische Weise zu mehreren einzelnen Parametern.
      Und der zweite Versuch ist komplett falsch, weil er fehlerhafte Syntax erzeugt.

      Zur Info. Die Funktion 'get_last_track_position()' liest aus einem XML File den letzten Eintrag. Funktioniert!

      Und liefert was für Daten in was für einem Format?

      Wenn die wirklich ein Textliteral in der Form "47.1844084,8.5316098" liefert, und du zwei einzelne Parameter mit den Zahlen zur Übergabe an die Funktion brauchst - dann nutze String.split, und gebe die beiden Array-Elemente, die du bekommst, separat beim Erzeugen des GLatLng-Objektes an.

      MfG ChrisB

      Sorry Struppi! Hatte whohl eine Knopf im Ohr!

      Jetzt so:

      	function initialize() {  
      			var last_position = get_last_track_position().split(", ");  
      			if (GBrowserIsCompatible()) {  
      				var map = new GMap2(document.getElementById("map"));  
      				var mapcenter = new GLatLng(last_position[0], last_position[1]);  
      				map.setCenter(mapcenter, 6);  
      				var geoXml = new GGeoXml("http://www.msy-genesis.net/_test/tracking.kml.xml");  
      				map.setMapType(G_HYBRID_MAP);  
      				map.addOverlay(geoXml);  
      				map.addControl(new GSmallMapControl());  
      				map.addControl(new GScaleControl());  
      				map.addControl(new GOverviewMapControl());
      

      Jetzt habe ich zwei nummerische Werte für die Koordinaten und denke das man die so abfüllen muss:

      var mapcenter = new GLatLng(last_position[0], last_position[1]);

      .. aber geht nicht. Was habe ich vergessen?

      N.B. Das format aus dem XML ist 8.5316098, 47.1844084 (Lattitude/Langitude)

      Ciao skipper6340

      1. Sorry Struppi! Hatte whohl eine Knopf im Ohr!

        und immer noch die HTML Kommentare im Code.

        Jetzt so:

        Jetzt hast du eine Fehlermeldung auf der Seite.

        Struppi.