diff --git a/terrain.php b/terrain.php index 5fe312c..fcc1fc0 100644 --- a/terrain.php +++ b/terrain.php @@ -24,23 +24,19 @@ if (abs($lat) > 90.00 || abs($long) > 180.00) { $finallat = $lat; $finallong = $long; +$failtowater = false; + if ($database->has('terrain', ["AND" => ["latitude" => $lat, "longitude" => $long]])) { // We're good } else if ($database->has('terrain', ["AND" => ["latitude" => $lat + .01, "longitude" => $long]])) { $finallat = $lat + 0.01; } else if ($database->has('terrain', ["AND" => ["latitude" => $lat, "longitude" => $long + .01]])) { $finallong = $long + 0.01; +} else if ($database->has('terrain', ["AND" => ["latitude" => $lat + .01, "longitude" => $long + .01]])) { + $finallat = $finallat + 0.01; + $finallong = $finallong + 0.01; } else { - // last resort - $tries = 0; - while (!$database->has('terrain', ["AND" => ["latitude" => $finallat, "longitude" => $finallong]]) && $tries < 5) { - $finallat = $finallat + 0.01; - $finallong = $finallong + 0.01; - $tries++; - } - if ($tries >= 5) { - sendError("Terrain data not found for the given coordinates or anything nearby.", true); - } + $failtowater = true; } $terrainstrings = [ @@ -60,6 +56,10 @@ $terrainstrings = [ 13 => "Urban and Built" ]; -$terrainid = $database->select('terrain', 'type', ["AND" => ["latitude" => $finallat, "longitude" => $finallong]])[0]; +if ($failtowater) { + $terrainid = 0; +} else { + $terrainid = $database->select('terrain', 'type', ["AND" => ["latitude" => $finallat, "longitude" => $finallong]])[0]; +} $out = ["status" => "OK", "type" => $terrainid, "latitude" => $finallat, "longitude" => $finallong, "name" => $terrainstrings[$terrainid]]; echo json_encode($out);