Импортировать статическую карту Google прямо в fpdf
Я хотел поместить статическую карту Google в pdffile, созданный с использованием расширения fpdf. и использовал код, чтобы сначала создать временный файл. Используя этот код. Однако я сталкиваюсь с ошибкой ("не могу открыть файл изображения").
// define the mapurl
$fullURL = 'http://maps.googleapis.com/maps/api/staticmap?center=Amsterdam&z=14&size=100x100&sensor=false';
// create a tempfile
$tempF = tmpfile();
fwrite($tempF, file_get_contents($fullURL));
//Rewind to the start of file
rewind($tempF);
// place the image in the pdf.
if (!empty($tempF)) {
$this->Image($tempF,$start_x, $this->GetY(),0,100);
}
fclose($tempF); // remove the tempfile
4 ответа
Примечание: собственный ответ ОП извлечен из вопроса.
Тогда я обнаружил, что это можно сделать намного проще... Мне не нужно использовать временный файл. Если я добавлю URL в переменную изображения и предоставлю формат, то все будет работать в две строки... Я не использую параметры высоты и ширины в fpdf, потому что они растягивают изображение в нечитаемую форму.
$fullURL = "http://maps.googleapis.com/maps/api/staticmap?center=". \
$row-Google_coor."&zoom=10&size=2200x200\
&markers=color:blue%7Clabel:D%7C".$row->Google_coor;
$this->Image($fullURL,$start_x, $this->GetY(),0,0,"PNG");
К сожалению, при использовании этой функции иногда программа возвращает ошибку. Изображение не может быть найдено. Но когда я помещаю строку URL в браузер, изображение появляется нормально. Надеюсь, это также небольшой запасной вариант. Давайте посмотрим, найду ли я решение на сайте Google Apis https://developers.google.com/maps/documentation/staticmaps/?csw=1
У меня была проблема, похожая на ОП. Я получал сообщение об ошибке при использовании FPDF и попытке получить статическое изображение карты из Карт Google в свой PDF-файл. Я получаю сообщение "Ошибка FPDF: отсутствует или неверный файл изображения". Что я сделал, так это зарегистрировался в консоли разработчика Google и получил ключ API, как они говорят в документации
Надеюсь это поможет.
Вы можете скачать изображение и использовать его с fpdf
$url ="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=".$googleApiKey;
$img = __DIR__.'/img/map.png';
file_put_contents($img, file_get_contents($url));
$pdf->Image($img,null,null,170);
Надеюсь, что это будет полезно
Что касается того, что стоит, у меня была и эта проблема, я обнаружил, что на моем сервере был менеджер исходящих соединений, это автоматически блокировало бы запрос, мне пришлось добавить ip, как только это было сделано, оно работало нормально.