Autor Tópico: API V3 - Google MAPS  (Lida 8949 vezes)

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:API V3 - Google MAPS
« Responder #30 Online: Dezembro 02, 2014, 07:28:56 pm »
Morais muito obrigado pela dica.
As coordenadas citadas aqui não são reais, servem apenas para efeito didádico.
Sei que muitos já sabem fazer isso, mas para quem não sabe segue um código simples que com certeza pode ser melhorado em muito e ajudar quem não é tão experiente como eu.
Código: [Selecionar]
$lat = "-22,4787902";
$long = "-44,4941205";
//troca a (,) por ponto (.) da latitude e longidute
$texto_original = $lat;
$valor_procurar = ",";
$valor_substituir = ".";
$lat = str_replace($valor_procurar, $valor_substituir, $texto_original);

$texto_original = $long;
$valor_procurar = ",";
$valor_substituir = ".";
$long = str_replace($valor_procurar, $valor_substituir, $texto_original);

//Retira o sinal de - da latitude e longitude
$texto_original = $lat;
$valor_procurar = "-";
$valor_substituir = "";
$lat = str_replace($valor_procurar, $valor_substituir, $texto_original);

$texto_original = $long;
$valor_procurar = "-";
$valor_substituir = "";
$long = str_replace($valor_procurar, $valor_substituir, $texto_original);

//Pega a parte inteira da latitude e longitute
$lat_inteira = intval($lat);
$long_inteira = intval($long);

//Pega a parte decimal da latitude e longitude: 10.56978 saída 0.56978
$lat_decimal = $lat;
$lat_decimal -= floor ($lat_decimal);
$long_decimal = $long;
$long_decimal -= floor ($long_decimal);

echo "Latitude Inteira -> ".$lat_inteira."<br>";
echo "Longitude Inteira -> ".$long_inteira."<br>";
echo "Latitude Decimal -> ".$lat_decimal."<br>";
echo "Longitude Decimal -> ".$long_decimal."<br>";

$lat_decimal = ($lat_decimal*60);
$long_decimal = ($long_decimal*60);

echo "Latitude Decimal Multiplicada por 60 -> ".$lat_decimal."<br>";
echo "Longitude Decimal Multiplicada por 60 -> ".$long_decimal."<br>";

//Formatar coordenadas latitude e longitude: S22 7.39392 e W45 27.2727: Lembrando que uma coordenada negativa é latitude Sul e longitude West
$lat = ("S".$lat_inteira." ".$lat_decimal);
$long = ("W".$long_inteira." ".$long_decimal);

echo "Latitude Formatada -> ".$lat."<br>";
echo "Longitude Formatada -> ".$long."<br>";
Esse script produz a seguinte saída:
Latitude Inteira -> 22
Longitude Inteira -> 44
Latitude Decimal -> 0.4787902
Longitude Decimal -> 0.4941205
Latitude Decimal Multiplicada por 60 -> 28.727412
Longitude Decimal Multiplicada por 60 -> 29.64723
Latitude Formatada -> S22 28.727412
Longitude Formatada -> W44 29.64723
« Última modificação: Dezembro 02, 2014, 09:27:03 pm por Celso R. »
Celso R.
________________________________
SC - V 8

Marcio Akira Okamura

  • Novato
  • *
  • Mensagens: 45
    • Email
Re:API V3 - Google MAPS
« Responder #31 Online: Dezembro 02, 2014, 09:16:25 pm »
Vocês são bons !
Só fiz o CTRL+C  e colei no blank e fiz uma adaptação no meu sql para usar as mesmas variáveis que estão no exemplo... e puf ! funcionou.
Pra não falar que funcionou na primeira, tive que colocar o 'S' e 'W' antes de cada um dos dados  e usei um comando para o meu campo de dados que é VARCHAR ficasse com a mascara certa S99 99.999 e W99 99.999.

"select 'S'||substr(c65_nr_cord_s,1,2)||' '||substr(c65_nr_cord_s,3,2)||'.'||substr(c65_nr_cord_s,5,3) wpoints_lat,
'W'||substr(c65_nr_cord_w,1,2)||' '||substr(c65_nr_cord_w,3,2)||'.'||substr(c65_nr_cord_w,5,3) wpoints_long, nr_matricula_unidade wpoints_descricao from cad_ficha"

