Всем привет! Идея такая: Нужно взять координаты места по его названию и записать их в 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
В общем пишу сюда, т.к. у самого закончились идеи. Надеюсь кто-то поможет
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Загружаемую на сервер картинку необходимо подвергнуть следующей обработке: 1Удалить белый/прозрачный фон; 2
Не загружаются аудио файлы, с картинками все работает tmp_name пустой ""
Надо создать приложение (под Android), которое бы принимало push уведомления с моего сервера (на php)Приложения на разных устройствах соответственно...
idea-мавен-спринг-boot