Avatar billede compac Seniormester
10. september 2010 - 15:04 Der er 6 kommentarer og
1 løsning

Problem med Gmaps

Jeg har et ønske om at vise en gpx-fil og nogle billeder med gps-koordinater i exif-koden på samme side.

De 2 ting har jeg fået til at virke hver for sig.
Nu kommer ønsket om at få dem kombineret.
Jeg har følgende kode:

  <script type="text/javascript">
    //<![CDATA[

    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);
   
        function LoadGPXFileIntoGoogleMap(map, filename)
        {
          alert("Before request: " + filename);
            // Remove any existing overlays from the map.
        //    map.clearOverlays();     
            var request = GXmlHttp.create();
            request.open("GET", filename, true);
            request.onreadystatechange = function()
            {
                if (request.readyState == 4)
                {
                alert("After request: \nStatus: " + request.status + "\nStatusText: " +  request.statusText + "\nResponse: " + request.responseText);
                alert("After request: " + request.responseXML);
                    parser = new GPXParser(request.responseXML, map);
                    parser.SetTrackColour("#ff0000");                    // Set the track line colour
                    parser.SetTrackWidth(5);                            // Set the track line width
                    parser.SetMinTrackPointDelta(0.001);                // Set the minimum distance between track points
                    parser.CenterAndZoom(request.responseXML, G_HYBRID_MAP); // Center and Zoom the map over all the points.
                    parser.AddTrackpointsToMap();                        // Add the trackpoints
        //            parser.AddWaypointsToMap();                            // Add the waypoints
                }
            }
            request.send(null);
        }
    // var map;
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        LoadGPXFileIntoGoogleMap(map, 'vekso_260309.xml');
     
        map.setCenter(new GLatLng(55.924019, 12.321130), 10);
        GDownloadUrl("phpsqlajax_genxml_areal.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address);
            map.addOverlay(marker);
          }
        });
      }
    }
      function createMarker(point, name, address) {
      var marker = new GMarker(point, iconBlue);
     
      var html = "<b>" + name + "</b><br/><img src='" + name + "'width='150' height='100'>";
 
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>

Filen vekso_260903.xml er gps-filen som kommer fra min GPS.
I filen phpsqlajax_genxml_areal.php  der dannes en xml-fil med billedernes gps-koordinater som er lagt i exif-oplysningerne på forhånd.

Nu kommer problemet med at få vist de 2 ting på et kort samtidig.
Avatar billede intenz Novice
11. september 2010 - 17:28 #1
Prøv at forklar lidt mere om hvad du selv har prøvet, og hvad der ikke virker. Eller link til et eksempel.

Det ser da ud som om det hele er sat sammen?
Avatar billede compac Seniormester
11. september 2010 - 20:19 #2
Her er den fil som kan gengive billederne på Gmaps. Det sker basis af GPS-koordinaterne, som er indlagt i exif-oplysningerne på forhånd.

phpsqlajax_map.php:

    //<![CDATA[

    var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);
   
        function LoadGPXFileIntoGoogleMap(map, filename)
        {
            // Remove any existing overlays from the map.
        //    map.clearOverlays();     
            var request = GXmlHttp.create();
            request.open("GET", filename, true);
            request.onreadystatechange = function()
            {
                if (request.readyState == 4)
                {
                    parser = new GPXParser(request.responseXML, map);
                    parser.SetTrackColour("#ff0000");                    // Set the track line colour
                    parser.SetTrackWidth(5);                            // Set the track line width
                    parser.SetMinTrackPointDelta(0.001);                // Set the minimum distance between track points
                    parser.CenterAndZoom(request.responseXML, G_HYBRID_MAP); // Center and Zoom the map over all the points.
                    parser.AddTrackpointsToMap();                        // Add the trackpoints
                }
            }
            request.send(null);
        }
    // var map;
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        LoadGPXFileIntoGoogleMap(map, 'vekso_260309.xml');
     
        map.setCenter(new GLatLng(55.924019, 12.321130), 10);
        GDownloadUrl("phpsqlajax_genxml_areal.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address);
            map.addOverlay(marker);
          }
        });
      }
    }
      function createMarker(point, name, address) {
      var marker = new GMarker(point, iconBlue);
     
      var html = "<b>" + name + "</b><br/><img src='" + name + "'width='150' height='100'>";
 
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>


-og filen hvor GPS-sporet bliver gengivet:
gpxviewer.php:

    //<![CDATA[

        var MyMap;

        function LoadGPXFileIntoGoogleMap(map, filename)
        {
            // Remove any existing overlays from the map.
            map.clearOverlays();     
            var request = GXmlHttp.create();
            request.open("GET", filename, true);
            request.onreadystatechange = function()
            {
                if (request.readyState == 4)
                {
                    alert("After request: " + request.responseXML);
                    parser = new GPXParser(request.responseXML, map);
                    parser.SetTrackColour("#ff0000");                    // Set the track line colour
                    parser.SetTrackWidth(5);                            // Set the track line width
                    parser.SetMinTrackPointDelta(0.001);                // Set the minimum distance between track points
                    parser.CenterAndZoom(request.responseXML, G_HYBRID_MAP); // Center and Zoom the map over all the points.
                    parser.AddTrackpointsToMap();                        // Add the trackpoints
        //            parser.AddWaypointsToMap();                            // Add the waypoints
                }
            }
            request.send(null);
        }

        function onLoad()
        {
            MyMap = new GMap2(document.getElementById("map"));
            MyMap.addControl(new GLargeMapControl());
            MyMap.addControl(new GMapTypeControl());
            MyMap.addControl(new GOverviewMapControl());
            LoadGPXFileIntoGoogleMap(MyMap, 'vekso_260309.xml');

        }

        //]]>

Jeg har kigget og surfet overalt uden at kunne finde en løsning der kombinerer begge ting Dog med undtagelse af http://basepath.com/index-real.php?url=blogentry/2007-06-26.htm

Her skriver han, at der er en løsning, og det ser ud til det i filen photomap.txt. Efter beskrivelsen har det dog den begrænsning at det kun virker fra en MAC-computer.??

Ideen er ellers meget god. index.php filen ligger i underbibliotekerne og photomaps.php filen ligger så den kan bruges af alle underbibliotekerne. Systemet vil bare ikke gengive
tracks fra GPS-en.
Avatar billede intenz Novice
11. september 2010 - 21:09 #3
Jeg forstår stadig ikke hvad du vil, den måde du beskriver det på, gør det uforståeligt.

Jeg har et ønske om at vise en gpx-fil og nogle billeder med gps-koordinater i exif-koden på samme side

Fatter ikke det her.

Det sker basis af GPS-koordinaterne, som er indlagt i exif-oplysningerne på forhånd

Hvad sker?

index.php filen ligger i underbibliotekerne og photomaps.php filen ligger så den kan bruges af alle underbibliotekerne. Systemet vil bare ikke gengive
tracks fra GPS-en
.
Fatter intet af det her.

Det er alt for indforstået det du skriver.

Har du to forskellige kort på to forskellige sider, og du vil gerne have lagt sammen? Altså du vil gerne have de to stumper javascript kode til at fungere på samme kort??
Avatar billede compac Seniormester
12. september 2010 - 22:01 #4
Ja, du må undskylde at jeg har været så dårlig til at formulere mig.
Microsoft har et program (Pro Photo Tools), som man kan indlæse sin gpx-fil fra sin GPS i. Derefter indlæser man de fotos man har taget på turen. Programmet kan så lægge koordinaterne fra GPS'en ind i billedfilernes exif.
Når billederne har været denne procedure igennem kan man få dem anbragt på det sted på GMaps kort hvor de blev taget.
(det foregår i filen phpsqlajax_map.html).
Her aflæses billedernes exif-værdi i filen phpsqlajax_genxml_areal.php og gengives som "prikker" (markers) i GMaps-kortet.

I gpxviewer.php læes GPS'ens gpx-fil, og på grundlag af den anbringes den som en rute på GMarks-kortet.

Nu står jeg med 2 sites, og jeg kunne godt tænke mig at få dem lagt sammen så billeder og rute kommer på samme  site.

http://muligheder.eu5.org/gpxviewer.php

http://muligheder.eu5.org/phpsqlajax_map.html
Avatar billede intenz Novice
13. september 2010 - 12:44 #5
Ja, nu giver det mening :)

