Fifth pass at adding key files
This commit is contained in:
		
							
								
								
									
										85
									
								
								site/roadshow/phpsqlgeocode_csv.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								site/roadshow/phpsqlgeocode_csv.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
<?php
 | 
			
		||||
require("config.php");
 | 
			
		||||
 | 
			
		||||
// Opens a connection to a MySQL server
 | 
			
		||||
/**$connection = mysql_connect($dbhost, $dbuser, $dbpass);
 | 
			
		||||
if (!$connection) {
 | 
			
		||||
  die("Not connected : " . mysql_error());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Set the active MySQL database
 | 
			
		||||
$db_selected = mysql_select_db($dbname, $connection);
 | 
			
		||||
if (!$db_selected) {
 | 
			
		||||
  die("Can\'t use db : " . mysql_error());
 | 
			
		||||
}**/
 | 
			
		||||
 | 
			
		||||
// Select all the rows in the markers table
 | 
			
		||||
$query = "SELECT * FROM gforum_OpenWater WHERE openwater_lat != 0 AND openwater_lat IS NOT NULL";
 | 
			
		||||
$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=csv&key=" . KEY;
 | 
			
		||||
 | 
			
		||||
// Iterate through the rows, geocoding each address
 | 
			
		||||
while ($row = @mysql_fetch_assoc($result)) {
 | 
			
		||||
  $geocode_pending = true;
 | 
			
		||||
 | 
			
		||||
  while ($geocode_pending) {
 | 
			
		||||
    $address = "".$row['openwater_address'].", ".$row['openwater_address_two'].", ".$row['openwater_city'].", ".$row['openwater_state']." ".$row['openwater_zip']."";
 | 
			
		||||
    $id = $row["openwater_id"];
 | 
			
		||||
    $request_url = $base_url . "&q=" . urlencode($address);
 | 
			
		||||
    //echo ($request_url);
 | 
			
		||||
    //$csv = file_get_contents($request_url) or die("csv url not loading");
 | 
			
		||||
 | 
			
		||||
	// Create cUrl object to grab XML content using $request_url
 | 
			
		||||
	$c = curl_init();
 | 
			
		||||
	curl_setopt($c, CURLOPT_URL, $request_url);	
 | 
			
		||||
	curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
 | 
			
		||||
	$csv = trim(curl_exec($c));
 | 
			
		||||
	curl_close($c);
 | 
			
		||||
 | 
			
		||||
    $csvSplit = split(",", $csv);
 | 
			
		||||
    $status = $csvSplit[0];
 | 
			
		||||
    $accuracy = $csvSplit[1];
 | 
			
		||||
    $lat = $csvSplit[2];
 | 
			
		||||
    $lng = $csvSplit[3];
 | 
			
		||||
    if (strcmp($status, "200") == 0 && $accuracy >= 5) {
 | 
			
		||||
      // successful geocode
 | 
			
		||||
      $geocode_pending = false;
 | 
			
		||||
      $lat = $csvSplit[2];
 | 
			
		||||
      $lng = $csvSplit[3];
 | 
			
		||||
 | 
			
		||||
      $query = sprintf("UPDATE gforum_OpenWater " .
 | 
			
		||||
             " SET openwater_lat = '%s', openwater_lng = '%s' " .
 | 
			
		||||
             " WHERE openwater_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 if ($accuracy < 5) {
 | 
			
		||||
      // failure to geocode
 | 
			
		||||
      $geocode_pending = false;
 | 
			
		||||
      echo "Address " . $address . " did not geocode to great enough accuracy to be useful. ";
 | 
			
		||||
      echo "Accuracy match: " . $accuracy . "
 | 
			
		||||
\n";			
 | 
			
		||||
    } else {
 | 
			
		||||
      // failure to geocode
 | 
			
		||||
      $geocode_pending = false;
 | 
			
		||||
      echo "Address " . $address . " failed to geocode. ";
 | 
			
		||||
      echo "Received status " . $status . "
 | 
			
		||||
\n";
 | 
			
		||||
    }
 | 
			
		||||
    usleep($delay);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
		Reference in New Issue
	
	Block a user