В ваших методах отсутствует ключевое слово static
. Измените
function getInstanceByName($name=''){
на
public static function getInstanceByName($name=''){
, если вы хотите называть их статически.
Обратите внимание, что статические методы (и Singletons ) являются смертью для проверки .
Также обратите внимание, что вы слишком много делаете работа в конструкторе, особенно все, что запросы не должны быть там. Все, что должен сделать ваш конструктор, - установить объект в допустимое состояние. Если вам нужно иметь данные извне класса, чтобы сделать это, подумайте о том, чтобы вводить его, а не тянуть его. Также обратите внимание, что конструкторы ничего не могут вернуть. Они всегда будут возвращать пустоту, поэтому все эти return false
утверждения ничего не делают, кроме завершения конструкции.
Я думаю, что проблема в том, что вы неправильно набрали параметры проекции.
lat1 и lat2 должны быть lat_1 и lat_2 (с подчеркиванием).
Правильная строка proj должна быть:
+proj=aea +lat_1=34.82176739999999 +lat_2=34.8219931
Более подробную информацию о формате строки proj вы можете найти в официальной документации, связанной здесь: https: //proj4.org/operations/projections/aea.html