Files
thetool/lib/Mapbox/StaticImageApi.php

50 lines
1.7 KiB
PHP

<?php
class Mapbox_StaticImageApi {
public static function getImageFileContent(Array $params) : ?string {
$access_token = $params["access_token"];
$gps_lat = $params["gps_lat"];
$gps_long = $params["gps_long"];
$zoom = $params["zoom"];
$size_x = $params["size_x"];
$size_y = $params["size_y"];
$style = $params["style"];
$pin = $params["pin"];
$pin_part = "";
// https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v12/static/pin-l-embassy+ee9900(15.4200370610,46.9599897293)/15.4200370610,46.9599897293,19/640x640?access_token=pk.eyJ1Ijoic2tuZXR3b3J4IiwiYSI6ImNqdWw3eXoyMzBieWU0M284OTU2eWNxMTMifQ.GrgBYKMXVt3TiwU53OBllQ
$url = "https://api.mapbox.com/styles/v1/mapbox/$style/static";
if(is_array($pin) && $pin["gps_lat"] && $pin["gps_long"] && $pin["size"]) {
$pin_gps_lat = $pin["gps_lat"];
$pin_gps_long = $pin["gps_long"];
$pin_size = $pin["size"];
$pin_color = $pin["color"];
$pin_icon = $pin["icon"];
$pin_part .= "/pin-$pin_size";
if($pin_icon) $pin_part .= "-$pin_icon";
$pin_part .= "+$pin_color($pin_gps_long,$pin_gps_lat)";
}
$url .= "$pin_part/$gps_long,$gps_lat,$zoom/{$size_x}x{$size_y}?access_token=$access_token";
$ctx_opts = [
'http' => [
'method' => 'GET',
'header' => 'accept: application/json'
]
];
$ctx = stream_context_create($ctx_opts);
$response = file_get_contents($url, false, $ctx);
if($response === false) {
return null;
}
return $response;
}
}