Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未定义infowindow#googleMaps API_Javascript_Google Maps_Runtime Error - Fatal编程技术网

Javascript 未捕获引用错误:未定义infowindow#googleMaps API

Javascript 未捕获引用错误:未定义infowindow#googleMaps API,javascript,google-maps,runtime-error,Javascript,Google Maps,Runtime Error,我正在尝试将谷歌地图API集成到我的页面中。我使用一段代码从JSON中提取位置并将位置保存在数组中,然后返回每个位置的位置数据。一切都进行得很顺利,只是在单击地图上的标记时,我无法激活infowindow功能。这是单击时出现的错误: var映射;//声明一个全局映射变量 /* 从这里开始!加载页面时调用initializeMap()。 */ 函数初始化映射(){ 风险值位置; 变量映射选项={ disableDefaultUI:true }; /* 要显示地图,googleMap变量必须为

我正在尝试将谷歌地图API集成到我的页面中。我使用一段代码从JSON中提取位置并将位置保存在数组中,然后返回每个位置的位置数据。一切都进行得很顺利,只是在单击地图上的标记时,我无法激活
infowindow
功能。这是单击时出现的错误:

var映射;//声明一个全局映射变量
/*
从这里开始!加载页面时调用initializeMap()。
*/
函数初始化映射(){
风险值位置;
变量映射选项={
disableDefaultUI:true
};
/*
要显示地图,googleMap变量必须为
附加到resumeBuilder.js中的#mapDiv。
*/
map=new google.maps.map(document.querySelector('#map'),mapOptions);
/*
locationFinder()返回JSON中每个位置字符串的数组
为生物、教育和工作而写。
*/
函数locationFinder(){
//初始化空数组
var位置=[];
//将bio中的单位置属性添加到位置数组中
位置。推送(生物接触。位置);
//遍历学校位置并将每个位置附加到
//位置数组。请注意,forEach用于数组迭代
//如《Udacity挡泥板样式指南》中所述:
// https://udacity.github.io/frontend-nanodegree-styleguide/javascript.html#for-循环中
教育。学校。forEach(功能(学校){
地点。推送(学校。地点);
});
//遍历工作位置并将每个位置附加到
//位置数组。请注意,forEach用于数组迭代
//如《Udacity挡泥板样式指南》中所述:
// https://udacity.github.io/frontend-nanodegree-styleguide/javascript.html#for-循环中
work.jobs.forEach(函数(作业){
位置。推送(作业。位置);
});
返回地点;
}
/*
createMapMarker(placeData)读取Google Places搜索结果以创建地图图钉。
placeData是从包含信息的搜索结果返回的对象
关于一个地点。
*/
函数createMapMarker(placeData){
//下一行将位置数据从搜索结果对象保存到局部变量
var lat=placeData.geometry.location.lat();//位置服务的纬度
var lng=placeData.geometry.location.lng();//距离place服务的经度
var name=placeData.formatted_address;//地点服务中的地点名称
var bounds=window.mapBounds;//映射窗口的当前边界
//信息窗口是当您单击时打开的小帮助窗口
//或者将鼠标悬停在地图上的图钉上。它们通常包含更多信息
//关于一个地点。
var infoWindow=new google.maps.infoWindow({
内容:姓名
});
//标记是一个对象,包含关于单个位置的接点的附加数据
var marker=new google.maps.marker({
地图:地图,
位置:placeData.geometry.location,
标题:姓名
});
//嗯,我想知道这是怎么回事。。。
marker.addListener('click',function()){
//你的密码在这里!
信息窗口。打开(地图、标记);
});
//这是pin实际添加到地图的位置。
//extend()接受映射位置对象
extend(新的google.maps.LatLng(lat,lng));
//将地图与新标记匹配
映射边界(bounds);
//将地图居中
map.setCenter(bounds.getCenter());
}
/*
回调(结果、状态)确保搜索返回某个位置的结果。
如果是,它将为该位置创建一个新的地图标记。
*/
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
createMapMarker(结果[0]);
}
}
/*
pinPoster(位置)接收locationFinder()创建的位置数组
并对每个位置启动Google place搜索
*/
功能精确定位仪(位置){
//创建一个Google place搜索服务对象。PlacesService完成以下工作:
//实际搜索位置数据。
var service=newgoogle.maps.places.PlacesService(地图);
//遍历位置数组,为每个位置创建搜索对象
地点。forEach(功能(地点){
//搜索请求对象
var请求={
查询:地点
};
//实际上,在GoogleMapsAPI中搜索位置数据并运行回调
//函数在每次搜索后使用搜索结果。
文本搜索(请求、回调);
});
}
//基于接点位置设置贴图的边界
window.mapBounds=new google.maps.LatLngBounds();
//locations是从locationFinder()返回的位置字符串数组
位置=locationFinder();
//pinPoster(位置)在地图上为中的每个位置创建接点
//位置数组
精确定位仪(位置);
}
/*
当您准备好实现谷歌地图时,请取消注释下面的代码!
*/
//加载页面时调用initializeMap()函数
window.addEventListener(“加载”,初始化映射);
//一种监听窗口大小调整的方法
//并调整贴图边界
window.addEventListener('resize',函数(e){
//确保在调整页面大小时更新地图边界
fitBounds(mapBounds);

});您正试图在此处创建一个
infoWindow
对象:

// infoWindows are the little helper windows that open when you click
// or hover over a pin on a map. They usually contain more information
// about a location.
var infoWindow = new google.maps.InfoWindow({
  content: name
});
然后使用它(单击标记后显示消息)

但请仔细查看您的变量:
infoWindow!==信息窗口(字母
W

浏览器不知道indow是什么信息,但出错了

阅读更多关于JS中变量命名的信息:


您试图在此处创建一个
信息窗口
对象:

// infoWindows are the little helper windows that open when you click
// or hover over a pin on a map. They usually contain more information
// about a location.
var infoWindow = new google.maps.InfoWindow({
  content: name
});
然后使用它(单击标记后显示消息)

但请仔细查看您的变量:
infoWindow!==信息窗口