Modulo Gmap: come disegnare marker multipli?

4 contenuti / 0 new
Ultimo contenuto
Modulo Gmap: come disegnare marker multipli?

Ciao a tutti.
Spero di aver scritto nel forum giusto. Se no, scusate.

La questione che vorrei risolvere col vostro aiuto è la seguente.
In un modulo, dove ho una serie di oggetti un una tabella di database con le coordinate LAT+LON, devo disegnare tutti gli oggetti su una unica mappa google.
Uso i moduli Gmap e Location (quest'ultimo seguendo un tutorial[sean's blog] ben fatto ma poco utile [almeno per me])

Mi sono letto e visto tutorial, ma non capisco come fare.
Sono solo riuscito a fare diverse mappe, ognuna con un marker.

Vi allego l'esempio di codice.

$output .= gmap_simple_map($node->latitude, $node->longitude,'','Mappa access point abracadabra',14,400);
//immaginate la riga sopra in una while su un resultset....

Non ho trovato nulla che mi permetta di farlo da php dentro il modulo, ma qualcosa con js, ma come se mi trovassi in una pagina di notizie o altro.

Please, help me!
Grazie a tutti
Massimiliano

Vado a ricordare vagamente, che è un pò che non uso gmap, in ogni caso mi pare ci fosse da fare:

<?php
$markers
[] = array(
 
'lat' => // ....
 
'lng' => // ....
  // ...
);
$markers[] = array(
 
'lat' => // ....
 
'lng' => // ....
  // ...
);
$markers[] = array(
 
'lat' => // ....
 
'lng' => // ....
  // ...
);
$map = array(
 
// ...
 
'markers' => $markers,
 
// ...
);
return
theme('maps', $maps);
?>

ripeto, sono andato moooooolto a memoria, ma mi pare fosse qualche cosa del genere.. cmq nel file API dovrebbe essere spiegato come devono essere costruiti gli oggetti..

Ciao
Marco
--
My blog
Working at @agavee

Ciao,
GRAZIE!!! Mi hai dato il la'.
Ciao
Massimiliano

Posto il codice, da rifinire ma funzionante per i posteri.

<?php
$minLat
= 0;
   
$maxLat = 0;
   
$minLon = 0;
   
$maxLon = 0;
    if (
$node = db_fetch_object($result)) {
       
$i=1;
        while (
$node = db_fetch_object($result)) {           
           
$markers[] = array(
             
'id' => $node->id,
             
'latitude' => $node->latitude,
             
'longitude' => $node->longitude,
             
'markername' => '',
             
'text'=> $node->hostname
           
);
           
$i++;
            if (
$minLat == 0) $minLat = round($node->latitude,7);
            if (
$maxLat == 0) $maxLat = round($node->latitude,7);
            if (
$node->latitude < $minLat ) $minLat = round($node->latitude,7);
            if (
$maxLat < $node->latitude ) $maxLat = round($node->latitude,7);
            if (
$minLon == 0) $minLon = round($node->longitude,7);
            if (
$maxLon == 0) $maxLon = round($node->longitude,7);
            if (
$node->longitude < $minLon ) $minLon = round($node->longitude,7);
            if (
$maxLon < $node->longitude ) $maxLon = round($node->longitude,7);
        }
       
$latitude = $minLat + ($maxLat - $minLat)/2;
       
$longitude = $minLon + ($maxLon - $minLon)/2;
       
$settings = array(
       
'id' => gmap_get_auto_mapid(),
       
'latitude' => $latitude,   // Center the map
       
'longitude' => $longitude, // on the marker.
     
);
     
//$settings['zoom'] = '5';
     
$settings['markers'] = $markers;
      return
theme('gmap', array('#settings' => $settings));
?>

@teamcode: grazie per la precisazione
PS: per postare codice php usa i tag PHP così da avere anche l'evidenziazione della sintassi ;)

Ciao
Marco
--
My blog
Working at @agavee