/* else { if ($msg = @xpath_eval_expression($xpath, '//Elevation_Query/text()')) { $msg = $msg->nodeset[0]->node_value(); } }*/ $ds = 'SRTM3'; break; default: exit; } return array("lat" => $_lat, "lng" => $_lng, "alt" => $alt, "src" => $ds, "msg" => $msg, "url" => $url); } $ret = getElevation($lat, $lng, $source); if ($ret['alt'] == "") { $source = 'geonames'; $ret = getElevation($lat, $lng, $source); } $lat = $ret['lat']; $lng = $ret['lng']; $alt = $ret['alt']; $ds = $ret['src']; $msg = $ret['msg']; $url = $ret['url']; ?> <div> <b><convert>#label=103<convert><!--latitude--> = <?php echo $lat; ?> <convert>#label=290<convert><!--°--><convert>#label=293<convert><!--N-->.<br /> <convert>#label=105<convert><!--longitude--> = <?php echo $lng;
/** * 標高API */ function elevationAPI() { if (preg_match('/\\b(gzip|deflate)\\b/i', $_SERVER['HTTP_ACCEPT_ENCODING'], $matches)) { // 圧縮可能であれば圧縮する ini_set("zlib.output_compression", "On"); } $result = array("elevation" => "-----", "hsrc" => "-----"); $status = "OK"; if (isset($_GET['lon'])) { if (is_numeric($_GET['lon'])) { $lon = floatval($_GET['lon']); } else { $status = "ERROR"; } } if (isset($_GET['lat'])) { if (is_numeric($_GET['lat'])) { $lat = floatval($_GET['lat']); } else { $status = "ERROR"; } } $outtype = isset($_GET["outtype"]) ? $_GET["outtype"] : ""; if ($outtype != "JSON") { $callback = isset($_GET["callback"]) ? $_GET["callback"] : ""; if (!empty($callback)) { if (preg_match("/^([a-z]|[A-Z]|[_\$])([a-z]|[A-Z]|[_\$]|[0-9]){0,}\$/", $callback) === 0) { $status = "ERROR"; sendResult($result, ""); return; } } } if (isset($lon) && isset($lat)) { $lngRad = deg2rad($lon); $latRad = deg2rad($lat); $R = 128 / M_PI; $worldCoordX = $R * ($lngRad + M_PI); $worldCoordY = -1 * $R / 2 * log((1 + sin($latRad)) / (1 - sin($latRad))) + 128; $elevation = getElevation($worldCoordX, $worldCoordY, 15, 'dem5a', 1); $hsrc = "5m(レーザ)"; if ($elevation == NULL) { $elevation = getElevation($worldCoordX, $worldCoordY, 15, 'dem5b', 1); $hsrc = "5m(写真測量)"; } if ($elevation == NULL) { $elevation = getElevation($worldCoordX, $worldCoordY, 14, 'dem', 0); $hsrc = "10m"; } if ($elevation == NULL) { $elevation = "-----"; $hsrc = "-----"; $status = "NOTFOUND"; } $data = array("elevation" => $elevation, "hsrc" => $hsrc); $result = $data; } else { $status = "ERROR"; } sendResult($result, $callback); }