NodeJS, socket.io, Yandex API Geo не открывается карта
Не открывается карта, ошибок вроде бы нет....
<script>
const socket = io()
socket.on('connect', () => {
console.log('Подключение установлено!')
})
// получаем данные от сервера
socket.on('hello', (counter) => {
console.log(counter)
})
socket.on('aver', (aver) => {
console.log(aver)
})
socket.on('yandex', (yandex) => {
console.log(yandex)
})
socket.on('mylnikov', (mylnikov) => {
console.log(mylnikov)
})
socket.on('opencellid', (opencellid) => {
console.log(opencellid)
})
// отправляем данные на сервер
socket.emit('hi', {
counter: 'test'
})
function init() {
socket.on('average', (average) => {
//socket.on('yandex', (yandex) => {
//socket.on('mylnikov', (mylnikov) => {
// socket.on('opencellid', (opencellid) => {
const myMap = new ymaps.Map('map', {
center: [57.73065948486328, 34.17068862915039],
zoom: 15,
behaviors: ['default', 'scrollZoom']
}),
// Создаем коллекцию.
myCollection = new ymaps.GeoObjectCollection(),
// Создаем массив с данными.
myPoints = [
{ coords: [57.73065948486328, 34.17068862915039], text: 'Трактир' },
{ coords: [55.78972919255, 37.35810886834], text: 'Кафе' }
];
// Заполняем коллекцию данными.
for (var i = 0, l = myPoints.length; i < l; i++) {
var point = myPoints[i];
myCollection.add(new ymaps.Placemark(
point.coords, {
balloonContentBody: point.text
}
));
}
// Добавляем коллекцию меток на карту.
myMap.geoObjects.add(myCollection);
// Создаем экземпляр класса ymaps.control.SearchControl
var mySearchControl = new ymaps.control.SearchControl({
// Заменяем стандартный провайдер данных (геокодер) нашим собственным.
provider: new CustomSearchProvider(myPoints),
// Не будем показывать еще одну метку при выборе результата поиска,
// т.к. метки коллекции myCollection уже добавлены на карту.
noPlacemark: true,
resultsPerPage: 5
});
// Добавляем контрол в верхний правый угол,
myMap.controls
.add(mySearchControl, { right: 10, top: 10 })
.add('smallZoomControl');
})
//})
//})
//})
}
// Провайдер данных для элемента управления ymaps.control.SearchControl.
// Осуществляет поиск геообъектов в по массиву points.
// Реализует интерфейс IGeocodeProvider.
function CustomSearchProvider(points) {
this.points = points;
}
// Провайдер ищет по полю text стандартным методом String.ptototype.indexOf.
CustomSearchProvider.prototype.geocode = function (request, options) {
var promise = new ymaps.util.Promise(),
geoObjects = new ymaps.GeoObjectArray(),
// Сколько результатов нужно пропустить.
offset = options.skip || 0,
// Количество возвращаемых результатов.
limit = options.results || 20;
var points = [];
// Ищем в свойстве text каждого элемента массива.
for (var i = 0, l = this.points.length; i < l; i++) {
var point = this.points[i];
if (point.text.toLowerCase().indexOf(request.toLowerCase()) != -1) {
points.push(point);
}
}
// При формировании ответа можно учитывать offset и limit.
points = points.splice(offset, limit);
// Добавляем точки в результирующую коллекцию.
for (var i = 0, l = points.length; i < l; i++) {
var point = points[i],
coords = point.coords,
text = point.text;
geoObjects.add(new ymaps.Placemark(coords, {
name: text + ' name',
description: text + ' description',
balloonContentBody: '<p>' + text + '</p>',
boundedBy: [coords, coords]
}));
}
promise.resolve({
// Геообъекты поисковой выдачи.
geoObjects: geoObjects,
// Метаинформация ответа.
metaData: {
geocoder: {
// Строка обработанного запроса.
request: request,
// Количество найденных результатов.
found: geoObjects.getLength(),
// Количество возвращенных результатов.
results: limit,
// Количество пропущенных результатов.
skip: offset
}
}
});
// Возвращаем объект-обещание.
return promise;
};
ymaps.ready(init)
</script>