Gmap

(pessanha) #1

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) #2

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 ‘

’;

???

(Rodrigo Lins) #3

Bom Dia,

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

{g_map} = “

”’;

Rodrigo Lins.

(pessanha) #4

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} = ‘

’;

???

(system) #5

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

, e talvez na execução da apl a
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} = “”;

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} = “”;

Espero ter ajudado de alguma forma.

Att.
Robson

(rrma) #6

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

(pessanha) #7

Robson,
muito obrigado mais uma vez !

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

(pessanha) #8

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) #9

Vc fez com iframe? Daria pra mostrar algum trecho de código?

Obrigado.
Rodrigo Araújo

(cleverson@cpninformatica.) #10

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

?>

Mapa de Ocorrência em Aberto
<? 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: ' . $url . ''); } 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 "'.$endereco.'", código de resposta: ' . $status); } return array('lat' => $latitude, 'lon' => $longitude, 'zoom' => $zoom, 'endereco' => $endereco); } } ?>
(rrma) #11

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

(cleverson@cpninformatica.) #12

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) #13

Valeu Cleverson, vou tentar e posto os resultados aqui.
Obrigado!

(vambertosabino) #14

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