Uncaught ReferenceError: google is not defined when placing pins
Uncaught ReferenceError: google is not defined when placing pins
我一直收到 google 未定义。只有当我尝试将图钉放在地图上时才会发生这种情况。在我在 initMap() 函数之后添加所有行之前,地图显示正常且没有错误。我看过类似的帖子,但 none 的答案解决了我的问题。感谢您提前提出任何建议
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="maps.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPduELA=" crossorigin="anonymous"></script>
<script type="text/javascript" src="maps.js"></script>
<title>Dr Office Data</title>
</head>
<body>
<div class="pageContainer">
<div id="map"></div>
</div>
<div class="sortContainer">
<button type="button" name="button">Click to Show Summary Markers</button>
<div class="stateDropdown">
<label for="stateList">Select a State</label>
<select class="" name="states">
<option value="ALL">All</option>
<option value="AL">Alabama</option>
<option value="CO">Colorado</option>
<option value="MS">Mississippi</option>
</select>
</div>
</div>
<script src="https://maps.googleapis.com/maps/api/js?key=MYKEY&callback=initMap"
async defer></script>
</body>
</html>
```
var markerData = [["FIRST","LAST","ADDRESS","PHONE",39.6387797,-104.8007541],["FIRST","LAST","ADDRESS","PHONE",39.6125868,-105.1377128],["FIRST","LAST","ADDRESS","PHONE",30.6940368,-88.0945316]]
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(37.09024, -95.712891)
});
}
var infowindow = new google.maps.InfoWindow;
var marker, i;
for (i = 0; i < markerData.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markerData[i][4], markerData[i][5]),
map: map
});;
}
```
如 Geocodezip 所说,您的地图相关代码需要放在回调函数中,以确保在执行代码之前 API 已加载。试试这个 working jsfiddle。完整代码如下:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<title>Dr Office Data</title>
</head>
<body>
<div class="pageContainer">
<div id="map" style="height:400px;width:400px;"></div>
</div>
<div class="sortContainer">
<button type="button" name="button">Click to Show Summary Markers</button>
<div class="stateDropdown">
<label for="stateList">Select a State</label>
<select class="" name="states">
<option value="ALL">All</option>
<option value="AL">Alabama</option>
<option value="CO">Colorado</option>
<option value="MS">Mississippi</option>
</select>
</div>
</div>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk" async defer></script>
<script>
var markerData = [
["FIRST", "LAST", "ADDRESS", "PHONE", 39.6387797, -104.8007541],
["FIRST", "LAST", "ADDRESS", "PHONE", 39.6125868, -105.1377128],
["FIRST", "LAST", "ADDRESS", "PHONE", 30.6940368, -88.0945316]
];
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(37.09024, -95.712891)
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < markerData.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markerData[i][4], markerData[i][5]),
map: map
});
}
}
</script>
</body>
</html>
希望对您有所帮助!
我一直收到 google 未定义。只有当我尝试将图钉放在地图上时才会发生这种情况。在我在 initMap() 函数之后添加所有行之前,地图显示正常且没有错误。我看过类似的帖子,但 none 的答案解决了我的问题。感谢您提前提出任何建议
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="maps.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPduELA=" crossorigin="anonymous"></script>
<script type="text/javascript" src="maps.js"></script>
<title>Dr Office Data</title>
</head>
<body>
<div class="pageContainer">
<div id="map"></div>
</div>
<div class="sortContainer">
<button type="button" name="button">Click to Show Summary Markers</button>
<div class="stateDropdown">
<label for="stateList">Select a State</label>
<select class="" name="states">
<option value="ALL">All</option>
<option value="AL">Alabama</option>
<option value="CO">Colorado</option>
<option value="MS">Mississippi</option>
</select>
</div>
</div>
<script src="https://maps.googleapis.com/maps/api/js?key=MYKEY&callback=initMap"
async defer></script>
</body>
</html>
```
var markerData = [["FIRST","LAST","ADDRESS","PHONE",39.6387797,-104.8007541],["FIRST","LAST","ADDRESS","PHONE",39.6125868,-105.1377128],["FIRST","LAST","ADDRESS","PHONE",30.6940368,-88.0945316]]
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(37.09024, -95.712891)
});
}
var infowindow = new google.maps.InfoWindow;
var marker, i;
for (i = 0; i < markerData.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markerData[i][4], markerData[i][5]),
map: map
});;
}
```
如 Geocodezip 所说,您的地图相关代码需要放在回调函数中,以确保在执行代码之前 API 已加载。试试这个 working jsfiddle。完整代码如下:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<title>Dr Office Data</title>
</head>
<body>
<div class="pageContainer">
<div id="map" style="height:400px;width:400px;"></div>
</div>
<div class="sortContainer">
<button type="button" name="button">Click to Show Summary Markers</button>
<div class="stateDropdown">
<label for="stateList">Select a State</label>
<select class="" name="states">
<option value="ALL">All</option>
<option value="AL">Alabama</option>
<option value="CO">Colorado</option>
<option value="MS">Mississippi</option>
</select>
</div>
</div>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk" async defer></script>
<script>
var markerData = [
["FIRST", "LAST", "ADDRESS", "PHONE", 39.6387797, -104.8007541],
["FIRST", "LAST", "ADDRESS", "PHONE", 39.6125868, -105.1377128],
["FIRST", "LAST", "ADDRESS", "PHONE", 30.6940368, -88.0945316]
];
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(37.09024, -95.712891)
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < markerData.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markerData[i][4], markerData[i][5]),
map: map
});
}
}
</script>
</body>
</html>
希望对您有所帮助!