Agora já quero deixar a coisa mais complicada. Quero passar parametros para o sql para ir de rota tal até rota tal, ou data tal até data tal...
como fazer ?

Marcio.

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:API V3 - Google MAPS
« Responder #32 Online: Dezembro 02, 2014, 10:44:52 pm »
O que será que estou fazendo de errado?
Minha tabela:

Meu Select:

Blank:

Ao executar nada acontece:
« Última modificação: Dezembro 02, 2014, 10:47:06 pm por Celso R. »
Celso R.
________________________________
SC - V 8

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:API V3 - Google MAPS
« Responder #33 Online: Dezembro 04, 2014, 01:07:06 pm »
Help!!!
Celso R.
________________________________
SC - V 8

christopher

  • Novato
  • *
  • Mensagens: 2
Re:API V3 - Google MAPS
« Responder #34 Online: Dezembro 12, 2014, 10:18:22 am »
Para quem não tinha conseguido, como eu, com o código anterior, dou minha primeira contribuição ao fórum com o código do nosso colega Jovito Melo, modificado para ser usado as latitudes e longitudes diretamente no formato (exemplo) -3.729585, -38.545693.


Modifiquem da forma necessária o SELECT para buscar os dados da sua tabela(redeswpoints) onde está a latitude (redeswpoints_lat), longitude (redeswpoints_long) e um valor chave única (redeswpoints_descricao).

Parabéns aos colegas pelas dicas.

//////////////////------------Aqui inicia o script mostrando todos os pontos do banco de dados no mesmo mapa--------------------
// Buscando as Coordenadas...
sc_lookup(data_coord,"SELECT redeswpoints_lat,redeswpoints_long, redeswpoints_descricao FROM redeswpoints ");

$novo_array = '';
$novo_wpt = '';
$nome_wpt = '';

foreach({data_coord} as $coordenadas)
{
   $latitude = $coordenadas[0];
   $longitude = $coordenadas[1];
   $wpt = 'P'.$coordenadas[2];
     
   $novo_array = $novo_array.'    var '.$wpt.' = new google.maps.LatLng('.$latitude.','.$longitude.');'."\n";
   $novo_wpt = $novo_wpt.$wpt.',';
   $nome_wpt = $nome_wpt."'".$wpt."',";
}
$novo_wpt = 'var locationArray = ['.$novo_wpt.'];'."\n";
$nome_wpt = 'var locationNameArray = ['.$nome_wpt.'];'."\n";
$_head = "
<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name='viewport' content='initial-scale=1.0, user-scalable=no'>
    <meta charset='utf-8'>
    <style>
      html, body, #map-canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>
    <link href='/maps/documentation/javascript/examples/default.css' rel='stylesheet'>
    <script src='https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false'></script>
    <script>\n".$novo_array.$novo_wpt.$nome_wpt."
   var map;
   function initialize()
      {
         var myLatlng = new google.maps.LatLng(".$latitude.",".$longitude.");
         var mapOptions =
         {
            zoom: 16,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.SATELLITE
           };
         map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
         var coord;
           for (coord in locationArray)
         {
            new google.maps.Marker({
            position: locationArray["."coord],
            map: map,
            title: locationNameArray["."coord]
            });
         }
      }
   google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id='map-canvas'></div>
  </body>
</html>
";
$escrever = ($_head);
echo $escrever;
///////////////////---------------Aqui termina o script----------------------------------------------------


Marcio Akira Okamura

  • Novato
  • *
  • Mensagens: 45
    • Email
Re:API V3 - Google MAPS
« Responder #35 Online: Abril 09, 2015, 06:48:22 pm »
OLá amigos.

Como passar parametro para o sql pelor um menu ou tela do SC.
Ex. tenho ordens de serviços na empresa todos os dias. Já consegui colocar fixo no script para aparecer as casas que tiveram serviços atendidos para aparecer no mapa. Mas, como posso escolher por algum tipo de menu ou tela de consulta qual mês/ano quero que demonstre no mapa ?

Passar parametros para o mapa seria fantástico para todas aplicações que desejo fazer. O pessoal "cabeça" por favor nos dê uma ajuda !
Abraços.
Marcio

user

  • Novato
  • *
  • Mensagens: 15
    • Email
