我在尝试在我的网站上加载地图时收到错误GoogleMapAPI:createMarkerIcon: Error reading image /path/to/my/image.php
。这只发生在我的暂存和实时系统上。在我的开发机器上一切正常。这三个系统上的文件完全相同。
我找不到针对这个问题的明确解决方案,但是其他人确实也有这个问题,因为其他主板上有很多关于这个问题的线索。
图像的路径正确,文件可以访问。
答案 0 :(得分:0)
我不知道是否有人还有这个问题。但我在 GoogleMapAPI的 createMarkerIcon()
方法上花了很长时间,因为它会在我的开发计算机上加载图像,但在我的登台和活动机器上显示错误GoogleMapAPI:createMarkerIcon: Error reading image /path/to/image.png
我知道这是几年前的一个问题,但找不到任何标记为'已解决'的线程。所以我想,我会在这里与世界分享我的见解。
对我来说,问题是,$_SERVER['DOCUMENT_ROOT']
返回了错误的目录。如果您使用虚拟主机并配置了一些别名,则很可能就是这种情况。只要您不通过别名调用网站,一切正常。但是,只要您使用别名调用网站,$_SERVER
变量就无法反映正确的值。这也不仅仅是'DOCUMENT_ROOT'
索引的情况。
然而,Maps API仅使用此变量来确定图标图像的绝对位置。如果你知道你在寻找什么,解决方法很简单。首先仔细检查$_SERVER['DOCUMENT_ROOT']
是否返回正确的路径。如果确实实际上返回了正确的路径并且您仍然收到错误,那么您需要继续寻找解决方案。如果没有,您可以轻松地为API的createMarkerIcon()
方法编写覆盖方法。只需用您的真实文档根替换$_SERVER['DOCUMENT_ROOT']
变量即可。要检索它,请使用index.php中的以下行创建具有正确路径的常量。最后的斜杠是可选的,但我建议你添加它。
define('DOCROOT',realpath(dirname(__FILE__).'/'));
应该这样做。解决了我的错误。只是不要对API本身进行修改以保持可更新性。