GoogleMapAPI:createMarkerIcon:读取图片时出错

时间:2016-10-21 13:36:03

标签: php apache google-maps google-maps-api-3 document-root

我在尝试在我的网站上加载地图时收到错误GoogleMapAPI:createMarkerIcon: Error reading image /path/to/my/image.php。这只发生在我的暂存和实时系统上。在我的开发机器上一切正常。这三个系统上的文件完全相同。

我找不到针对这个问题的明确解决方案,但是其他人确实也有这个问题,因为其他主板上有很多关于这个问题的线索。

图像的路径正确,文件可以访问。

1 个答案:

答案 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本身进行修改以保持可更新性。