Autor Tópico: Gmap  (Lida 5527 vezes)

pessanha

  • Expert
  • *****
  • Mensagens: 643
    • Email
Gmap
« Online: Janeiro 07, 2010, 06:37:35 pm »
Ola,

estou tentando incluir em minha aplicação 'GMAP from google',
está dando a mensagem abaixo.

Fatal error: blank_apl::require_once() [function.require]: Failed opening required 'http://rp-projects.gotdns.com/gmap/gmap.php' (include_path='.;c:\php\includes') in C:\Program Files\netmake\v5\wwwroot\scriptcase\app\rpt\blank\blank.php on line 733

Alguem já passou por esta situação?

estou tentando incluir as seguintes linhas, dentro de 'form blank' no SC5.

require_once('../gmap/gmap.php');

$map = new GMap();
$map->showLocation('New York, NY');




pessanha

  • Expert
  • *****
  • Mensagens: 643
    • Email
Re: Gmap
« Responder #1 Online: Janeiro 07, 2010, 08:02:35 pm »
Galera,

ja consegui resolver a mensagem acima usando:

set_include_path("/xampp/htdocs/gmap" . PATH_SEPARATOR . get_include_path());
require_once('gmap.php');

Mas tenho outra duvida. Preciso colocar a imagem em um campo tipo: {g_map}. Alguem tem alguma ideia como faz isso ?

Pensei em criar um campo label, mas nao estou conseguindo a sintaxe correta.

tipo {g_map} = 'label'

echo '<div id="gmap" style="width:300px; height:300px"></div>';

???

Rodrigo Lins

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 504
    • Overalt I.T
Re: Gmap
« Responder #2 Online: Janeiro 12, 2010, 07:54:40 am »
Bom Dia,

Não sei exatamente o código, mas pelo que entendi você pode utilizar da seguinte forma:

{g_map} = "<div id='gmap' style='width:300px; height:300px'></div>"';


Rodrigo Lins.

pessanha

  • Expert
  • *****
  • Mensagens: 643
    • Email
Re: Gmap
« Responder #3 Online: Janeiro 12, 2010, 08:49:31 pm »
Muito obrigado por responder...


Bem,
fiz exatamente isto, mas a imagem nao aparece.

Tenho uma class para mostrar google map. ela funciona perfeito na opcao BLANK.
Mas eu gostaria de jogar esta imagem com as direcoes do google map, em um campo LABEL.

O meu codigo:

Estou colocando no formulario, dentro de onLoad
require_once('gmap.php');

$gmap = new GMap();
$gmap->showLocation(addslashes($addr));


{lbl_gmap} = '<div id="gmap" style="height:300px"></div>';



???
« Última modificação: Janeiro 12, 2010, 09:15:48 pm por pessanha »

robsonsilva

  • Visitante
Re: Gmap
« Responder #4 Online: Janeiro 14, 2010, 09:24:51 pm »
Pessanha,

Ainda não usei gmap dentro do sc, mas acho que o problema é justamente nesta integração... Se não me engano a API do gmap altera dinamicamente o conteúdo desta <div>, e talvez na execução da apl a <div> esteja sendo criada após rodar o script da API....

Uma possível solução (caso não queira quebrar muito a cabeça com isso) é criar numa aplicação blank, e depois chamá-la dentro de um iframe num campo label... ex:

{gmap} = "<iframe src='/blank_gmap/blank_gmap.php' width='450' height='450'></iframe>";

Se vc precisar passar parâmetros do formulário para o mapa dá pra enviar via GET, e se depender da alteração de algum campo dá p alterar dinamicamente em eventos ajax... ex:

{gmap} = "<iframe src='/blank_gmap/blank_gmap.php?endereco={endereco}' width='450' height='450'></iframe>";

Espero ter ajudado de alguma forma.

Att.
Robson

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Gmap
« Responder #5 Online: Janeiro 19, 2010, 07:08:16 pm »
Pessanha, vc se incomodaria de passar no forum como usar o gmaps no sc? Dar umas dicas pra quem quer começar?
Gostaria de incorporar no meu sistema, mas seria pra usar com coordenadas UTM.

Valeu.

