当试图在我的网站上加载地图时,我得到错误GoogleMapAPI:createMarkerIcon: Error reading image /path/to/my/image.php
。这只发生在我的舞台和现场系统上。在我的开发机器上一切正常。这些文件在所有三个系统上完全相同。
我找不到一个明确的修复问题,但其他人确实有它,因为在其他板上有几个关于这个问题的线程。
图片路径正确,文件可访问
我不知道是否有人仍然有这个问题。但是我花了相当长的时间在GoogleMapAPI的 createMarkerIcon()
方法上,因为它可以在我的开发机器上加载图像,但是在我的staging和live机器上失败了GoogleMapAPI:createMarkerIcon: Error reading image /path/to/image.png
消息。
我知道这是几年前的一个问题,找不到任何标记为"已解决"的线程。所以我想,我应该在这里与世界分享我的见解。
对我来说,问题是,$_SERVER['DOCUMENT_ROOT']
返回了一个错误的目录。如果您正在使用虚拟主机并配置了一些别名,则很可能出现这种情况。只要你不通过别名调用网站,一切都很好。但是,当您使用别名调用网站时,$_SERVER
变量无法反映正确的值。这也不仅仅是'DOCUMENT_ROOT'
索引的情况。
$_SERVER['DOCUMENT_ROOT']
是否返回正确的路径。如果确实返回正确的路径,而仍然得到错误,则需要继续寻找解决方案。如果没有,您可以轻松地为API的createMarkerIcon()
方法编写一个覆盖方法。只需将$_SERVER['DOCUMENT_ROOT']
变量替换为实际的文档根。要检索它,请在index.php中使用以下行创建具有正确路径的常量。最后的斜杠是可选的,但我建议您添加它。
define('DOCROOT',realpath(dirname(__FILE__).'/'));
应该可以了。为我解决了错误。只是不要为了维护可更新性而修改API本身。