Jump to content


gbsena

Member Since 04/01/2011
Offline Last Active 02/07/2013, 18:08
-----

Topics I've Started

Como Extrair Latitude E Longitude De Um Endereço E Cadastrar Em Um Bd

22/10/2012, 09:04

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.

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.c...ensa, 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.c...nsa, Manaus-AM" in C:\webserver\apache\htdocs\sisconp\mapa\m4_lat_lng_inserir_bd\codificar.php on line 39 url not loading

IPB Skin By Virteq