gpt4 book ai didi

javascript - 用google map api画圆

转载 作者:行者123 更新时间:2023-12-05 08:33:20 25 4
gpt4 key购买 nike

我有这个简单的代码:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Google Map API on xhtml</title>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
<head>
<body>
<script>
//Initialise la map
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
scrollwheel: true,
mapTypeControl: false,
center: {lat: 48.8534100, lng: 2.3488000},
zoom: 13,
streetViewControl: false,
zoomControl:true
});
}
function drawOnclick() {
alert("clicked");
var antennasCircle = new google.maps.Circle({
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map,
center: {lat: 48.8534100, lng: 2.34},
radius: 1000* 100
});
}
</script>
<input id="clickMe" type="button" value="clickme" onclick="drawOnclick();" />
<div id="map">
</div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBbns5KFelTGVj8E8FHdlJfdM9lEHHo4OA&amp;libraries=visualization&amp;callback=initMap" async="async" defer="defer"></script>
</body>
</html>

我的目标是在单击按钮时在巴黎上空绘制一个红色圆圈。问题是当我点击按钮时,没有任何反应。

我不明白的是,当我按如下方式设置我的 initMap 时:

//Initialise la map
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
scrollwheel: true,
mapTypeControl: false,
center: {lat: 48.8534100, lng: 2.3488000},
zoom: 13,
streetViewControl: false,
zoomControl:true
});
var antennasCircle = new google.maps.Circle({
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map,
center: {lat: 48.8534100, lng: 2.34},
radius: 100
});
}

画出圆圈。谁能解释一下?

最佳答案

map 变量是初始化函数的局部变量。要在 HTML 点击函数(对于按钮)中使用它,它需要在全局范围内(HTML 点击函数运行的地方)。要修复它,请删除在初始化函数之外声明它的 var:

// map variable in global scope
var map;
//Initialise la map
function initMap() {
// initialize the map variable
map = new google.maps.Map(document.getElementById('map'), {
// ...

工作代码片段:

html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
<script>
// map variable in global scope
var map;
//Initialise la map
function initMap() {
// initialize the map variable
map = new google.maps.Map(document.getElementById('map'), {
scrollwheel: true,
mapTypeControl: false,
center: {
lat: 48.8534100,
lng: 2.3488000
},
zoom: 13,
streetViewControl: false,
zoomControl: true
});
}

function drawOnclick() {
// alert("clicked");
var antennasCircle = new google.maps.Circle({
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map,
center: {
lat: 48.8534100,
lng: 2.34
},
radius: 1000 * 100
});
map.fitBounds(antennasCircle.getBounds());
}
</script>

<input id="clickMe" type="button" value="clickme" onclick="drawOnclick();" />
<div id="map">

</div>

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&amp;libraries=visualization&amp;callback=initMap" async="async" defer="defer"></script>

关于javascript - 用google map api画圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41830235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com