示例#1
0
            /* 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);
}