Rodrigo Araújo
Rodrigo Araújo

pessanha

  • Expert
  • *****
  • Mensagens: 643
    • Email
Re: Gmap
« Responder #6 Online: Janeiro 20, 2010, 11:00:23 am »
Robson,
muito obrigado mais uma vez !

Vou tentar desta maneira..... Ja obtive resultado criando oum formulario blank...

pessanha

  • Expert
  • *****
  • Mensagens: 643
    • Email
Re: Gmap
« Responder #7 Online: Janeiro 20, 2010, 11:02:40 am »
rrma,

sem problemas existe algumas class disponiveis na web, que voce pode atribuir ao SC.
ainda estou testando, mas ja obtive resultado criando form blank, para incluir o gmap...
Ficou otimo!

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Gmap
« Responder #8 Online: Janeiro 20, 2010, 11:07:39 am »
Vc fez com iframe? Daria pra mostrar algum trecho de código?

Obrigado.
Rodrigo Araújo
Rodrigo Araújo

cleverson@cpninformatica.

  • Intermediário
  • ***
  • Mensagens: 105
    • Email
Re: Gmap
« Responder #9 Online: Janeiro 20, 2010, 01:10:54 pm »
Estou usando o gmap da seguinte forma:
Tenho uma biblioteca em php que faz a procura.
a variavel [gmap] é o key que gravo na base.

No onvalidade, obtenho o x e o y para gravar na base.

if (!empty({ocor_cep_ocorrencia})  && !empty({ocor_nr_end_ocorrencia}))
{
$sql = "select ENDERECO from CEP where CEP= '" . {ocor_cep_ocorrencia} ."'";
sc_lookup(rs_geo,$sql);
$end = {rs_geo[0][0]} . "," . {ocor_nr_end_ocorrencia} . "- [cidade] - [uf] - BRASIL" ;
$gmaps = new gMaps("[gmap]");
$dados = $gmaps->geolocal($end);

{lat} = $dados['lat'];
{lon} = $dados['lon'];
{zoom} = $dados['zoom'];

}

para mostar faço o seguinte: em um blank

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://maps.google.com/maps?file=api&v=2&key=<?=[gmap]?>" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mapa de Ocorrência em Aberto</title>
</head>

<body>
<div id="googleMap" align="center" style="width: 950px; height: 600px"></div>
</body>
</html>


<script>
var map = new GMap2(document.getElementById("googleMap"));
<?


      $nat = [natureza];
      $data1 =  [data1];
      $data2 =  [data2];
      $dia = [diasemana];
      $hora_i = [hora1];
      $hora_f = [hora2];
      sc_exec_sql("ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS'");

         
         if ($nat == '') {
            if ($dia=='') {
               $sql = "SELECT lat,lon,endereco,ocor_nr_ocorrencia,ocor_id_ocorrencia FROM v_ocorrencia where to_DATE(ocor_dh_ocorrencia) BETWEEN to_DATE('$data1') and to_DATE('$data2')  AND  to_char(to_DATE(ocor_dh_ocorrencia),'hh')  BETWEEN '$hora_i' AND '$hora_f'";
            }
            else
            {
               $sql = "SELECT lat,lon,endereco,ocor_nr_ocorrencia,ocor_id_ocorrencia FROM v_ocorrencia where to_DATE(ocor_dh_ocorrencia) BETWEEN to_DATE('$data1') and to_DATE('$data2')  AND to_char(to_DATE(ocor_dh_ocorrencia),'d') = $dia AND  to_char(to_DATE(ocor_dh_ocorrencia),'hh')  BETWEEN '$hora_i' AND '$hora_f'";
            }            
                  
         }   
         else
         {
            $sql = "SELECT lat,lon,endereco,ocor_nr_ocorrencia,ocor_id_ocorrencia FROM v_ocorrencia where to_DATE(ocor_dh_ocorrencia) BETWEEN to_DATE('$data1') and to_DATE('$data2') and ocor_id_natureza = $nat ";
                  
         }
         
         



       sc_lookup(rs_ocor, $sql);

   foreach({rs_ocor} as $ocor) {

      $lat = $ocor[0];
      $lon = $ocor[1];
      $end =  $ocor[2];
   
     if ($lat != '')
     {
?>
   
   
     var lat = <?=$lat?>; // Latitude do marcador
     var lon = <?=$lon?>; // Longitude do marcador
     var zoom = 11; // Zoom

     map.addControl(new GMapTypeControl());
     map.addControl(new GLargeMapControl());
     map.setCenter(new GLatLng(lat, lon), zoom);

     var marker = new GMarker(new GLatLng(lat,lon));

     GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml("<h2>Minha marca</h2><p>Meu texto!</p>");
     });                                 

     map.addOverlay(marker);
   
    <?   
    }
   }
   ?>

