Я не знаю, есть ли у кого эта проблема. Но я потратил довольно много времени на метод 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, чтобы поддерживать обновляемость.