2016-10-21 2 views
-1

Я получаю ошибку GoogleMapAPI:createMarkerIcon: Error reading image /path/to/my/image.php при попытке загрузить карту на своем веб-сайте. Это происходит только на моих промежуточных и живых системах. Все работает отлично на моей машине dev. Файлы абсолютно одинаковы для всех трех систем.GoogleMapAPI: createMarkerIcon: Ошибка чтения изображения

Я не мог найти окончательного решения проблемы, но у других тоже было это, потому что есть несколько потоков на других платах, касающихся этой проблемы.

Образ жизни изображения допускается корректно.

ответ

0

Я не знаю, есть ли у кого эта проблема. Но я потратил довольно много времени на метод GoogleMapAPI createMarkerIcon(), потому что он загрузил бы изображение как можно точнее на моей машине dev, но не смог с сообщением GoogleMapAPI:createMarkerIcon: Error reading image /path/to/image.png на моих промежуточных и живых машинах.

Я знаю, что это была проблема пару лет назад и не могла найти ни одного потока, отмеченного как 'resolved'. Поэтому я подумал, что поделился бы моим пониманием с миром здесь.

Для меня проблема заключалась в том, что $_SERVER['DOCUMENT_ROOT'] вернул неправильный каталог. Скорее всего, это случай, если вы используете виртуальные хосты с некоторыми алиасами. Пока вы не называете сайт над псевдонимом, все работает нормально. Но как только вы вызываете сайт с псевдонимом, переменная $_SERVER не отражает правильные значения. Это также относится не только к индексу 'DOCUMENT_ROOT'.

API Карт, однако, использует только эту переменную, чтобы определить абсолютное расположение изображения значка. Обходной путь довольно прост, если вы знаете, что ищете. Сначала дважды проверьте, что $_SERVER['DOCUMENT_ROOT'] вернет правильный путь. Если это делает, на самом деле верните правильный путь, и вы еще получив ошибку, вам нужно будет искать решение. Если это не так, вы можете легко написать метод переопределения для метода createMarkerIcon() API. Просто замените переменную $_SERVER['DOCUMENT_ROOT'] на ваш настоящий корень документа. Чтобы получить его, используйте следующую строку в index.php для создания константы с правильным путем. Последняя косая черта необязательна, но я рекомендую вам добавить ее.

define('DOCROOT',realpath(dirname(__FILE__).'/')); 

Это должно быть сделано. Решила ошибку для меня. Просто не вносите изменения в сам API, чтобы поддерживать обновляемость.

Смежные вопросы