Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    10

    Raccogliere Diversi Indirizzi con Autocompletamento...

    Salve a tutti,
    vi posto il Codice di una pagina la quale raccoglie un solo indirizzo col metodo di Autocompletamento messo a disposizione dalle API di Google:

    <html>

    <head>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>

    <style>
    body {
    font-family: sans-serif;
    font-size: 14px;
    }
    #map-canvas {
    height: 400px;
    width: 600px;
    margin-top: 0.6em;
    }
    input {
    border: 1px solid rgba(0, 0, 0, 0.5);
    }
    input.notfound {
    border: 2px solid rgba(255, 0, 0, 0.4);
    }
    </style>

    <script>
    function initialize() {
    var mapOptions = {
    center: new google.maps.LatLng(38.178712, 13.31122060000007),
    zoom: 13,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

    var input = document.getElementById('searchTextField');


    var autocomplete = new google.maps.places.Autocomplete(input);

    autocomplete.bindTo('bounds', map);

    var infowindow = new google.maps.InfoWindow();
    var marker = new google.maps.Marker({
    map: map
    });

    google.maps.event.addListener(autocomplete, 'place_changed', function() {
    infowindow.close();
    marker.setVisible(false);
    input.className = '';
    var place = autocomplete.getPlace();
    if (!place.geometry) {
    // Inform the user that the place was not found and return.
    input.className = 'notfound';
    return;
    }

    // If the place has a geometry, then present it on a map.
    if (place.geometry.viewport) {
    map.fitBounds(place.geometry.viewport);
    } else {
    map.setCenter(place.geometry.location);
    map.setZoom(17); // Why 17? Because it looks good.
    }
    var image = {
    url: place.icon,
    size: new google.maps.Size(71, 71),
    origin: new google.maps.Point(0, 0),
    anchor: new google.maps.Point(17, 34),
    scaledSize: new google.maps.Size(35, 35)
    };
    marker.setIcon(image);
    marker.setPosition(place.geometry.location);
    marker.setVisible(true);

    var address = '';
    if (place.address_components) {
    address = [
    (place.address_components[0] && place.address_components[0].short_name || ''),
    (place.address_components[1] && place.address_components[1].short_name || ''),
    (place.address_components[2] && place.address_components[2].short_name || '')
    ].join(' ');
    }

    infowindow.setContent('<div>' + place.name + '
    ' + address);
    infowindow.open(map, marker);
    });

    // Sets a listener on a radio button to change the filter type on Places
    // Autocomplete.
    function setupClickListener(id, types) {
    var radioButton = document.getElementById(id);
    google.maps.event.addDomListener(radioButton, 'click', function() {
    autocomplete.setTypes(types);
    });
    }

    setupClickListener('changetype-all', []);
    setupClickListener('changetype-establishment', ['establishment']);
    setupClickListener('changetype-geocode', ['geocode']);
    }

    function initialize() {
    var mapOptions = {
    center: new google.maps.LatLng(38.178712, 13.31122060000007),
    zoom: 13,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

    var input = document.getElementById('searchTextField');


    var autocomplete = new google.maps.places.Autocomplete(input);

    autocomplete.bindTo('bounds', map);

    var infowindow = new google.maps.InfoWindow();
    var marker = new google.maps.Marker({
    map: map
    });

    google.maps.event.addListener(autocomplete, 'place_changed', function() {
    infowindow.close();
    marker.setVisible(false);
    input.className = '';
    var place = autocomplete.getPlace();
    if (!place.geometry) {
    // Inform the user that the place was not found and return.
    input.className = 'notfound';
    return;
    }

    // If the place has a geometry, then present it on a map.
    if (place.geometry.viewport) {
    map.fitBounds(place.geometry.viewport);
    } else {
    map.setCenter(place.geometry.location);
    map.setZoom(17); // Why 17? Because it looks good.
    }
    var image = {
    url: place.icon,
    size: new google.maps.Size(71, 71),
    origin: new google.maps.Point(0, 0),
    anchor: new google.maps.Point(17, 34),
    scaledSize: new google.maps.Size(35, 35)
    };
    marker.setIcon(image);
    marker.setPosition(place.geometry.location);
    marker.setVisible(true);

    var address = '';
    if (place.address_components) {
    address = [
    (place.address_components[0] && place.address_components[0].short_name || ''),
    (place.address_components[1] && place.address_components[1].short_name || ''),
    (place.address_components[2] && place.address_components[2].short_name || '')
    ].join(' ');
    }

    infowindow.setContent('<div>' + place.name + '
    ' + address);
    infowindow.open(map, marker);
    });

    // Sets a listener on a radio button to change the filter type on Places
    // Autocomplete.
    function setupClickListener(id, types) {
    var radioButton = document.getElementById(id);
    google.maps.event.addDomListener(radioButton, 'click', function() {
    autocomplete.setTypes(types);
    });
    }

    setupClickListener('changetype-all', []);
    setupClickListener('changetype-establishment', ['establishment']);
    setupClickListener('changetype-geocode', ['geocode']);
    }
    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
    </head>

    <body>
    <center>



    <form name="FormDati" method="POST" action="salva.asp">

    <div>
    Indirizzo di Partenza:
    <input id="searchTextField" type="text" size="50" name="IndirizzoPartenza">
    </div>
    <div id="map-canvas"></div>



    <input type="submit" value="invia">
    </form>
    </center>
    </body>

    </html>


    La domanda è: io ho la necessità di raccogliere, oltre quello iniziale, diversi indirizzi e visualizzarli sulla mappa ma sempre con la funzione di Autocompletamento e non riesco.
    Qualcuno gentilmente può aiutarmi?
    Grazie e Buon Lavoro

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    L'operazione va gestita con javascript, chiedi il trasferimento (link segnala ad un moderatore) sul forum js, nell'attesa documentati sul sito developer di google maps.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    10
    Ok grazie!

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.