Ymaps is not defined ошибка

Разрабатываю сайт локально.
Использую pug.
Создал блок с классом map и id=»js-map»
.map#js-map
На сайте яндекс создал api ключ и подключил в шапке.
Создал файл и вставил в нем код с сайта и подключил перед body.
Поменял id.

ymaps.ready(init);
function init(){
		// Создание карты.
		var myMap = new ymaps.Map("js-map", {
				// Координаты центра карты.
				// Порядок по умолчанию: «широта, долгота».
				// Чтобы не определять координаты центра карты вручную,
				// воспользуйтесь инструментом Определение координат.
				center: [55.76, 37.64],
				// Уровень масштабирования. Допустимые значения:
				// от 0 (весь мир) до 19.
				zoom: 7
		});
}

И получаю ошибку
Uncaught ReferenceError: ymaps is not define

5c7d1de8d2320393618848.jpeg

На сайте yandex нашел инфу, что можно использовать этот ключ локально.

В head выше всех стоит:

<script src="https://api-maps.yandex.ru/2.1?apikey=мой_ключ" type="text/javascript"></script>

Далее стандартные действия из примеров

<div id="map"> </div>

введите сюда описание изображения

Не могу понять, что не так, уже не писал свой код, все взял из примеров

задан 18 мая 2020 в 13:37

ttard's user avatar

11

Решение всех проблем

 ymaps = window.ymaps;

ответ дан 24 ноя 2021 в 7:54

Mentat_Radnor's user avatar

<script src="https://api-maps.yandex.ru/2.1/?apikey=<ваш API-ключ>&lang=ru_RU"></script>

Саша Черных's user avatar

Саша Черных

4,24614 золотых знаков41 серебряный знак92 бронзовых знака

ответ дан 23 окт 2020 в 3:35

tarek shaheen's user avatar

1

Добрый день! Столкнулся с такой проблемой, что не получается получить переменную ymaps .

<template>
  <div class="base-map">
    <yandex-map
      ref="map"
      :settings="settings"
      class="ymap"
      :coords="coords[0] || [0, 0]"
    >
      <ymapMarker
        v-for="(point, index) in coords"
        :key="index"
        :marker-id="index"
        :coords="point"
      />
    </yandex-map>
  </div>
</template>

<script>
const settings = {
  apiKey: process.env.YANDEX_KEY,
  lang: 'ru_RU',
  coordorder: 'latlong',
  version: '2.1'
}

import { yandexMap, ymapMarker, loadYmap } from 'vue-yandex-maps'
export default {
  name: 'BaseMap',
  components: { yandexMap, ymapMarker },
  props: {
    coords: {
      type: Array,
      required: true
    }
  },
  data() {
    return {
      settings: settings
    }
  },
  async mounted() {
    await loadYmap(settings)
    console.log(window.ymaps)
  }
}
</script>

Вроде сделал все как указано в документации, но переменная ymaps остается undefined. В чем может быть проблема?

Также не нашел, как построить маршрут между несколькими точками на карте. Как я понял это надо делать, как раз через переменную ymaps? Есть ли какие-нибудь примеры кода, как это правильно сделать?

В head выше всех стоит:

<script src="https://api-maps.yandex.ru/2.1?apikey=мой_ключ" type="text/javascript"></script>

Далее стандартные действия из примеров

<div id="map"> </div>

введите сюда описание изображения

Не могу понять, что не так, уже не писал свой код, все взял из примеров

В head выше всех стоит:

<script src="https://api-maps.yandex.ru/2.1?apikey=мой_ключ" type="text/javascript"></script>

Далее стандартные действия из примеров

<div id="map"> </div>

введите сюда описание изображения

Не могу понять, что не так, уже не писал свой код, все взял из примеров

задан 18 мая 2020 в 13:37

ttard's user avatar

11

Решение всех проблем

 ymaps = window.ymaps;

ответ дан 24 ноя 2021 в 7:54

Mentat_Radnor's user avatar

<script src="https://api-maps.yandex.ru/2.1/?apikey=<ваш API-ключ>&lang=ru_RU"></script>

Саша Черных's user avatar

Саша Черных

4,22614 золотых знаков41 серебряный знак91 бронзовый знак

ответ дан 23 окт 2020 в 3:35

tarek shaheen's user avatar

1

Добрый день! Столкнулся с такой проблемой, что не получается получить переменную ymaps .

<template>
  <div class="base-map">
    <yandex-map
      ref="map"
      :settings="settings"
      class="ymap"
      :coords="coords[0] || [0, 0]"
    >
      <ymapMarker
        v-for="(point, index) in coords"
        :key="index"
        :marker-id="index"
        :coords="point"
      />
    </yandex-map>
  </div>
</template>

<script>
const settings = {
  apiKey: process.env.YANDEX_KEY,
  lang: 'ru_RU',
  coordorder: 'latlong',
  version: '2.1'
}

