2016-10-21 1 views
-1

Ich bekomme den Fehler GoogleMapAPI:createMarkerIcon: Error reading image /path/to/my/image.php beim Versuch, eine Karte auf meiner Website zu laden. Dies geschieht nur auf meinen Staging- und Live-Systemen. Alles funktioniert gut auf meiner Dev-Maschine. Die Dateien sind auf allen drei Systemen identisch.GoogleMapAPI: createMarkerIcon: Fehler beim Lesen des Bildes

Ich konnte keine definitive Lösung für das Problem finden, aber andere haben es auch, weil es einige Threads auf anderen Boards gibt, die genau dieses Problem betreffen.

Der Pfad zum Bild ist korrekt und die Datei ist zugänglich.

Antwort

0

Ich weiß nicht, ob noch jemand dieses Problem hat. Aber ich verbrachte eine ganze Weile auf GoogleMapAPIscreateMarkerIcon() Methode, weil es das Bild auf meinem Dev-Rechner gerade gut geladen würde, aber mit der Nachricht GoogleMapAPI:createMarkerIcon: Error reading image /path/to/image.png auf meinem Staging und Live-Maschinen fehlgeschlagen.

Ich weiß, dass dies vor ein paar Jahren ein Problem war und konnte keine als "gelöst" markierten Threads finden. Also dachte ich, ich würde meine Einsichten hier mit der Welt teilen.

Für mich war das Problem, dass $_SERVER['DOCUMENT_ROOT'] ein falsches Verzeichnis zurückgegeben. Dies ist höchstwahrscheinlich der Fall, wenn Sie virtuelle Hosts mit einigen Aliase konfiguriert verwenden. Solange Sie die Website nicht über den Alias ​​aufrufen, funktioniert alles einwandfrei. Sobald Sie jedoch die Website mit dem Alias ​​aufrufen, gibt die $_SERVER Variable nicht die korrekten Werte wieder. Dies gilt nicht nur für den Index 'DOCUMENT_ROOT'.

Die Google Maps-API verwendet jedoch nur diese Variable, um die absolute Position des Symbolbilds zu bestimmen. Die Problemumgehung ist ziemlich einfach, wenn Sie wissen, wonach Sie suchen. Überprüfen Sie zuerst, ob $_SERVER['DOCUMENT_ROOT'] den korrekten Pfad zurückgibt. Wenn es tut tatsächlich den richtigen Pfad zurück und du bist immer noch bekommen den Fehler, müssen Sie weiterhin nach einer Lösung suchen. Ist dies nicht der Fall, können Sie problemlos eine Überschreibungsmethode für die API-Methode createMarkerIcon() schreiben. Ersetzen Sie einfach die $_SERVER['DOCUMENT_ROOT'] Variable durch Ihren echten Dokumentenstamm. Verwenden Sie die folgende Zeile in Ihrer index.php, um eine Konstante mit dem korrekten Pfad zu erstellen. Der letzte Schrägstrich ist optional, aber ich empfehle Ihnen, ihn hinzuzufügen.

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

Das sollte tun. Den Fehler für mich gelöst. Nehmen Sie keine Änderungen an der API selbst vor, um die Aktualisierbarkeit beizubehalten.

Verwandte Themen