我不知道为什么一直说Google未定义。有人知道这个问题吗?
我已经尝试将脚本移到最前面,但这里仍然没有用。
__kernel void vector_add(__global int *A, __global int *B, __global int *C)
{
int i = get_global_id(0);
C[i] = A[i] + B[i];
}
我希望它可以遍历本地存储中的内容
答案 0 :(得分:0)
否。1)您的浏览器不知道google
是什么,因为google
变量将在以后的脚本中定义。将您的<script>
和initMap
函数等放置在<script async defer src="https://maps.googleapis.com/maps/api/js key=....&callback=initMap"> </script>
的之后。
No.2)在页面完全加载后运行代码可能会有所帮助。您可以使用document.addEventListener('DOMContentLoaded', function() { //your code here })
或使用类似jQuery的库。
P.S。一般而言,请谨慎使用API密钥。不要发布
答案 1 :(得分:0)
您正在异步加载Google Maps Javascript API(使用async defer
)。该API在加载完成之前将不可用(google
是未定义的)。届时它将运行您的回调函数(initMap
)。
API文档中的描述
在loop
内部移动initMap
函数调用(或同步加载API)。
代码段:(由于沙箱操作,注释不会读取localStorage)
#map {
height: 100%;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
<div id="map"></div>
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: new google.maps.LatLng(2.8, -187.3),
mapTypeId: 'terrain'
});
loop()
}
// Loop through the results array and place a marker for each
// set of coordinates.
function loop() {
var lati = JSON.parse(localStorage.getItem("lat2"))
console.log("Hi")
console.log(lati)
for (var i = 0; i < lati.length; i++) {
var coords = lati[i]
var latLng = {
lat: (coords[0]),
lng: (coords[1])
};
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>