50 lines
1.7 KiB
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;
|
|
|
|
}
|
|
} |