Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.11.2021, 18:32
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

Хочу видеть вывод координат, но в консоли:

test.php:63 Uncaught ReferenceError: result is not defined

Последний раз редактировалось mav1, 23.11.2021 в 18:57.
Ответить с цитированием
  #12 (permalink)  
Старый 23.11.2021, 18:44
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Сообщение от mav1
Пробовал вот в этом примере: http://95.174.111.242:8091/maptest/test.php
Там ошибка лезет
Google Maps JavaScript API error: RefererNotAllowedMapError

У вас есть платный аккаунт в Google Maps, Этот IP к нему привязан?
Ответить с цитированием
  #13 (permalink)  
Старый 23.11.2021, 18:50
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Сообщение от mav1
Хочу видеть в консоли вывод координат, но там:
А Вам кто-нибудь показывал такой пример
addressToCoords('Rome, Italy').then (coords => alert(coords));
	alert(result);

Я писал просто
addressToCoords('Rome, Italy').then (coords => alert(coords));

Координаты должны быть в coords.
Если сам Google Maps у вас нормально работает.
Ответить с цитированием
  #14 (permalink)  
Старый 23.11.2021, 19:09
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

Пробовал и как вы написали, и с дополнительным алертом в конце - все равно координаты не выводит никоим образом. Ограничения гугловые айпишные убрал временно.

Ваш вариант: http://95.174.111.242:8091/maptest/test2.php
Вариант с добавочным алертом в конце: http://95.174.111.242:8091/maptest/test.php
Ответить с цитированием
  #15 (permalink)  
Старый 23.11.2021, 19:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

mav1,
geocoder.geocode + promise:
Ответить с цитированием
  #16 (permalink)  
Старый 23.11.2021, 19:48
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

В geocode должна передаваться не просто строка с адресом, а объект
https://developers.google.com/maps/d...rence/geocoder
https://developers.google.com/maps/d...eocoderRequest

Вот тут они показывают пример
https://developers.google.com/maps/d...ript/geocoding
geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == 'OK') {

Попробуйте вызывать
addressToCoords({address:'Rome, Italy'}).then (coords => alert(coords))

Последний раз редактировалось voraa, 23.11.2021 в 19:55.
Ответить с цитированием
  #17 (permalink)  
Старый 24.11.2021, 01:14
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

В итоге попробовал вот такой вариант:

addressToCoords({address:'Rome, Italy'}).then (coords => alert(coords[0].geometry.location))


и получил необходимые координаты в алерте. Но проблема осталась в их использовании далее - если сразу после данной строки я добавлю, к примеру:

alert(coords[0].geometry.location);


то при запуске страницы у меня сначала будет выводиться этот алерт (разумеется, undefined, ведь addressToCoords еще не успела сработать), а только потом будет срабатывать уже addressToCoords() со своим алертом (уже с координатами).

Как теперь добавить код, который будет использовать полученные координаты, чтобы он срабатывал только ПОСЛЕ того, как отработает addressToCoords() ? Не запихивая его внутрь самой addressToCoords() или в .then()
Ответить с цитированием
  #18 (permalink)  
Старый 24.11.2021, 01:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

mav1, ты бы уже десять раз успел прочитать учебник если бы в стену головой не долбился.

Асинхронные функции работают только с асинхронными, синхронные с синхронными. Всё. Совместить - никак.
1. Ты делаешь асинхронный запрос к геокодеру.
2. Ты ничего не ждёшь, а сразу делаешь alert.
3. Идёт время.
4. Приходит ответ геокодера.

Почему же alert ничего не показал, а?

Что и как делать - расписано в учебнике, конкретное решение проблемы также предложено в этой теме.

Ты хочешь готовый код и не хочешь думать? Ну извини, попробуй поставить задачу на фрилансе.
__________________
29375, 35
Ответить с цитированием
  #19 (permalink)  
Старый 24.11.2021, 01:42
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

запихал все в .then() и обрел дзен. Работает, и ладно. Не очень чтоб накладно
Ответить с цитированием
  #20 (permalink)  
Старый 24.11.2021, 01:44
Аватар для mav1
Аспирант
Отправить личное сообщение для mav1 Посмотреть профиль Найти все сообщения от mav1
 
Регистрация: 30.08.2010
Сообщений: 57

Сообщение от Aetae Посмотреть сообщение
Асинхронные функции работают только с асинхронными, синхронные с синхронными.
Да, это вроде уложилось теперь в голове, статью почитал
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать обратную функцию в моём случае? DobrovolskyDen Общие вопросы Javascript 14 08.05.2018 09:16
Как сделать одну функцию из двух? MyNameIsCode AJAX и COMET 4 05.05.2017 09:52
Как сделать выполнение одного JS после выполнения другого vita1ii Events/DOM/Window 2 11.01.2013 18:52
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26
js файл(незнаю как запустить функцию) Temchik Opera, Safari и др. 6 20.07.2009 11:49