import { yandexMap, ymapMarker, loadYmap } from 'vue-yandex-maps'
export default {
  name: 'BaseMap',
  components: { yandexMap, ymapMarker },
  props: {
    coords: {
      type: Array,
      required: true
    }
  },
  data() {
    return {
      settings: settings
    }
  },
  async mounted() {
    await loadYmap(settings)
    console.log(window.ymaps)
  }
}
</script>

Вроде сделал все как указано в документации, но переменная ymaps остается undefined. В чем может быть проблема?

Также не нашел, как построить маршрут между несколькими точками на карте. Как я понял это надо делать, как раз через переменную ymaps? Есть ли какие-нибудь примеры кода, как это правильно сделать?

 

Пользователь 177633

Посетитель

Сообщений: 64
Баллов: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 02.04.2013

Добрый день, у меня такая проблема:
В news.detail в template.php подключаю компонент map.yandex.view, если кэш сайта чистый то карта отображается. Как только компонент кэшируется выбивает ошибку «Uncaught ReferenceError: ymaps is not defined» и карта висит в «Загрузка карты».
В header.php   $APPLICATION->ShowHead(); ЕСТЬ.
Помогите разобраться пожалуйста.

 

Пользователь 177633

Посетитель

Сообщений: 64
Баллов: 5
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 02.04.2013

Решил проблему коряво повторно подключил компонент без параметров в component_epilog.php

Если у кого есть другое решение отпишите пожалуйста.

 

Пользователь 32566

Эксперт

Сообщений: 370
Баллов: 64
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 07.11.2008

Компонент скорее всего подрубает нужные для карты JS-файлы, вызывая $APPLICATION->AddHeadScript(…).
При кешировании эти вызовы не выполняются.

 

Пользователь 214718

Постоянный посетитель

Сообщений: 329
Баллов: 27
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 04.09.2013

#4

1

14.12.2015 16:03:59

Столкнулся.
Сверху компонента добавить код

Код
<sc ript src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU&onload=_yst" type="text/javascript"></sc ript>
 

Пользователь 66772

Посетитель

Сообщений: 53
Баллов: 4
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 07.07.2010

#5

0

07.09.2016 23:38:02

Цитата
Евгений Платонов написал:
Столкнулся.
Сверху компонента добавить код

Код
  < script   src = "http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU&onload=_yst"   type = "text/javascript" >  </ sc   ript > 
 

За код спасибо, карта начала работать по https, но точки, отмеченные на карте все равно не показывает. На странице вижу что этот скрипт вызывается 2 раза. Где в самом компоненте можно поменять
«

http://api-maps.yand

поменять на
«

//api-maps.yand

 

Пользователь 66772

Посетитель

Сообщений: 53
Баллов: 4
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 07.07.2010

Нашел решение.
При вызове компонента bitrix:map.yandex.view не надо прописывать этот скрипт (карта появится, а отметки на ней нет). Нужно найти компонент /bitrix/components/bitrix/map.yandex.system в файле component.php убрать строчку $scheme = (CMain::IsHTTPS() ? «https» : «http»); и начало следующей строчки заменить на $arResult[‘MAPS_SCRIPT_URL’] = ‘//api-maps.yandex.ru/’.$arParams[‘YANDEX_VE ………
Теперь вне зависимости работает ли у вас сайт по http или https  и сколько раз и где вы вызываете компоненты яндекс карт все будет корректно работать.
PS: Вообще странно почему не корректно определяется $scheme

 

Пользователь 92022

Заглянувший

Сообщений: 6
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 25.06.2011

CMain::IsHTTPS() некорректно работает?  

 

Пользователь 1064429

Посетитель

Сообщений: 116
Баллов: 9
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 05.04.2017

Тоже столкнулся с этой проблемой, у меня 403 при загрузки карты, также пробовал принудительно подключать выше компонента просто скрипт яндекса. Даже сожранил файл в корень и оттуда подключал но тогда не работает поиск по карте и точек нет, хоть и 403 уходит.
ТП Битрикса вот что ответила:

 

Пользователь 515353

Заглянувший

Сообщений: 15
Баллов: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 04.03.2016

#9

0

16.12.2020 23:22:12

Надо в файле component_epilog.php (он не кэшируется) вашего шаблона добавить подключение Яндекс.Карты и всё заработает:

Код
use BitrixMainPageAsset;

$asset = Asset::getInstance();
$asset->addJs('https://api-maps.yandex.ru/2.1/?lang=ru_RU');

Создание и техподдержка сайтов. Пишите в ЛС.

J

