Карты Google не отображаются во вложенном div

Я пытаюсь вставить карту Google во вложенный div. Я скопировал общий код из примера, который нашел в Интернете, чтобы убедиться, что я могу заставить его работать. Я вставил этот код в основной элемент своего index.html, и он работал нормально. Затем я вставил тот же код в свой app.component.html, и карта не отображается. Я убедился, что используете высоту и ширину в пикселях, поэтому он не будет использовать какой-либо относительный размер для div контейнера карты. кроме того, когда я проверяю элемент, содержащий карту, он выделяет большой пустой квадрат на экране, где карта должна иметь тот же размер, который я указал. Я также заметил, что, глядя на элемент карты в инструментах разработчика, он не сгенерировал никаких дополнительных вложенных div, как это делает известный хороший div карты.

фрагмент кода, который я использую:

<div style = "height:100%; width: 100%">
    <h1>My First Google Map</h1>
    <div id = "googleMap2" style = "height:400px; width: 400px">insert map</div>
    <script>
        function initMap() {
            var mapProp2= {
                center:new google.maps.LatLng(-33.8478796,150.791894), zoom:17,
            };
            var map=new google.maps.Map(document.getElementById("googleMap2"),mapProp2);
        }
    </script>
    <script src = "https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap"></script>
</div>

Обновлено: я использую ключ api, я вставил API_KEY только в качестве заполнителя.

это изображение показывает, как это выглядит в моем браузере Карты Google не отображаются во вложенном div

Предоставьте Минимальный, полный и проверяемый пример, позволяющий воспроизвести проблему. Код, который вы разместили выше, работает нормально. Также, если вы получаете ошибки / предупреждения в консоли javascript, отредактируйте свой вопрос и включите их. И, может быть, взгляните на ГОСА.

MrUpsidown 31.10.2018 09:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
373
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вам необходимо зарегистрировать и определить свой ключ API для используемого домена, поэтому:

https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap

Должно выглядеть примерно так:

https://maps.googleapis.com/maps/api/js?key=AzOaSyAI_FJ4STEHLG2SlqU8QCilw_Y9_11W8qc&callback=initMap

Важно отметить, что Google JS API больше не является бесплатным; поэтому, если вам не нужно настраивать свою карту с помощью нескольких маркеров и т. д., лучше использовать функцию встраивания iframe, доступную при использовании функции совместного использования карты в картах Google.

Я использую один, я просто использовал этот текст как заполнитель. Я могу отобразить карту, когда помещаю этот фрагмент в index.html. но когда он помещается в app.component.html, он не показывает

Hugh Zhang 30.10.2018 18:50

Если вы получаете следующую ОШИБКУ: InvalidKeyMapError, вам нужно получить ключ Api, если он уже был, тогда

Включите Api, сделайте это

  1. Перейти в API Manager
  2. Нажмите на Обзор
  3. Найдите Google Maps JavaScript API (в Google Maps APIs). Нажмите на это
  4. Там вы найдете кнопку «Включить». Нажмите, чтобы включить API.

Надеюсь, это решит проблему включения API.

У меня есть ключ API, и он работает. карта также появляется, если я помещаю код в index.html, но не в свой app.component.html

Hugh Zhang 30.10.2018 18:55
Ответ принят как подходящий

Добавьте это в свой index.html внутри своего приложения <script src = "https://maps.googleapis.com/maps/api/js?key=API_KEY"> </script> и внутри app.component.html

import { Component, OnInit } from '@angular/core';
declare var google:any;
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

ngOnInit(){
this.getMap();
}

getMap() {

  let mapProp = {
    center: new google.maps.LatLng(23.4866, 80.1066),
    zoom: 4,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    disableDefaultUI: true,
    draggable: false
  };
  new google.maps.Map(document.getElementById('gmap'), mapProp);

}
}

Боже, спасибо тебе большое. проблема заключалась в том, что я использовал getMap() в качестве сценария в html вместо того, чтобы вызывать его в компоненте приложения при его инициализации. похоже, теперь он работает нормально! Я пытался проголосовать, но моя репутация слишком низкая. извиняюсь

Hugh Zhang 31.10.2018 18:06

Другие вопросы по теме