Jeg har sat de to sammen, prøv at test om det virker ved at erstatte javascript koden i phpsqlajax_map.html med følgende:

var iconBlue = new GIcon(); 
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);
   
        function LoadGPXFileIntoGoogleMap(map, filename)
        {
            // Remove any existing overlays from the map.
        //    map.clearOverlays();     
            var request = GXmlHttp.create();
            request.open("GET", filename, true);
            request.onreadystatechange = function()
            {
                if (request.readyState == 4)
                {
                    parser = new GPXParser(request.responseXML, map);
                    parser.SetTrackColour("#ff0000");                    // Set the track line colour
                    parser.SetTrackWidth(5);                            // Set the track line width
                    parser.SetMinTrackPointDelta(0.001);                // Set the minimum distance between track points
                    parser.CenterAndZoom(request.responseXML, G_HYBRID_MAP); // Center and Zoom the map over all the points.
                    parser.AddTrackpointsToMap();                        // Add the trackpoints
                }
            }
            request.send(null);
        }
    // var map;
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));

    // gpxviewer kode starter her
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.addControl(new GOverviewMapControl());
        LoadGPXFileIntoGoogleMap(map, 'vekso_260309.xml');
    // gpxviewer kode slutter her


        LoadGPXFileIntoGoogleMap(map, 'vekso_260309.xml');
     
        map.setCenter(new GLatLng(55.924019, 12.321130), 10);
        GDownloadUrl("phpsqlajax_genxml_areal.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address);
            map.addOverlay(marker);
          }
        });
      }
    }


      function createMarker(point, name, address) {
      var marker = new GMarker(point, iconBlue);
     
      var html = "<b>" + name + "</b><br/><img src='" + name + "'width='150' height='100'>";
 
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

Avatar billede compac Seniormester
13. september 2010 - 17:32 #6
Desværre er resultatet uændret.
-iøvrigt undrer det mig at sætningen:    LoadGPXFileIntoGoogleMap(map, 'vekso_260309.xml');
skal stå der 2 gange.
Avatar billede compac Seniormester
20. november 2010 - 14:18 #7
opgiver
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester