Invalid API key с прямым геокодированием в геокодере

137
10 сентября 2021, 03:30

Всем привет! Идея такая: Нужно взять координаты места по его названию и записать их в JSON-файл. Дальше из этого файла взять координаты и расставить метки на карте. Проблема в том, что больше года проект работал как часы. Уже тогда все запросы передавал с API-ключом. Не могу найти причину почему код перестал работать.

Ниже сам код на PHP, выполняющий функцию геокодирования и записи координат в файл data.json:

$url = 'https://geocode-maps.yandex.ru/1.x/?apikey=b523d043-ad4d-48c3-98e2-xxxxxxx&geocode='.$user_2;
$ar = json_decode(file_get_contents($url),true);
$coords = $ar['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos'];
echo ($user_2);
list($lon,$lat) = explode(' ',$coords);
$lon = +$lon;
echo ($lon);
$lat = +$lat;
echo ($lat);
    $str = file_get_contents('assets/js/data.json');//получаем данные из json-файла и сохраняем значение в строке
    $arr = json_decode($str, true);//декодируем
    $type = "Point"; 
$coordinates = array(
        "type" => $type,
        "coordinates" => array($lat,$lon)
);
    $geometry = array(
        "type" => "Feature",
        "id" => mt_rand(),
        "geometry" => $coordinates
    );
array_push($arr['features'],$geometry);//добавляем в массив $arr
$str = json_encode($arr);
//теперь записываем все в data.json 
    if (json_decode($str) != null)
           {
             $file = fopen('assets/js/data.json','w');
             fwrite($file, $str);
             fclose($file);
           }

Инициализация карты и размещение меток на карте:

ymaps.ready(init);
function init () {
    var myMap = new ymaps.Map('map', {
            center: [49.338848, 12.861112],
            zoom: 2.5
        }, {
            searchControlProvider: 'yandex#search'
        }),
        objectManager = new ymaps.ObjectManager({
            // Чтобы метки начали кластеризоваться, выставляем опцию.
            clusterize: true,
            // ObjectManager принимает те же опции, что и кластеризатор.
            gridSize: 32,
            clusterDisableClickZoom: true,
        });
    // Чтобы задать опции одиночным объектам и кластерам,
    // обратимся к дочерним коллекциям ObjectManager.
    objectManager.objects.options.set('preset', 'islands#orangeDotIcon');
    objectManager.clusters.options.set('preset', 'islands#orangeClusterIcons');
    myMap.geoObjects.add(objectManager);
    $.ajax({
        url: "assets/js/data.json"
    }).done(function(data) {
        objectManager.add(data);
        //myMap.setBounds(myMap.geoObjects.getBounds());
    });
}

Если в переменную $user_2 передать название какого-либо объекта, то файл data.json будет выглядеть примерно так:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "id": 114038700,
            "geometry": {
                "type": "Point",
                "coordinates": [
                    0,
                    0
                ]
            }
        }
   ]
}

Раньше вместо нулей подставлялись координаты.
При этом в консоли появляется предупреждение (Yandex Maps JS API): Invalid API key В общем пишу сюда, т.к. у самого закончились идеи. Надеюсь кто-то поможет

READ ALSO
Объединить две картинки средствами PHP

Объединить две картинки средствами PHP

Загружаемую на сервер картинку необходимо подвергнуть следующей обработке: 1Удалить белый/прозрачный фон; 2

80
Не загружается песня на сайт php

Не загружается песня на сайт php

Не загружаются аудио файлы, с картинками все работает tmp_name пустой ""

58
Как должна выглядеть служба на смартфоне, чтобы принимать push уведомления с сервера без использования Firebase?

Как должна выглядеть служба на смартфоне, чтобы принимать push уведомления с сервера без использования Firebase?

Надо создать приложение (под Android), которое бы принимало push уведомления с моего сервера (на php)Приложения на разных устройствах соответственно...

159