</script>
<?

e finalmente a classe: que uso em uma biblioteca.

<?php
class gMaps {
   // Host do GoogleMaps
   private $mapsHost = 'maps.google.com';
   // Sua Google Maps API Key
   public $mapsKey = '';

   function __construct($key = null) {
      if (!is_null($key)) {
         $this->mapsKey = $key;
      }
   }

   function carregaUrl($url) {
      if (function_exists('curl_init')) {
         $cURL = curl_init($url);
         curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
         $resultado = curl_exec($cURL);
         curl_close($cURL);
      } else {
         $resultado = file_get_contents($url);
      }

      if (!$resultado) {
         return false;
         //trigger_error('Não foi possível carregar o endereço: <strong>' . $url . '</strong>');
      } else {
         return $resultado;
      }
   }

   function geoLocal($endereco) {
      $url = 'http://'. $this->mapsHost .'/maps/geo?output=csv&key='. $this->mapsKey .'&q='. urlencode($endereco);
      $dados = $this->carregaUrl($url);
      list($status, $zoom, $latitude, $longitude) = explode(',', $dados);
      if ($status != 200) {
         return false;
         //trigger_error('Não foi possível carregar o endereço <strong>"'.$endereco.'"</strong>, código de resposta: ' . $status);
      }
      return array('lat' => $latitude, 'lon' => $longitude, 'zoom' => $zoom, 'endereco' => $endereco);
   }
}
?>

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Gmap
« Responder #10 Online: Janeiro 20, 2010, 01:17:25 pm »
Valeu Cleverson!
Vou dar uma estudada no código pra tentar adaptar pra meu projeto.
No meu caso, eu já tenho 2 campos com as coordenadas do ponto, quero apenas exibir um iframe com o mapa centralizado nelas. É muito difícil?

Valeu!
Rodrigo
Rodrigo Araújo

cleverson@cpninformatica.

  • Intermediário
  • ***
  • Mensagens: 105
    • Email
Re: Gmap
« Responder #11 Online: Janeiro 20, 2010, 02:13:36 pm »
neste caso vc vai usar somente o codigo que usei no blank.
Voce pode fazer o blank da mesma forma, puxando o x e y da base (tem que ver se os mesmos estao compativeis com o do google).
So usar a bibioteca js do google
Tem uma funcao que centraliza o mapa... se nao me engano é setcentermap ou algo parecido.

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Gmap
« Responder #12 Online: Janeiro 20, 2010, 02:23:48 pm »
Valeu Cleverson, vou tentar e posto os resultados aqui.
Obrigado!
Rodrigo Araújo

vambertosabino

  • Novato
  • *
  • Mensagens: 9
    • Email
Re: Gmap
« Responder #13 Online: Janeiro 20, 2010, 05:22:48 pm »
Ola pessoal

Tem um exemplo de mapa no portal php class usando "easy google maps" (link: http://www.phpclasses.org/browse/package/3801.html), o qual já fiz alguns testes... acredito que para usar com o scriptcase bastaria importar a class (EasyGoogleMap.class.php) como biblioteca ou usar como programacao php, criar um form blank e colocar dentro o codigo php (SampleGmaps.php), ativar no campo a biblioteca, se estiver usando a class como, outra alternativa é salvar a class dentro  da pasta de form criada na unidade c (lembrando que quando geramos o formulário a pasta sempre e apagada, toda vez tem que ser colado na pasta novamente a class php)...

usar loockup na variável SetAddress($enderecos);
....

boa sorte!


se de certo posta solução no fórum