2010-07-14 3 views
0

Voici mon code - J'ai essayé d'utiliser l'API google maps et d'autres tutoriels, mais je n'arrive pas à obtenir le bon code. Il affiche l'icône par défaut ou aucune icône du tout.personnalisé google map marker - javascript & php

Voici le code non modifié -

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

        <?php if ($er_imglayout == 4 && $row->image2) { ?> 
         function domap() 
        <?php } else { ?> 
         function ezrealtymap() 
        <?php } ?> 
        { 
         // Check to see if this browser can run the Google API 
         if (GBrowserIsCompatible()) { 

          gmarkers = []; 
          htmls = []; 
          to_htmls = []; 
          from_htmls = []; 
          i=0; 


          // Display the map, with some controls and set the initial location 
          var map = new GMap2(document.getElementById("map")); 
          map.addControl(new GLargeMapControl()); 
          map.addControl(new GMapTypeControl()); 
          map.setCenter(new GLatLng(<?php echo $row->declat;?>,<?php echo $row->declong;?>), <?php echo $er_mapres;?>); 
          map.setMapType(<?php echo $er_mapview;?>); 

          // Set up three markers with info windows 

          var point = new GLatLng(<?php echo $row->declat;?>,<?php echo $row->declong;?>); 
          var marker = createMarker(point,"<?php echo stripslashes($row->adline);?>","<?php echo stripslashes($row->adline);?>") 
          map.addOverlay(marker); 

         } else { 

          // display a warning if the browser was not compatible 

          alert("<?php echo _EZREALTY_MAPPING_INCOMPATIBLE;?>"); 
         } 
        } 

        // This Javascript is based on code provided by the 
        // Blackpool Community Church Javascript Team 
        // http://www.commchurch.freeserve.co.uk/ 
        // http://www.econym.demon.co.uk/googlemaps/ 

        //]]> 

        // A function to create the marker and set up the event window 

        function createMarker(point,name,html) { 
         var marker = new GMarker(point); 

         // The info window version with the "to here" form open 

         to_htmls[i] = html + '<br /><?php echo _EZREALTY_MAP_DIRECTIONS;?>: <strong><?php echo _EZREALTY_MAP_TOHERE;?></strong> - <a href="javascript:fromhere(' + i + ')"><?php echo _EZREALTY_MAP_FROMHERE;?></a>' + 
         '<br /><?php echo _EZREALTY_MAP_START;?>:<form action="http://maps.google.com/maps" method="get" target="_blank">' + 
         '<input type="text" size="40" maxlength="40" name="saddr" id="saddr" value="" /><br />' + 
         '<input value="<?php echo _EZREALTY_MAP_DIRECTIONS;?>" type="submit">' + 
         '<input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + 
         // "(" + name + ")" + 
         '"/>'; 

         // The info window version with the "to here" form open 

         from_htmls[i] = html + '<br /><?php echo _EZREALTY_MAP_DIRECTIONS;?>: <a href="javascript:tohere(' + i + ')"><?php echo _EZREALTY_MAP_TOHERE;?></a> - <strong><?php echo _EZREALTY_MAP_FROMHERE;?></strong>' + 
         '<br /><?php echo _EZREALTY_MAP_END;?>:<form action="http://maps.google.com/maps" method="get"" target="_blank">' + 
         '<input type="text" size="40" maxlength="40" name="daddr" id="daddr" value="" /><br />' + 
         '<input value="<?php echo _EZREALTY_MAP_DIRECTIONS;?>" type="submit">' + 
         '<input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() + 
         // "(" + name + ")" + 
         '"/>'; 

         // The inactive version of the direction info 

         html = html + '<br /><?php echo _EZREALTY_MAP_DIRECTIONS;?>: <a href="javascript:tohere('+i+')"><?php echo _EZREALTY_MAP_TOHERE;?></a> - <a href="javascript:fromhere('+i+')"><?php echo _EZREALTY_MAP_FROMHERE;?></a>'; 

         GEvent.addListener(marker, "click", function() { 
          marker.openInfoWindowHtml(html); 
         }); 
         gmarkers[i] = marker; 
         htmls[i] = html; 
         i++; 
         return marker; 
        } 

        // functions that open the directions forms 
        function tohere(i) { 
         gmarkers[i].openInfoWindowHtml(to_htmls[i]); 
        } 
        function fromhere(i) { 
         gmarkers[i].openInfoWindowHtml(from_htmls[i]); 
        } 

        </script> 
+0

Il semble qu'il vous manque tout votre code. – ScottE

+0

Il semble que la dernière partie de la fonction createMarker soit manquante dans votre message. –

+0

Oups - là, j'ai ajouté le script entier - Merci! – Jason

Répondre

0

Humm désolé - Je comprends maintenant. Je suppose que vous manquez une partie du processus de génération de marqueur. C'est ainsi que je crée des marqueurs personnalisés et les ajoute à la carte.

var niceIcon = new GIcon(); 
niceIcon.image = '/images/Maps/icon/image.png'; 
niceIcon.shadow = '/images/Maps/icon/shadow.png'; 
niceIcon.iconSize = new GSize(34, 38); 
niceIcon.shadowSize = new GSize(53, 38); 
niceIcon.iconAnchor = new GPoint(0, 38); 
niceIcon.infoWindowAnchor = new GPoint(17, 0); 
niceIcon.printImage = '/images/Maps/icon/printImage.gif'; 
niceIcon.mozPrintImage = '/images/Maps/icon/mozPrintImage.gif'; 
niceIcon.printShadow = '/images/Maps/icon/printShadow.gif'; 
niceIcon.transparent = '/images/Maps/icon/transparent.png'; 
niceIcon.imageMap = [27, 0, 27, 1, 27, 2, 27, 3, 27, 4, 27, 5, 27, 6, 27, 7, 27, 8, 27, 9, 27, 10, 27, 11, 27, 12, 27, 13, 27, 14, 27, 15, 27, 16, 27, 17, 27, 18, 27, 19, 27, 20, 33, 21, 33, 22, 33, 23, 33, 24, 32, 25, 32, 26, 31, 27, 30, 28, 31, 29, 30, 30, 30, 31, 17, 32, 19, 33, 18, 34, 15, 35, 15, 36, 14, 37, 13, 37, 13, 36, 12, 35, 11, 34, 11, 33, 10, 32, 3, 31, 3, 30, 3, 29, 3, 28, 0, 27, 0, 26, 0, 25, 0, 24, 0, 23, 0, 22, 0, 21, 0, 20, 0, 19, 0, 18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0]; 

var markerOptions = { icon: niceIcon }; 

var point = new GLatLng(lat, lon); 
var marker = new GMarker(point, markerOptions); 
map.addOverlay(marker); 
+0

cette partie que j'ai sous contrôle - mais l'intégration avec mon code ci-dessus est où j'ai un problème – Jason

+0

J'ai ajouté le même que ci-dessus, mais le problème que j'ai rencontré était avec le code suivant: var point = new GLatLng ( declat;?>, declong;?>); var marqueur = createMarker (point, " adline);?>", " adline);?>") comment je m'adapte cela avec le point var et var marqueur dans le code d'icône personnalisé? – Jason

+0

Dans createMarker (...) vous avez: var marker = new GMarker (point); - là, vous devez ajouter un second paramètre avec markerOptions où vous définissez toutes les informations sur l'icône (icône: niceIcon dans mon code). – Jan