Re:API V3 - Google MAPS
« Responder #36 Online: Maio 19, 2015, 08:05:48 pm »
O meu está ficando toda a tela em branco..o que pode ter acontecido....?

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:API V3 - Google MAPS
« Responder #37 Online: Maio 20, 2015, 08:52:26 am »
O meu está ficando toda a tela em branco..o que pode ter acontecido....?

Reveja a Politica da Google pode ser que tenhão trocado algo na privacidad ou uso..

Ilton

  • Intermediário
  • ***
  • Mensagens: 129
  • A melhor maneira de prever o futuro é inventá-lo.
    • Email
Re:API V3 - Google MAPS
« Responder #38 Online: Agosto 11, 2015, 05:13:13 pm »
Gostei desse Google Maps pois estou precisando fazer um mapa com varios pontos tambem, minha pergunta é, na minha base de dados eu tenho o endereço, mas não tenho essas coordenadas de latitude e longitude, o que fazer?

agradeço desde já.

Ilton

joeltonsilva

  • Avançado
  • ****
  • Mensagens: 360
Re:API V3 - Google MAPS
« Responder #39 Online: Agosto 12, 2015, 09:49:46 am »
Jovito Boa tarde.
Me perdoe se a minha pergunta é tola.
Essa tabela wpoints 'e alimentada na mão tipo, a pessoa vai a campo com um gps e levanta as coordenadas?

Se for tola...rsrs... eu ia fazer a mesma pergunta..rsrsrsrs...
É lançamento manual mesmo com GPS ou são as informações do google maps, ou automático?

Um abraço

flaviomorais

  • Avançado
  • ****
  • Mensagens: 348
    • Email
Re:API V3 - Google MAPS
« Responder #40 Online: Agosto 12, 2015, 09:57:52 am »
A propria api do google tem ferramentas para pegar essas coordenadas pelo endereço, pode ter alguma diferença de metros , nunca vi erro muito grave de distancias

Jovito Boa tarde.
Me perdoe se a minha pergunta é tola.
Essa tabela wpoints 'e alimentada na mão tipo, a pessoa vai a campo com um gps e levanta as coordenadas?

Se for tola...rsrs... eu ia fazer a mesma pergunta..rsrsrsrs...
É lançamento manual mesmo com GPS ou são as informações do google maps, ou automático?

Um abraço

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 561
  • Ajudar para ser ajudado
Re:API V3 - Google MAPS
« Responder #41 Online: Setembro 24, 2015, 03:51:27 pm »
Amigo jovitomelo, vc adaptou o codigo de rota para o v3?
 Tentei utlizar o codigo acima e nao estou conseguindo.

Att Arquimedes
« Última modificação: Setembro 24, 2015, 04:09:14 pm por Arquimedes »

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 916
    • Simples Assim
    • Email
Re:API V3 - Google MAPS
« Responder #42 Online: Outubro 20, 2015, 08:35:50 pm »
Arquimedes, consegui sim... segue o código.

App blank... Os campos na minha tabela são:
wpoints_latSN = S ou N
wpoints_latGG = Intervalo de 0 a 90 graus
wpoints_latMM = Minutos na forma decimal

Exemplo de uma Latitude - S 09 45.9876
Forma idêntica com a Longitude...

// Buscando as Coordenadas dos pontos de uma determinada rota...
$sql  = "SELECT
    CONCAT(wpoints_latSN,wpoints_latGG,' ',wpoints_latMM) AS wp_latitude,
    CONCAT(wpoints_longWE,wpoints_longGG,' ',wpoints_longMM) AS wp_longitude,
    wpoints_batimetria,
    wpoints_descricao
FROM
    rotaswpt AS rwpt,
    wpoints AS wpt
WHERE
    rwpt.wpoints_id = wpt.wpoints_id AND
    rotas_id = [var_rota]
ORDER BY
    rotaswpt_seq";
sc_lookup(data_coord,$sql);
$latitude = {data_coord[0][0]};
$longitude = {data_coord[0][1]};
$lat = explode(' ',TRIM($latitude));
$lat_sinal = substr($lat[0],0,1);
$lat_grau  = substr($lat[0],1,2);
$lat_min   = $lat[1];
$long = explode(' ',$longitude);
$long_sinal = substr($long[0],0,1);
$long_grau  = substr($long[0],1,2);
$long_min   = $long[1];
$latitude_1 = $lat_grau + ($lat_min /60);
$longitude_1 = $long_grau + ($long_min /60);
if($lat_sinal == 'S')
{
   $latitude_1 = $latitude_1 * -1;
}
if($long_sinal == 'W')
{
   $longitude_1 = $longitude_1 * -1;
}

