Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180

    "Passare" coordinate tra 2 files

    Ciao a tutti,
    sto sviluppando alcune pagine di ricerca di dati geografici basati su GoogleMaps.
    Ho creato la pagina iniziale di interfaccia in cui vorrei che l'utente potesse precompilare i campi lat e long a partire dalla mappa di google che si apre dal link "mappa" inserito nella pagina (a dx).

    ecco il sito:
    http://vincentand.altervista.org/index.htm

    Come potete vedere la pagina coo_reverse_vince.html (chiamata dal link "mappa") preleva le coordinate dal click dell'utente e le inserisce nelle caselle di testo corrispondenti.

    Vorrei "passare" tali informazioni ai campi testo inseriti nella pagina principale index.htm, per poi avviare la ricerca (problema non più pertinente con il post).

    Come posso fare?
    Grazie in anticipo

  2. #2
    Ciao vincentand,

    io farei così:
    aggiungerei un link o un button in modo che dopo aver cliccato sulla mappa e aver registrato le coordinate nei due campi di testo,
    cliccando su questo nuovo elemento richiami una funzione javascript che ricostruisce l'url in modo da puntare alla pagina precedente passandogli le corrdinate in querysting.

    Codice PHP:
    function goHome(){
       
    location.href 'pagina_alla_quale_puntare' '?x=' prima coordinata '&y=' seconda_coordinata;


    Ovviamente devi preparare la pagina 'pagina_alla_quale_puntare' in modo da eventualmente prendere i parametri ed eseguire la ricerca.

    Se non sai come prelevare i parametri in querystring con Javascript,
    ho un'articolo che fa al caso tuo sul mio sito.

    Lo trovi a questo indirizzo: http://mirkoagrati.110mb.com/articol...String&ext=xml

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    ...piano, piano, sono un principiante!!!

    Allora, ho inserito un pulsante dentro una form nella pagina delle coodinate.

    Primo problema: non so come associare una funzione ad un pulsante.

    Secondo problema: devo riempire i campi del file index.html con quelli della mappa, cioè:
    il campo "lat" della pagina delle coordinate deve essere mappato in quello "lat" della form elab della pagina index.htm; idem per la long.

    Grazie mille della disponibilità

  4. #4
    Ciao vincentand,
    provo subito a rispondere a i tuoi quesiti:

    1)
    Codice PHP:

    <script type="text/javascript">
    function 
    goHome(){
       var 
    lat document.getElementById('id del campo latitudine').value;
       var 
    lng document.getElementById('id del campo longitudine').value;
       
    location.href 'pagina_alla_quale_puntare' '?x=' lat '&y=' lng;
    }
    </script>

    .......................

    <button onclick="goHome();">OK</button> 
    2)
    Per recuperare i dati in querystring leggi il mio articolo prima.
    In index.html:
    Codice PHP:
    <script type="text/javascript">
    window.onload = function(){
      
    document.getElementById('id del campo latitudine').value mia_funzione con campo x;
      
    document.getElementById('id del campo longitudine').valuemia_funzione con campo y;
    }
    </script> 
    Eventualmente, nella onload potresti prima testare l'esistenza dei parametri in querystring.

    Sono stato un po' 'stringato', scusa ma sono di fretta.

    Fammi sapere se ci sei riuscito.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    Hmmmmmmmm, ho provato ma non funziona.
    Ti allego il codice, mi dai un'occhiata please?

    index.htm
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>

    <head>
    <title>Interrogazione dati</title>
    <style type="text/css">
    <!--
    .Stile2 {color: #F2FFFF}
    -->
    </style>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <script type="text/javascript">
    window.onload = function(){
    document.getElementById('long_').value = lng;
    document.getElementById('lat_').value= lat;
    }
    </script>

    <body>
    <form name="elab" method="post" action="./ricerca.php">
    <table width="770" border="1" align="center" cellpadding="10" cellspacing="3">
    <tr align="center" valign="middle">
    <td bgcolor="#CCCCCC" class="CellaIntest">Ricerca per coordinate e raggio da punto di riferimento</td>
    </tr>
    <tr align="center" valign="middle">
    <td class="CellaIntest">
    Coordinate punto di riferimento: long
    <input type="textbox" value="" name="long_">
    --
    lat
    <input type="textbox" value="" name="lat_">
    mappa

    Distanza massima da punto di riferimento: <input type="textbox" value="" name="dist"> m. </td>
    </tr>
    <tr align="center" valign="middle">
    <td class="CellaIntest"><input type="submit" value="Visualizza dati "></td>
    </tr>
    </table>
    </form>
    <div align="center">

    <script type="text/javascript" language="JavaScript" src="http://codice.shinystat.com/cgi-bin/getcod.cgi?USER=vincentand"></script>
    <noscript>
    <a href="http://www.shinystat.com/it" target="_top">
    </a>
    </noscript>


    </div>




    </p>
    </body>

    </html>


    ------------------------------
    coo_rev.html
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>coo_rev</title>


    <script src= "http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjmuMrRTHSgtM tqnWX4lO0hQuqeG8Sn4A_Svn0x1qsYqG_QhIjhSakHuvUpntJl-qAoJvgmc8rtK6gA" type="text/javascript"></script>


    <script src="http://nicogoeminne.googlepages.com/greversegeocoderv107.js" type="text/javascript"></script>
    <script type="text/javascript">

    var map;
    var rg;
    var lat;
    var lng;


    function load() {
    if (GBrowserIsCompatible()) {
    lat = document.getElementById("lat");
    lng = document.getElementById("lng");

    map = new GMap2(document.getElementById("map"));

    // limito lo zoom out (zoom valore 8)
    var mt = map.getMapTypes();
    for (var i=0; i<mt.length; i++) {
    mt[i].getMinimumResolution = function() {return 8;}
    }

    // aggiungo i controlli della mappa (ok zooming con rotella mouse)
    map.setUIToDefault();
    //map.disableScrollWheelZoom();

    // imposto coordinate del centro della mappa + livello iniziale di zoom
    map.setCenter(new GLatLng(45.475540, 9.184570), 8);

    rg = new GReverseGeocoder(map);
    GEvent.addListener(map, "click", handleClicks);
    }
    }
    //------------------------------------------------------------------------

    // recupero le informazioni sulle coordinate dal click
    function reverse(){
    var pnt = new GLatLng(lat.value,lng.value);
    rg.reverseGeocode(pnt);
    }

    // riporto le coordinate del punto nelle caselle di visualizzazione lat e lng
    function handleClicks(marker, pnt){
    lat.value=pnt.lat();
    lng.value=pnt.lng();
    }

    function goHome(){
    var lat = document.getElementById('lat').value;
    var lng = document.getElementById('lng').value;
    location.href = '..\index.htm' + '?x=' + lat + '&y=' + lng;
    }

    </script>

    </head>
    <body onLoad="load()" onUnload="GUnload()">


    Cliccare su un punto della mappa per visualizzarne le coordinate</p>
    <form name="passa" method="post" action="">
    passa parametri
    <input name="Submit" type="submit" onClick="goHome();" value="Invia">
    </form>
    <table>
    <tr><td width="99">Lat(WGS84)</td>
    <td width="697"><input id="lat" type="text" size="25" value="" /></td></tr>
    <tr><td>Long(WGS84)</td><td><input id="lng" type="text" size="25" value="" /></td></tr>
    <tr><td colspan="2"><div id="map" style="width: 800px; height: 600px;"></div></td></tr>
    </table>
    </body>
    </html>


    Grazie infinite

  7. #7
    Ciao vincentand,
    scusa se ti rispondo solo ora ma ho avuto parecchio da fare.

    Dunque ho dato un'occhiata veloce e ho trovato alcune cose da sistemare.

    1) Questo codice va inserito nel tag HEAD. in generale quello è il posto per gli script.
    Poi, sempre riguardo a questo snippet, lng e lat non esistono quando carichi la pagina, ma solo se torni dalla successiva (scusa il gioco di parole).
    Per catturarli quando torni dall'altra pagina devi utilizzare la funzione che ti ho detto,
    il codice lo trovi a questo indirizzo: http://mirkoagrati.110mb.com/articol...String&ext=xml.
    Anche lei deve essere contenuta all'interno di SCRIPT, a sua volta in HEAD.

    Quindi per catturare i dati (lat e long) devi usarla come mostrato sotto:
    Codice PHP:
    <script type="text/javascript">
    window.onload = function(){
      
    document.getElementById('long_').value getParameter()['x'];
      
    document.getElementById('lat_').valuegetParameter()['y'];
    }
    </script> 

    2)La funzione document.getElementById(UN_ID) non da problemi se usi l'id del componente,
    te invece stai referenziando gli elementi con l'attributo name.
    Fai così in tutti i campi di testo, ovviamente l'id deve essere quello che poi utilizzi nel codice javascript:
    Codice PHP:
    <input type="textbox" value="" name="long_" id="long_"
    3) nella pagina dove è presente la mappa togli il FORM HTML: ti serve solo un button, come mostrato nei post precedenti.

    Correggi e dopo fammi sapere.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

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 © 2020 vBulletin Solutions, Inc. All rights reserved.