我正在尝试将Google地图插入嵌套的div中。我从网上找到的示例中复制了一些通用代码,以确认可以正常工作。我将该代码粘贴到index.html的body元素中,效果很好。然后,我将相同的代码粘贴到我的app.component.html中,地图未显示。我确保使用以像素为单位的高度和宽度大小,以便它不会对地图容器div使用任何相对大小。此外,当我检查包含地图的元素时,它会在屏幕上突出显示一个大的空方块,其中地图应具有我指定的相同尺寸尺寸。我还注意到,在开发工具中查看map元素时,它没有像已知的好map 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
作为占位符。
答案 0 :(得分:0)
将此添加到应用程序内的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);
}
}
答案 1 :(得分:-1)
您需要为正在使用的域注册并定义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不再免费;因此,除非您需要使用多个标记等自定义地图,否则在Google地图中使用共享地图功能时最好使用可用的iframe嵌入功能。
答案 2 :(得分:-1)
如果遇到以下错误:InvalidKeyMapError,则需要获取一个Api密钥(如果已有的话)
启用Api操作
希望这将解决启用API的问题