Aller au contenu

Question

Bonjour,

En local la carte avec des pointeurs s'affiche normalement, en ligne page vide.
Les coordonnées lat et long proviennent d'un fichier texte.

Mais bon, tout ça s'affiche correctement en local et en ligne je ne vois pas ce qui peut coincer.

Une idée ?

Cdl

Michel

Partager ce message


Lien à poster
Partager sur d’autres sites

11 réponses à cette question

Recommended Posts

  • 0

Hello !

Juste, on parle de quoi ici ? Tu as un exemple en ligne du pb ? Quelque chose que l'on peut voir quelque part ?

Je n'ai pas compris ton problème ici :)

Simon

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Désolé pour le retard, mais j'étais passé sur autre chose.
Donc j'y vais pour des détails supplémentaires.

J'ai ce script pour afficher la carte.
En local ça fonctionne, aussi bien comme affiché qu'avec la ligne $gps commentée, mais en ligne ça n'affiche rien...avec le même fichier.
Vos lumières sont nécessaires.
Cdl
Michel
 

  <script type="text/javascript">
    var locations = [ 
      
<?php

$gps = file_get_contents('gps.txt');
//$gps = "43.676585, 4.093285 ; 43.564159, 4.087714 ; 43.561476, 4.068167";
$gps = explode (";", $gps); 
$nb=count($gps);
for ($i=0; $i<$nb; $i++) {
$var = $gps[$i]; 
                             
  echo	'['.$var.',1],'; 
  }
  ?>
          [  43.676585,4.093285, 1]  
    ];

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 11,
      center: new google.maps.LatLng(43.671476,4.068167),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][0], locations[i][1]),
        map: map
      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 1

Bonjour,

Question toute simple : pourquoi avoir fait cette usine pour parser un fichier txt qui ressemble à du PHP plutôt que d'avoir un vrai fichier PHP qui retourne un tableau + json_encode derrière ?

Voir avoir directement les coordonnées dans un fichier JSON et le charger en Javascript ?

De mon côté le code ne fonctionne pas mais celui fourni est forcément incomplet (pas de div map, pas d'inclusion du JS Google Maps)

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Il y a 2 heures, Simon DUJANCOURT a dit :

Bonjour,

Question toute simple : pourquoi avoir fait cette usine pour parser un fichier txt qui ressemble à du PHP plutôt que d'avoir un vrai fichier PHP qui retourne un tableau + json_encode derrière ?

Voir avoir directement les coordonnées dans un fichier JSON et le charger en Javascript ?

De mon côté le code ne fonctionne pas mais celui fourni est forcément incomplet (pas de div map, pas d'inclusion du JS Google Maps)

Ouais, mais vos explications techniques ne me donnent pas de solution et d'explications sur le fait que ça fonctionne en local et qu'est-ce qui fait que ce simple code ne fonctionne pas en ligne. Ça devrait fonctionner normalement.
Cdl
Michel

  • Downvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Il y a 3 heures, Michel a dit :

Ouais, mais vos explications techniques ne me donnent pas de solution et d'explications sur le fait que ça fonctionne en local et qu'est-ce qui fait que ce simple code ne fonctionne pas en ligne. Ça devrait fonctionner normalement.
Cdl
Michel

Encore faudrait-il avoir le code complet...

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir,

Voici le code de la page :
Cdl,

Michel

 

<?php

//Le fichier gps.txt comprend ceci
//43.676585, 4.093285 ; 43.564159, 4.087714 ; 43.561476, 4.068167; 51.514980, -0.144328

$lalo ="";
if (!$fp = fopen("gps.txt","r")) {
echo "Echec de l'ouverture du fichier GPS.txt";

exit;

}

else {
 while(!feof($fp)) {
 // On récupère une ligne
  $Ligne = fgets($fp);

 // On affiche la ligne
  //echo $Ligne.'<br />';
 
 // On stocke l'ensemble des lignes dans une variable
  $lalo .= $Ligne;
 
 }
 fclose($fp); // On ferme le fichier
}  
//echo $lalo;

?>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <title>Map</title>
        <style type="text/css">
            body { font: normal 10pt Helvetica, Arial; }
            #map { width: 950px; height: 650px; border: 0px; padding: 0px; }
        </style>
        <script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>  

        <script type="text/javascript">
            var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/red.png",
                       new google.maps.Size(32, 32), new google.maps.Point(0, 0),
                       new google.maps.Point(16, 32));
            var center = null;
            var map = null;
            var currentPopup;
            var bounds = new google.maps.LatLngBounds();
            function addMarker(lat, lng, info) {
                var pt = new google.maps.LatLng(lat, lng);
                bounds.extend(pt);
                var marker = new google.maps.Marker({
                    position: pt,
                    icon: icon,
                    map: map
                });
                var popup = new google.maps.InfoWindow({
                    content: info,
                    maxWidth: 900
                });
                google.maps.event.addListener(marker, "click", function() {
                    if (currentPopup != null) {
                        currentPopup.close();
                        currentPopup = null;
                    }
                    popup.open(map, marker);
                    currentPopup = popup;
                });
                google.maps.event.addListener(popup, "closeclick", function() {
                    map.panTo(center);
                    currentPopup = null;
                });
            }
            function initMap() {
                map = new google.maps.Map(document.getElementById("map"), {
                    center: new google.maps.LatLng(43.612005, 3.976273), 
                    zoom: 9,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    mapTypeControl: false,
                    mapTypeControlOptions: {
                    style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
                    },
                    navigationControl: true,
                    navigationControlOptions: {
                     style: google.maps.NavigationControlStyle.SMALL
                    }
                });
      
               
<?php // charge lat et long
      //$lalo = "43.676585, 4.093285 ; 43.564159, 4.087714 ; 43.561476, 4.068167; 51.514980, -0.144328";

      $lalo = explode(";",$lalo);
      $nb=count($lalo); 
      for($i=0;$i<$nb;$i++){
     
      echo ("addMarker($lalo[$i],'');");
                       }

?>               
                    addMarker(43.612005, 3.976273,'');
                    center = bounds.getCenter();
                    map.fitBounds(bounds);
 
            }
        </script> 

</head>

<body>...

<body onload="initMap()" style="margin:0px; border:0px; padding:0px;">
    <h4>Map points connect</h4>
        <div id="map"></div>

</body>
</html>

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 1

Bonjour,

Merci pour le code. Je reproduis uniquement lorsque le site est en HTTPS.

La cause :

<script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>

A remplacer par :

<script src="///maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>

Les "///" permet de choisir HTTP lorsque le site est en HTTP et HTTPS lorsqu'il est en ... HTTPS :)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


×