Ir para conteúdo
Fórum Script Brasil
  • 0

Como extrair latitude e longitude de um endereço e cadastrar em um ban


gbsena

Pergunta

Ola boa tarde a todos.

Gostaria da ajuda de vocês para um problema que estou tendo para conseguir extrair de um endereço cadastrado em um banco de dados, a latitude e longitude e inserir essas informações no banco. Tenho a seguinte tabela: marcadores com os campos: codigo , nome , endereco , bairro , cep , lat , lng sendo que possuo esses endereços cadastrados, só não tenho as latitudes e longitudes dos mesmos. Os campos lat e lng estão como nulos e através de um script em php eu gostaria de fazer uma consulta para retornar os endereços e a partir destes endereços utilizando a Api do google maps extraindo a latitude e longitude e depois inserir no banco essas duas informações.

Já estou quebrando a cabeça já há algum tempo.

Agradeço muito quem puder me ajudar.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Segue código que estou utilizando e apesentando problema

Arquivo de Conexão: conexao.php

<?php

$_ENV["host"] = "ip do meu servidor";

$_ENV["login"] = "meu login";

$_ENV["senha"] = "senha";

$_ENV["db"] = "mapa";

$conn = mysql_connect($_ENV["host"], $_ENV["login"], $_ENV["senha"]) or die ("Falha na Conexao");

mysql_select_db($_ENV["db"], $conn) or die ("Falha na Selecao do Banco");

?>

Arquivo de execução do script: codificar.php

<?php

require("conexao.php");

ini_set('max_execution_time','600');

define("MAPS_HOST", "maps.google.com");

define("KEY", "minha key");

// Select all the rows in the markers table

$query = "SELECT * FROM markers2 WHERE 1";

$result = mysql_query($query);

if (!$result) {

die("Invalid query: " . mysql_error());

}

// Initialize delay in geocode speed

$delay = 0;

$base_url = "http://" . MAPS_HOST . "/maps/geo?output=xml&key= . KEY;

// Iterate through the rows, geocoding each address

while ($row = @mysql_fetch_assoc($result))

{

$geocode_pending = true;

while ($geocode_pending)

{

$address = $row["address];

$id = $row["id"];

$request_url = $base_url . "&q=" . urlencode($address);

$xml = simplexml_load_file($request_url) or die("url not loading");

$status = $xml->Response->Status->code;

if(strcmp($status, "200") == 0)

{

// Successful geocode

$geocode_pending = false;

$coordinates = $xml->Response->Placemark->Point->coordinates;

$coordinatesSplit = split(",", $coordinates);

// Format: Longitude, Latitude, Altitude

$lat = $coordinatesSplit[1];

$lng = $coordinatesSplit[0];

$query = sprintf("UPDATE markers2 " .

" SET lat = '%s', lng = '%s' " .

" WHERE id = '%s' LIMIT 1;",

mysql_real_escape_string($lat),

mysql_real_escape_string($lng),

mysql_real_escape_string($id));

$update_result = mysql_query($query);

if (!$update_result)

{

die("Invalid query: " . mysql_error());

}

}

else if (strcmp($status, "620") == 0)

{

// sent geocodes too fast

$delay += 100000;

}

else

{

// failure to geocode

$geocode_pending = false;

echo "Address " . $address . " failed to geocoded. ";

echo "Received status " . $status . "\n";

}

usleep($delay);

}

}

?>

Apresenta o seguinte erro.

Warning: simplexml_load_file(http://maps.google.com/maps/geo?output=xml&key=AIzaSyCLSEdvFtUD4WCBkI0-nvJylQ2HA73nk4A&q=rua+tiradentes%2C+Compensa%2C+Manaus-AM): failed to open stream: Uma tentativa de conexão falhou porque o componente conectado não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu. in C:\webserver\apache\htdocs\sisconp\mapa\m4_lat_lng_inserir_bd\codificar.php on line 39 Warning: simplexml_load_file(): I/O warning : failed to load external entity "http://maps.google.com/maps/geo?output=xml&key=AIzaSyCLSEdvFtUD4WCBkI0-nvJylQ2HA73nk4A&q=rua+tiradentes%2C+Compensa%2C+Manaus-AM" in C:\webserver\apache\htdocs\sisconp\mapa\m4_lat_lng_inserir_bd\codificar.php on line 39 url not loading

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...