I do not share the negative scores to my question, in fact the comment of @Eduardo Jaramillo Licea helped me and I will share the answer, hopefully I can help someone else:
1 — Install the library DOM to Imagenpm i dom-to-image
2 — Install jspdf librarynpm i jspdf
in our app.component.html we will place a id, element of the DOM we want to capture. I chose #pdf.<div class=»container»>
<div id=»pdf»>
<h1>Este es un título</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat facere inventore accusantium. Quaerat, maxime fugiat vero eos praesentium nulla perspiciatis pariatur modi blanditiis ipsa consectetur ipsam dolores accusantium? Nam, nemo?</p>
</div>
<button class=»btn btn-primary» (click)=»pdf()»>Download PDF</button>
3 — In our app.component.ts we will include both dependencies and create the pdf() function.import { Component, OnInit} from ‘@angular/core’;
import { jsPDF } from ‘jspdf’
import domtoimage from ‘dom-to-image’;
@Component({
selector: ‘app-root’,
templateUrl: ‘./app.component.html’,
styleUrls: [‘./app.component.css’],
providers: [UserService]
})
export class AppComponent implements OnInit {
constructor(){
}
ngOnInit(){
console.log(‘app.component cargando’);
}
pdf(){
var canvas = document.getElementById(‘pdf’);
domtoimage.toPng(canvas).then((dataUrl)=&gt;{
let imagen= new Image();
imagen.src=dataUrl;/*obtengo el screenshot*/
let pdf = new jsPDF(‘l’,’mm’,’A4′);/* creamos el pdf con jspdf, l es de landscape, mm: medidas en milímetros, y A4 el formato*/
pdf.addImage( imagen, 18, 10, 260,189); /*imagen: es la captura que insertaremos en el pdf, 18: margen izquierdo, 10: margen superior, 260:ancho, 189:alto, pueden jugar con estos valores, de esta forma me quedó prolijo en A4 horizontal*/
pdf.save( ‘documento.pdf’ ); /* descargamos el pdf con ese nombre.*/
}
);

}
}
app.component.cssh1 {
text-align: center;
}
#pdf {
border: solid 3px #000;
margin: 0;
text-align: justify;
}

0 Пользователей и 1 Гость просматривают эту тему.

  • 1 Ответов
  • 8124 Просмотров

Доброго

Joomla 3.х
Установлен модуль, компонент и плагин Zh YandexMap (на других тоже пробовал, такая же ситуация)

На страницу гружу командой <jdoc:include type=»modules» name=»contactmap»   />

Суть проблемы: не подгружается часть модуля — «Uncaught ReferenceError: ymaps is not defined «, на картинке видно что контейнер пуст ((((

<script>jQuery.noConflict();</script> в код добавлен, $ в собственных скриптах заменен

Подскажите пожалуйста направление или способ решения проблемы

« Последнее редактирование: 30.06.2014, 17:36:43 от b2z »

Записан

задача решена

<script>jQuery.noConflict();</script>  абсолютно не нужен

в хедер index.php необходимо вставить <jdoc:include type=»head»  />   

убрать подключение своих библиотек с jquery
в своих скриптах использовать не $ а jQuery

все модули (яндекс карты, галереи) на текущий момент работают корректно

Я разрабатываю расширение хрома. Я хочу подключить некоторый API к текущей вкладке после нажатия кнопки в popup.html. Я использую этот код в popup.js:

$('button').click(function() {
    chrome.tabs.executeScript({
        file: 'js/ymaps.js'
    }, function() {});
});

В ymaps.js я использую следующий код для подключения API к текущей вкладке:

var script = document.createElement('script');
script.src = "http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU";
document.getElementsByTagName('head')[0].appendChild(script);

Этот API необходим для использования Yandex Maps. Итак, после этого кода я создаю <div> где должна быть размещена карта:

$('body').append('<div id="ymapsbox"></div>');

И этот простой код загружает только карту в созданный <div>:

ymaps.ready(init);//Waits DOM loaded and run function
var myMap;
function init() {
    myMap = new ymaps.Map("ymapsbox", {
        center: [55.76, 37.64],
        zoom: 7
    });
}

Я думаю, все ясно, и если вы все еще читаете, я объясню, в чем проблема. Когда я нажимаю кнопку в своем popup.html я попадаю в консоль Chrome. Не Uncaught ReferenceError: ymaps is not defined. Кажется, что библиотека api не связана. НО! Когда я вручную ymaps консольные ymaps — я получаю список доступных методов, поэтому библиотека подключена. Так почему, когда я вызываю ymaps -object из выполненного .js -file, я получаю такую ошибку?

UPD: Я также попытался обернуть ymaps.ready(init) в функции $(document).ready():

$(document).ready(function() {
    ymaps.ready(init);
})

Но ошибка все еще появляется. Человек внизу сказал, что библиотека api, возможно, еще не загружена. Но этот код также вызывает ошибку.

   setTimeout(function() {
        ymaps.ready(init);
    }, 1500);

Я даже пытался сделать такой путь…

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
    if (changeInfo.status == "complete") {
        chrome.tabs.executeScript({
            file: 'js/gmm/yandexmaps.js'
        });
    }
});

Recommend Projects

  • React photo
    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo
    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo
    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo
    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo
    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo
    Laravel

    A PHP framework for web artisans

  • D3 photo
    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo
    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo
    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo
    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo
    Alibaba

    Alibaba Open Source for everyone

  • D3 photo
    D3

    Data-Driven Documents codes.

  • Tencent photo
    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Yii2 русификация ошибок
  • Yii2 получить ошибки валидации
  • Yii2 показывать ошибки
  • Yii2 ошибки модели

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии