Pessoal,
Alguém conseguiu implementar alguma aplicação com a API V3 do Google?
Pessoal,
Alguém conseguiu implementar alguma aplicação com a API V3 do Google?
Isso muito me interessa também!
Estou estudando essa API, já fiz em websites, mas nunca implementei no SC. Sempre pego as documentações aqui: https://developers.google.com/maps/documentation/javascript/examples/map-geolocation?hl=pt-br
Na versão lançada hoje:
Novas Implementações
Atualização dos campos Google Maps para API v3, não precisa informar a API.
George,
Esta solução não serve pra mim… ele disponibilizou via GeoCode, mas Latitude e Longitude não está funcionando - e a diferença entre ambos é muito grande…
Estamos finalizando esta aplicação: http://www.sudema.pb.gov.br/index.php?option=com_content&view=article&id=78&Itemid=100013
O mapa é gerado usando a API do Google baseada nos dados cadastrados em banco de dados.
Tudo é gerado via Scriptcase.
[]s
Allan Medeiros
Allanmedeiros,
Não consegui ver o exemplo. Veja se você pode me ajudar com o meu exemplo abaixo
Este código pode ser colocado em uma aplicação tipo blank, basta copiar e colar - mais nada.
//////////////--------------------Aqui começa o script completo da API V3-------------------------------------------------------------
//Buscando as Coordenadas na tabela wpoints…
sc_lookup(data_coord,“SELECT wpoints_lat,wpoints_long FROM wpoints WHERE wpoints_id = [var_wpt]”);
$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;
}
$_coord = ‘’;
foreach({data_coord} as $coordenadas)
{
$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;
}
}
// Desenhando no GoogleMaps API V3…
$_head = "
Simple Map html, body, #map-canvas { margin: 0; padding: 0; height: 100%; }var map;
function initialize() {
var myLatlng = new google.maps.LatLng(".$latitude.",".$longitude.");
var mapOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById(‘map-canvas’),
mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: ‘Hello World!’
});
}
google.maps.event.addDomListener(window, ‘load’, initialize);
</script>
";
$escrever = ($_head);
echo $escrever;
///////////////////---------------Aqui termina o script----------------------------------------------------
Para que tudo funcione bem é preciso que haja uma tabela denominada wpoints com os seguintes campos
wpoints_id
wpoints_lat
wpoints_long
Um exemplo de latidue é: S9 45.817
Um exemplo de longitude é: W36 39.296
Se você executar o código ele abre o GoogleMaps
Verá as imagens abaixo
Como vocês podem observar existe uma diferença grosseira entre o Mapa e o Satélite - [size=14pt]O correto é o Modo Satélite[/size]
Meu problema atual é alterar o código acima de modo que abra apenas o Google Earth e não o Google Maps.
Será que alguém pode me ajudar?
Forte Abraço
Jovito,
Na function initialize() altere o mapTypeId de google.maps.MapTypeId.ROADMAP para mapTypeId:google.maps.MapTypeId.SATELLITE (ou mapTypeId:google.maps.MapTypeId.HYBRID)
Deve funcionar.
[]s
Funfou legal…
Agora tá 10…
Obrigado cara… só não consegui ver o que você fez…
Bem, fica o exemplo pra quem quiser utilizar, tá legal, não precisa da Chave…
Vejam o resultado final dentro do meu sistema SC
Salam Aleikum
Tava fora do ar mas tá ok agora.
[]s
bom dia,
qual o tipo de conveção das cordenadas,
eu estou pegando do meu gps e tá dando erado.
Atenciosamente
Fabricico
fabriciod,
Formato das coordenadas => GG MM.MMM (Graus Minutos.Décimos_de_minutos)
Bom dia.
Isso Funciona no SC6?
Funcioando redondo,
100%, muito bom mesmo.
Agradeço jovito melo
Pessoal,
Ajustei o script para vários pontos… o anterior era para um ponto apenas.
Este código pode ser colocado em uma aplicação tipo blank, basta copiar e colar - mais nada.
///////////////////---------------Aqui inicia o script----------------------------------------------------
// Buscando as Coordenadas…
sc_lookup(data_coord,"SELECT wpoints_lat,wpoints_long,wpoints_descricao FROM wpoints ");
$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 = ‘’;
foreach({data_coord} as $coordenadas)
{
$latitude = $coordenadas[0];
$longitude = $coordenadas[1];
$wpt = ‘P’.$coordenadas[2];
$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."’".$wpt."’,";
}
$novo_wpt = ‘var locationArray = [’.$novo_wpt.’];’."\n";
$nome_wpt = ‘var locationNameArray = [’.$nome_wpt.’];’."\n";
$_head = "
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?
Um abraço
bom dia,
como fazemos para traçar um rota de um cordenada a outra e aparecer o caminha no mapa?
de um ponto a outros pela as ruas
Atenciosamente
Fabricio Dantas
Minha pergunta é exatamente essa rsrs…
Celso,
Se o seu trabalho exigir precisão e confiabilidade então uma pessoa terá que capturar as coordenadas do cliente in-logo.
Abaixo segue um script para traçar rotas. Esse script ainda não está na API V3 (está na API-V2 que só funcionará até NOVEMBRO-2013. Quando eu tiver um tempo disponível farei a conversão para a V3.
Este código pode ser colocado em uma aplicação tipo blank, basta copiar e colar - mais nada.
///////////////////---------------Aqui inicia o script----------------------------------------------------
// Buscando cor da rota…
sc_lookup(data_cor,“SELECT redes_cor FROM redes WHERE redes_id = [var_rede]”);
$color = explode("#",{data_cor[0][0]});
$cor = ‘99’.$color[1];
// Gerando o mapa…
sc_lookup(data_coord,“SELECT redeswpoints_lat,redeswpoints_long FROM redeswpoints WHERE redes_id = [var_rede] ORDER BY redeswpoints_seq ASC”);
$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;
}
$_coord = ‘’;
foreach({data_coord} as $coordenadas)
{
$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;
}
$_coord = $_coord.’ lineString.getCoordinates().pushLatLngAlt(’.$latitude.’, ‘.$longitude.’,10)’."\n";;
}
$_head = "
linestring_example.html ";// lineStyle.getColor().set(‘9900ffff’); // aabbggrr format
$escrever = ($_coord);
echo $escrever;
///////////////////---------------Aqui termina o script----------------------------------------------------
No SC
Detalhes:
a) Você precisa ter uma tabela de suas redes (rotas), cada rede/rota terá uma sequência p1 -> p2 -> p3 -> p54 -> p6 -> …
b) Como você pode desenhar várias rotas/redes então eu coloquei uma cor para cada rede/rota
Tentem e retornem alguma coisa.
Salam Aleikum
bom dia,
qual e o formato da tabela da rede, e o da redeswpoint por não consequi aparecer nada.
Agradeço desde já.
Fabricio Dantas
Tabela REDES
CREATE TABLE redes
(
redes_id
int(11) NOT NULL AUTO_INCREMENT,
clientes_id
int(11) NOT NULL,
redestipo_id
int(11) NOT NULL,
redes_status
varchar(45) NOT NULL DEFAULT,
redes_descricao
varchar(45) NOT NULL,
redes_gatelat
varchar(45) NOT NULL,
redes_gatelong
varchar(45) NOT NULL,
redes_gateip
varchar(45) DEFAULT NULL,
redes_netaddress
varchar(45) DEFAULT NULL,
redes_netmask
varchar(45) DEFAULT NULL,
redes_compr
decimal(10,2) NOT NULL,
redes_origem
varchar(70) NOT NULL,
redes_ceporigem
varchar(15) NOT NULL,
redes_endorigem
varchar(200) NOT NULL,
redes_bairorigem
varchar(200) NOT NULL,
redes_munorigem
varchar(200) NOT NULL,
redes_uforigem
varchar(2) NOT NULL DEFAULT,
redes_destino
varchar(70) NOT NULL,
redes_cepdestino
varchar(15) DEFAULT NULL,
redes_enddestino
varchar(200) DEFAULT NULL,
redes_bairdestino
varchar(200) NOT NULL,
redes_mundestino
varchar(200) NOT NULL,
redes_ufdestino
varchar(2) NOT NULL DEFAULT,
redes_cor
varchar(45) NOT NULL DEFAULT ‘#FF0000’,
redes_obs
longtext
PRIMARY KEY (redes_id
),
KEY FK_Redes_Tipos
(redestipo_id
),
KEY FK_Redes_Clientes
(clientes_id
),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Tabelas REDESWPOINTS
CREATE TABLE redeswpoints
(
redeswpoints_id
int(11) NOT NULL AUTO_INCREMENT,
redes_id
int(11) NOT NULL,
redeswpoints_descricao
varchar(45) NOT NULL,
redeswpoints_seq
int(11) NOT NULL,
redeswpoints_lat
varchar(45) NOT NULL,
redeswpoints_long
varchar(45) NOT NULL,
redeswpoints_obs
longtext,
redeswpoints_dtcad
datetime NOT NULL,
usuarios_login
varchar(200) NOT NULL,
prop_reg
int(11) NOT NULL,
PRIMARY KEY (redeswpoints_id
),
KEY FK_wpoints_Redes
(redes_id
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[b]Atenção:
O CAMPO redeswpoints_seq DA TABELA redeswpoints É MUITO IMPORTANTE, UMA VEZ QUE UMA REDE/ROTA TEM QUE TER UMA SEQUÊNCIA CORRETA, ELA NECESSARIAMENTE PODE NÃO SEGUIR A SEQUENCIA DO id, MAS DEVERÁ OBRIGATORIAMENTE TER A SEQUENCIA DO CAMPO seq.[/b]
Essa observação deve-se ao fato de quando a rede/rota é projetada ela pode ser de uma forma, mas quando da sua execução pode haver a necessidade de se implementar outros pontos intermediários, o que alteraria a sequência dos pontos da rota/rede.
Forte Abraço.