Javascript 不能使用红色属性';推动';未定义的
我有一个简单的自定义风格的谷歌地图,绘制地图效果很好,但在我想要绘制标记的地方,我得到了一个错误:“不能用未定义的红色属性‘push’”。似乎Javascript 不能使用红色属性';推动';未定义的,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一个简单的自定义风格的谷歌地图,绘制地图效果很好,但在我想要绘制标记的地方,我得到了一个错误:“不能用未定义的红色属性‘push’”。似乎标记没有定义,但我不知道为什么 var i = 0; var map, markersArray, marker = []; var geocoder; var latitude = $(".js-coordinates").data("latitude"); var longitude = $(".js-coordinates").dat
标记
没有定义,但我不知道为什么
var i = 0;
var map,
markersArray,
marker = [];
var geocoder;
var latitude = $(".js-coordinates").data("latitude");
var longitude = $(".js-coordinates").data("longitude");
function init() {
var mapOptions = {
center: new google.maps.LatLng(47.621792911667455, 12.208831455490099),
zoom: 15,
gestureHandling: 'auto',
fullscreenControl: false,
zoomControl: false,
disableDoubleClickZoom: true,
mapTypeControl: false,
scaleControl: false,
scrollwheel: true,
streetViewControl: false,
draggable: true,
clickableIcons: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [{
"featureType": "landscape",
"elementType": "labels",
"stylers": [{ "visibility": "off" }] }, { "featureType": "transit", "elementType": "labels", "stylers": [{ "visibility": "off" }] }, { "featureType": "poi", "elementType": "labels", "stylers": [{ "visibility": "off" }] }, { "featureType": "water", "elementType": "labels", "stylers": [{ "visibility": "off" }] }, { "featureType": "road", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "stylers": [{ "hue": "#00aaff" }, { "saturation": -100 }, { "gamma": 2.15 }, { "lightness": 12 }] }, { "featureType": "road", "elementType": "labels.text.fill", "stylers": [{ "visibility": "on" }, { "lightness": 24 }] }, { "featureType": "road", "elementType": "geometry", "stylers": [{ "lightness": 57 }] }]
};
var mapElement = document.getElementById('googleMap');
map = new google.maps.Map(mapElement, mapOptions);
geocoder = new google.maps.Geocoder();
var locations = [{ "title": "Freisinger Holzbau GmbH",
"address": "",
"desc": "",
"tel": "",
"int_tel": "",
"email": "",
"web": "",
"web_formatted": "",
"open": "",
"time": "",
"lat": latitude,
"lng": longitude,
"vicinity": "Wildbichler Straße 1a, Ebbs",
"open_hours": "",
"marker": {
"fillColor": "#4CAF50",
"fillOpacity": 1,
"strokeWeight": 0,
"scale": 1.5,
"path": "M10.2,9.6C4.5,9.6-0.1,14.3-0.1,20c0,5.7,10.3,12.1,10.3,16.6c0-4.5,10.3-10.9,10.3-16.6S15.9,9.6,10.2,9.6z M10.2,24.3c-2.4,0-4.4-2-4.4-4.4s2-4.4,4.4-4.4s4.4,2,4.4,4.4S12.6,24.3,10.2,24.3z", "anchor": { "x": 10, "y": 30 }, "origin": { "x": 0, "y": 0 }, "style": 2 }, "iw": { "address": true, "desc": true, "email": true, "enable": true, "int_tel": true, "open": true, "open_hours": true, "photo": true, "tel": true, "title": true, "web": true } }];
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
icon: '/assets/images/marker.png',
position: new google.maps.LatLng(locations[i].lat, locations[i].lng),
map: map,
title: locations[i].title,
address: locations[i].address,
desc: locations[i].desc,
tel: locations[i].tel,
int_tel: locations[i].int_tel,
vicinity: locations[i].vicinity,
open: locations[i].open,
open_hours: locations[i].open_hours,
photo: locations[i].photo,
time: locations[i].time,
email: locations[i].email,
web: locations[i].web,
iw: locations[i].iw
});
markersArray.push(marker);
}
}
var i=0;
var映射,
markersArray,
标记=[];
var地理编码器;
变量纬度=$(“.js坐标”)。数据(“纬度”);
变量经度=$(“.js坐标”).data(“经度”);
函数init(){
变量映射选项={
中心:新google.maps.LatLng(47.621792911667455,12.208831455490099),
缩放:15,
手势处理:“自动”,
全屏控制:错误,
动物控制:错误,
禁用双击缩放:真,
mapTypeControl:false,
scaleControl:false,
滚轮:对,
街景控制:错误,
真的,
可单击图标:false,
mapTypeId:google.maps.mapTypeId.ROADMAP,
风格:[{
“特色类型”:“景观”,
“elementType”:“标签”,
“样式器”:[{“可见性”:“关闭”}、{“特征类型”:“运输”、“元素类型”:“标签”、“样式器”:[{“可见性”:“关闭”}]}、{“特征类型”:“poi”、“元素类型”:“标签”、“样式器”:[{“可见性”:“关闭”}]}、{“特征类型”:“水”、“元素类型”:“标签”、“样式器”:[{“可见性”:“关闭”}、{“特征类型”:“道路”,“元素类型”:“标签.图标”,“样式器”:[{“可见性”:“关闭”}],{“样式器”:[{“色调”:“#00aaff”},{“饱和度”:-100},{“伽马”:2.15},{“亮度”:12}]},{“特征类型”:“道路”,“元素类型”:“标签.文本.填充”,“样式器”:[{“可见性”:“打开”,{“亮度”:24},{“特征类型”:“几何体”,“样式器“:[{“亮度”:57}]}]
};
var mapElement=document.getElementById('googleMap');
map=新的google.maps.map(mapElement,mapOptions);
geocoder=新的google.maps.geocoder();
var地点=[{“标题”:“弗雷辛格-霍尔茨堡股份有限公司”,
“地址”:“地址”,
“描述”:“描述”,
“电话”:”,
“国际电话”:“,
“电子邮件”:“,
“网络”:“网络”,
“web_格式”:“,
“打开”:“打开”,
“时间”:“,
“纬度”:纬度,
“lng”:经度,
“附近”:“Wildbichler Straße 1a,低潮”,
“开放时间”:“,
“标记”:{
“fillColor”:“4CAF50”,
“不透明度”:1,
“冲程重量”:0,
“比例”:1.5,
“路径”是:“路径”是指“10.2、9.6 6 6 C44.5 5、9.6 6-0.1、14.3-0.1、10.3、12.1、10.3、12.1、10.1、10.1、10.1、10.1、10.1、10.1、10.1、10.1、10.1、10.3、10.1、10.3、10.1、10.1、10.1、10.1、10、10.3、10.1、10.1、10.3、10、10.3、10.1、10.3、10、10.1、10.1、10.1、10.3、10.3、10.1、10、10.1、10.1、10.1、10.3、10.3、10.1、10.3、10.3、10、10、10.1、10.3、10.3、3、10、10.1、10、10:0},“样式”:2},“iw”:{“地址”:true,“描述”:true,“电子邮件”:true,“启用”:trueint_tel:true,“open”:true,“open_hours”:true,“photo”:true,“tel”:true,“title”:true,“web”:true}];
对于(i=0;i
您没有初始化映射
和标记数组
var map,
markersArray,
marker = [];
markersArray
未定义,因此您可以从这里获取错误
markersArray.push(marker);
只需初始化该值即可解决问题
var map,
markersArray = [],
marker = [];
您应该初始化标记数组
var markersArray =[];
不是,markersArray未定义,不是第一行中的maker为此变量映射进行更改,markersArray=[],marker=[];难道不是所有的
google.maps
构造函数都是异步的吗?可能是重复的,谢谢你的回答!错误消失了,但是标记没有出现在地图上。知道为什么吗?你需要调试并检查一下。现在我明白了,错误是“经度”和“纬度”变量在脚本加载的点没有值d、 谢谢你的帮助!