$novo_array = '';
$novo_wpt = '';
$nome_wpt = '';
$nova_rota = '';
$i=0;
foreach({data_coord} as $coordenadas)
{
   $i++;
   $latitude = $coordenadas[0];
   $longitude = $coordenadas[1];
   $wpt = "P$i";
   $nome = $coordenadas[3].', LATITUDE - '.$coordenadas[0].', LONGITUDE - '.$coordenadas[1];
   $lat = explode(' ',TRIM($latitude));
   $lat_sinal = substr($lat[0],0,1);
   $lat_grau  = substr($lat[0],1,2);
   $lat_min   = $lat[1];
   $long = explode(' ',$longitude);
   $long_sinal = substr($long[0],0,1);
   $long_grau  = substr($long[0],1,2);
   $long_min   = $long[1];
   $latitude = $lat_grau + ($lat_min /60);
   $longitude = $long_grau + ($long_min /60);
   if($lat_sinal == 'S')
   {
      $latitude = $latitude * -1;
   }
   if($long_sinal == 'W')
   {
      $longitude = $longitude * -1;
   }
   $novo_array = $novo_array.'    var '.$wpt.' = new google.maps.LatLng('.$latitude.','.$longitude.');'."\n";
   $novo_wpt = $novo_wpt.$wpt.',';
   $nome_wpt = $nome_wpt."'".$nome."',";
   $nova_rota .= "  {lat: $latitude, lng: $longitude},\n";
}
$tam_rota = strlen($nova_rota);
$tam_rota2 = ($tam_rota - 1)* -1;
$nova_rota = substr($nova_rota,1,-2);
$nova_rota = "var rotacoords = [".$nova_rota."];";
// echo $nova_rota;die;
$novo_wpt = 'var locationArray = ['.$novo_wpt.'];'."\n";
$nome_wpt = 'var locationNameArray = ['.$nome_wpt.'];'."\n";
// Mapeando a rede....
$_head = "
<!DOCTYPE html>
<html>
  <head>
    <title>Pontos de Interesses (POIs)</title>
    <meta name='viewport' content='initial-scale=1.0, user-scalable=no'>
    <meta charset='utf-8'>
    <style>
      html, body, #map-canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>
    <link href='/maps/documentation/javascript/examples/default.css' rel='stylesheet'>
<script async defer
        src='https://maps.googleapis.com/maps/api/js?key=[AQUI VOCÊ COLOCARÁ SUA KEY]&signed_in=true&callback=initialize'></script>

    <script>function initialize()
      {
   \n".$novo_array.$novo_wpt.$nome_wpt."
   var map;
   var rota;
   
         var myLatlng = new google.maps.LatLng(".$latitude.",".$longitude.");
         var mapOptions =
         {
            zoom: 8,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.SATELLITE
           };
         map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
         var coord;
         for (coord in locationArray)
         {
            new google.maps.Marker({
            position: locationArray["."coord],
            map: map,
            icon: '../_lib/img/sys__NM__veleiro_ico.png',
            title: locationNameArray["."coord]
            });
         }
         ".
         $nova_rota
         ."
         rota = new google.maps.Polyline({
            path: rotacoords,
            geodesic: true,
             strokeColor: '#FF0000',
             strokeOpacity: 1.0,
            strokeWeight: 2
         });
         rota.setMap(map);
      }

    </script>
  </head>
  <body>
    <div id='map-canvas'></div>
  </body>
</html>
";
$escrever = ($_head);
echo $escrever;
Jovito Melo
Maceió - Alagoas

Kleyber

  • Expert
  • *****
  • Mensagens: 2235
    • Email
Re:API V3 - Google MAPS
« Responder #43 Online: Outubro 21, 2015, 07:44:38 am »
MGAJ,

Bom ver você por aqui novamente...

Grande abraço,
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Celso R.

  • Expert
  • *****
  • Mensagens: 941
Re:API V3 - Google MAPS
« Responder #44 Online: Outubro 21, 2015, 07:55:20 am »
Grande Jovito.
É realmente muito bom rever vossa pessoa nesse fórum após um longo período de meditação no " Himalaia ".
Um grande abraço pra ti.
Celso R.
________________________________
SC - V 8