Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    3

    collegamento checkbox con markers di google maps

    Ciao a tutti,
    mi sto avvicinando da poco al mondo API, vorrei riportarvi l'esempio qui di seguito, chiedendo un aiuto nel capire dove si trova l'errore (ci sto dietro da giorni ormai).
    Realizzata la mappa e i markers, ho bisogno di aggiungere una sidebar con checkbox in modo tale da attivare solo i markers del livello che mi interessa.
    Sono riuscita ad attivare tutto, ma proprio non riesco a capire dove sbaglio: selezionando il checkbox, la mappa resta immobile.

    File html:
    <!DOCTYPE html>
    <html lang="it">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <style>
    #mappa{
    width: 700px;
    height: 550px;
    }
    .map-info{
    font-family: Verdana;
    font-size: 13px;
    width: 300px;
    }
    </style>
    <title>Google Maps</title>
    </head>
    <body>
    <label><input type="checkbox" id="vodafone box" onclick="boxclick(this,'icon','logovodafone')" /> Vodafone </label>
    <label><input type="checkbox" id="telecom box" onclick="boxclick(this,'icon','logotelecom')" /> Vodafone </label>
    <p> <div id="mappa"></div></p>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="mappa_prova.js"></script>
    </body>
    </html>

    File js:
    var miaPosizione = new google.maps.LatLng(41.225714, 16.295543);
    var miaPosizione2 = new google.maps.LatLng(41.228853, 16.296313);
    var settings = {
    zoom: 15,
    center: miaPosizione,
    mapTypeControl: true,
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
    navigationControl: true,
    navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
    mapTypeId: google.maps.MapTypeId.ROADMAP};
    var map = new google.maps.Map(document.getElementById("mappa"), settings);
    var logotelecom = new google.maps.MarkerImage( 'icona_blu.png',
    new google.maps.Size(60,120),
    new google.maps.Point(0,0)
    );
    var logovodafone = new google.maps.MarkerImage( 'maurizio.png',
    new google.maps.Size(60,120),
    new google.maps.Point(0,0)
    );
    var impianto1 = new google.maps.Marker({
    position: miaPosizione,
    map: map,
    icon: logotelecom,
    });
    var box_impianto1 = '<div class="map-info">Lorem ipsum dolor, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>';
    var infobox = new google.maps.InfoWindow({
    content: box_impianto1
    });
    google.maps.event.addListener(impianto1, 'click', function() {
    infobox.open(map,impianto1);
    });
    var impianto2 = new google.maps.Marker({
    position: miaPosizione2,
    map: map,
    icon: logovodafone,
    });
    var box_impianto2 = '<div class="map-info">Lorem ipsum dolor, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>';
    var infobox = new google.maps.InfoWindow({
    content: box_impianto2
    });
    google.maps.event.addListener(impianto2, 'click', function() {
    infobox.open(map,impianto2);
    });
    function boxclick(vodafone,icon,logovodafone) {
    if (box.checked) {
    show(icon,logovodafone);

    } else {
    hide(icon,logovodafone);
    }
    }
    function show(icon,logovodafone) {
    for (var i=0; i<gmarkers.length; i++) {
    if (gmarkers[i][icon].toUpperCase().indexOf(logovodafone.toUpperCase()) !== -1) {
    gmarkers[i].setVisible(true);
    }
    }
    document.getElementById(logovodafone+"vodafone").c hecked = true;
    }

    Vi sarei molto grata se riusciste a farmi comprendere l'errore.
    Grazie mille.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao è benvenuta, premesso che le mappe di google sono molto complesse e quando non sia ha la fortuna di trovare uno script già pronto realizzarlo diventa abbastanza difficile e bisogna avere una discreta conoscenza di js.
    A) se non è colpa del forum gli id separati (id="vodafone box") non sono ammessi
    B) show cosa dovrebbe fare?
    C) posta un link alla pagina demo pubblica
    D) quale dovrebbe essere lo scopo finale
    E) la variabile settings contiene tutto anche le funzioni sicura che vada così?

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Ciao è benvenuta, premesso che le mappe di google sono molto complesse e quando non sia ha la fortuna di trovare uno script già pronto realizzarlo diventa abbastanza difficile e bisogna avere una discreta conoscenza di js.
    A) se non è colpa del forum gli id separati (id="vodafone box") non sono ammessi
    B) show cosa dovrebbe fare?
    C) posta un link alla pagina demo pubblica
    D) quale dovrebbe essere lo scopo finale
    E) la variabile settings contiene tutto anche le funzioni sicura che vada così?


    Ciao, ti ringrazio molto, gentilissimo.
    Si, infatti, sto notando, le mappe sono molto difficili, e purtroppo la mia preparazione è stata più legata all'html puro, il javascript per me ha sempre rappresentato un po' un limite, e proprio per questo voglio mettermi in gioco anche in ciò.
    Detto ciò, cerco di rispondere alle tue domande e alle tue indicazioni che mi hai gentilmente fornito:
    A) ecco già un errore a cui non avevo posto attenzione, ho fatto la correzione
    B) show dovrebbe mostrare le icone che hanno il nome "logovodafone" o "logotelecom"
    C) questo è l'esempio su cui sto lavorando e di cui ho riportato i codici nella discussione precedente
    D) Al momento ho inserito solo 2 icone, una d'esempio per ciascuna delle due proprietà che mi interessano. Alla fine vorrei che, cliccando sul checkxox vodafone, si accendano solo i markers con quel logo, mentre, cliccando sul checkbox telecom, si accendano solo i markers con logo telecom.
    E) Ho rielaborato l'ultima parte del codice, anche se sono molto insicura:
    function boxclick(vodafone,icon,logovodafone) {
    if (box.checked) {
    show(icon,logovodafone);
    } else {
    hide(icon,logovodafone);
    }
    }
    function show(icon,logovodafone) {
    for (var i=0; i<gmarkers.length; i++) {
    if (gmarkers[i][icon].toUpperCase(logovodafone).indexOf(logovodafone.to UpperCase(logovodafone)) !== -1) {
    gmarkers[i].setVisible(true);
    }
    }
    document.getElementById(logovodafone+"vodafone").c hecked = true;
    }

    Spero di essere riuscita a spiegarmi meglio ora, e spero tu possa finalmente illuminarmi sulla strada corretta da prendere

    Ti ringrazio molto

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    if (box.checked) { qui c'è un errore box non è definito
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    if (box.checked) { qui c'è un errore box non è definito
    Ti ringrazio molto per il suggerimento, davvero gentilissimo.
    Ho apportato la modifica, ma, purtroppo, ancora non va.
    Deve esserci qualcosa che mi sfugge, ormai ho gli occhi che mi girano. Sono proprio un caso disperato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.