I can use the maps API on pages in * .HTML, but in * .php it does not work properly

0

I have a * .HTML page that sends parameters in the body of the URL to the * .PHP page. It turns out that the map is not loaded in the * .php page

example url:

http://localhost/dashboard/phptest/index1.php?latitude=-19.9020683&longitude=-43.9779321

PHP script and calls:

            <!-- Inicia os scripts: o que recupera a geolocalização e o que exibe o mapa -->
        <script type="text/javascript">

		//este projeto
            var mensagens = document.getElementById("mensagens");
			var bounds = new google.maps.LatLngBounds();

            // Função que recupera a Geolocalizacao, utilizando funções do próprio navegador.
            function recuperaGeolocalizacao() {

			//precisao e atualizacao
			opt = 	{
			enableHightAccuracy: true,
			timeout: 30000,
			maximumAge: 0
					};
					
                // Se o navegador suporta geolocalização, recupera as informações e chama a função que vai usá-las para exibir o mapa;
                if (navigator.geolocation) {
                    //Sucesso
                    navigator.geolocation.getCurrentPosition(MostraLocalizacao, Erro , opt);
                }
                    //Erro
                else {
                    mensagens.innerHTML = "A geolocalização não é suportada pelo seu navegador.";
                }
            }

            // Essa é a função que recebe os dados de Geolocalização, no objeto position
            function MostraLocalizacao(position) {
				
				// Recupera a latitude atual
				lat = position.coords.latitude;
			  
				//Recupera longitude atual
				lon = position.coords.longitude;
		
                
			

                latlon = new google.maps.LatLng(lan, lon);
				///set localizacao antiga				
				_lat = <?php  $latitude = $_GET['latitude' ]; echo '$latitude';?>
				_lon = <?php  $longitude = $_GET['longitude']; echo '$longitude';?>
				_latlon = new google.maps.LatLng( _lan , _lon);
				
					latitude = document.getElementById('latitude')
                                latitude.innerHTML = "Latitude: " + _lat;

                longitude = document.getElementById('longitude')
								longitude.innerHTML = "Longitude: " _+ lon;
				
                divMapa = document.getElementById('divMapa')
                divMapa.style.height = '350px';
                divMapa.style.width = '500px';
			
								
                var map = new google.maps.Map(document.getElementById("divMapa"), {center:latlon ,zoom:16});
                var marcador = new google.maps.Marker({ position: latlon, map: map, title: "Você está aqui" });
				bounds.extend(marcador);
				
				var marcador1 = new google.maps.Marker({ position: _latlon, map: map, title: "Seu parceiro esta aqui" });
				bounds.extend(marcador1);
			//ajusta marcadores
			map.fitBounds(bounds);
			map.panToBounds(bounds); 
				
            }


			
    
asked by anonymous 15.06.2017 / 17:04

2 answers

0

I can now display the variables:

var locAntiga = new Array();
            locAntiga['latt'] = "<?php ECHO  $_GET['latitude']; ?>";
            locAntiga['longi'] ="<?php ECHO $_GET['longitude']; ?>";

I believe that in this block I need to do some conversion before in javaScript

            _lat= locAntiga['latt'];
            _lon= locAntiga['longi'];
            _latlon = new google.maps.LatLng( _lan , _lon);

I'm using this code as a test:

                    //**********teste debug**************//
                    teste = document.getElementById('teste')
                    teste.innerHTML = "bug"+locAntiga['latt'];

. . . .

<p id="teste">de..<br></p>
    
15.06.2017 / 23:21
0

The problem may be occurring because it will write _lat = $latitude , since php will not interpret the variable inside single quotation marks.

You also do not have ; to indicate to javascript that you have already finished the line, possibly not loaded for syntax error in javascript.

<?php

   $latitude = -123.1231123;
   echo '$latitude'; //o resultado será $latitude
   echo "$latitude"; //o resultado será -123.1231123
  

Now try the code below and see if it works:

<!-- Inicia os scripts: o que recupera a geolocalização e o que exibe o mapa -->
<script type="text/javascript">
    //este projeto
var mensagens = document.getElementById("mensagens");
var bounds = new google.maps.LatLngBounds();

// Função que recupera a Geolocalizacao, utilizando funções do próprio navegador.
function recuperaGeolocalizacao() {

    //precisao e atualizacao
    opt = {
        enableHightAccuracy: true,
        timeout: 30000,
        maximumAge: 0
    };

    // Se o navegador suporta geolocalização, recupera as informações e chama a função que vai usá-las para exibir o mapa;
    if (navigator.geolocation) {
        //Sucesso
        navigator.geolocation.getCurrentPosition(MostraLocalizacao, Erro, opt);
    }
    //Erro
    else {
        mensagens.innerHTML = "A geolocalização não é suportada pelo seu navegador.";
    }
}

// Essa é a função que recebe os dados de Geolocalização, no objeto position
function MostraLocalizacao(position) {

    // Recupera a latitude atual
    lat = position.coords.latitude;

    //Recupera longitude atual
    lon = position.coords.longitude;




    latlon = new google.maps.LatLng(lat, lon);
    ///set localizacao antiga               
    _lat = <?php  $latitude = $_GET['latitude' ]; echo empty($latitude) ? '""' : $latitude;?>;
    _lon = <?php  $longitude = $_GET['longitude']; echo empty($longitude) ? '""' : $longitude;?>;
    _latlon = new google.maps.LatLng(_lan, _lon);

    latitude = document.getElementById('latitude')
    latitude.innerHTML = "Latitude: " + _lat;

    longitude = document.getElementById('longitude');
    longitude.innerHTML = "Longitude: "
    + _lon;

    divMapa = document.getElementById('divMapa')
    divMapa.style.height = '350px';
    divMapa.style.width = '500px';


    var map = new google.maps.Map(document.getElementById("divMapa"), {
        center: latlon,
        zoom: 16
    });
    var marcador = new google.maps.Marker({
        position: latlon,
        map: map,
        title: "Você está aqui"
    });
    bounds.extend(marcador);

    var marcador1 = new google.maps.Marker({
        position: _latlon,
        map: map,
        title: "Seu parceiro esta aqui"
    });
    bounds.extend(marcador1);
    //ajusta marcadores
    map.fitBounds(bounds);
    map.panToBounds(bounds);

}
    
15.06.2017 / 18:21