Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 21 March 2012 16:43

gnanzou
Juste Inscrit !
Date d'inscription: 21 Mar 2012
Messages: 2

geolocalisation

bonjour à tous,

je travail sur un projet de geolocalisation et j'ai problème.

j'ai une base données qui reçoit  les données envoyées par mon module gps toutes les 50s. ensuite j'affiche ces données sur une carte google map.
mon problème est que lorsque le véhicule se déplace a grande vitesse on constate sur la carte qu'on se déplace d'un point A vers un point B.Or l'objectif est de donner l'impression qu'on suite le véhicule en temps réel.Pour cela j'ai j'aimerias definir un autre marqueur qui  va suivre de façon rectiligne la trajectoire entre 2 points successifs  mais je sais pas comment m'y prendre.
j'ai besion de votre aide.

voici mon code en fichier joint.
inde.php permet d'inclure le code qui qui fait l'insertion dans la base de données.
parser.php est fichier xml.


merci pour d'avance pour  votre  aide.

Code:

function load() {      
        GDownloadUrl("parser.php", function(data) {
            map.clearOverlays();
            var xml = GXml.parse(data);
            var bounds = new GLatLngBounds();
            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 lat = markers[i].getAttribute("lat");
                var lng = markers[i].getAttribute("lng");
                var type = markers[i].getAttribute("type");
                var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                parseFloat(markers[i].getAttribute("lng")));
                var marker = createMarker(point, name, address, type,lat,lng);
                bounds.extend( marker.getLatLng() );
            
                map.addOverlay(marker);                
            }
           // map.setCenter( bounds.getCenter(), map.getBoundsZoomLevel(bounds) );
          // map.setZoom(map.getBoundsZoomLevel(bounds));
           map.setCenter(bounds.getCenter());
          // map.setZoom(18);
          
        });
        console.log("Load");
        // map.setZoom(18);
    }
    
    function createMarker(point, name, address, type,lat,lng) {
        var marker = new GMarker(point, customIcons[type]);
        //  var html= <br /><br /><b>BrightCherry Web Design</b><br />Allen House Business Centre,<br />Unit P4,<br />The Maltings, Station Road,<br />Sawbridgeworth,<br />Hertfordshire,<br />;
        var html = "<b> <b>POSITION COURANTE <br/></b><b>vitesse: </b>" + name +  " </b> <br/> <b>IMEI: </b>" + address + "<br/> <b>LATITUDE: </b> </b>" + lat + "</b> <br/> <b>LONGITUDE: </b> " + lng;
        GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(html);                        
        });             
        return marker;
    }
    
    var timer = null;
    function startRefresh() {
        console.log("startRefresh");
        timer = window.setInterval(load, 5000);    
    }
    
    function stopRefresh() {
        console.log("stopRefresh");
        window.clearInterval(timer);
        timer = null;
    }
    
    function toggleRefreshButton() {
        var ss_btn = document.getElementById("start_stop_refresh");
        if(null == timer) {
            startRefresh();
            ss_btn.innerHTML = "Stop refresh";
        } 
        else {
            stopRefresh();
            ss_btn.innerHTML = "Start refresh";
        }
    }

    var map = null; // variable globale
    function init() {
        if (GBrowserIsCompatible()) {   
            map = new GMap2(document.getElementById("map"));
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
            map.setMapType(G_HYBRID_MAP );
            map.addMapType(G_PHYSICAL_MAP);
            map.enableGoogleBar();
            
            //var bounds = new GLatLngBounds; 
           // map.getBoundsZoomLevel(bounds); 
          // map.setZoom(18);
            
            
            
            
            
                
            
            load();
            toggleRefreshButton();
            document.getElementById("start_stop_refresh").addEventListener("click", toggleRefreshButton, false); 
        }
        console.log("Init");
        
        map.setZoom(18);
    }
    
    window.addEventListener("load", init, false);                             
    window.addEventListener("unload", GUnload, false);                                

    //]]>
    </script>

Hors ligne

 

Pied de page des forums

Powered by FluxBB