Javascript 地图不可见,谷歌未定义
我需要在标记上单击的任何点周围创建一个缓冲区/圆圈。我遵循的代码是。我已转介了先前提出的有关这些问题,但未能找到令人满意的答案。我请求所有能回答的人分享,因为这会有很大帮助。提前谢谢。我已经添加了显示错误的脚本文件Javascript 地图不可见,谷歌未定义,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我需要在标记上单击的任何点周围创建一个缓冲区/圆圈。我遵循的代码是。我已转介了先前提出的有关这些问题,但未能找到令人满意的答案。我请求所有能回答的人分享,因为这会有很大帮助。提前谢谢。我已经添加了显示错误的脚本文件 <script src="bootstrap-3.3.7-dist/jquery-3.2.1%20(2).js"> </script> <script> var map; va
<script src="bootstrap-3.3.7-dist/jquery-3.2.1%20(2).js"> </script>
<script>
var map;
var circle;
var marker;
var currentlatlng = new google.maps.LatLng(23.06368, 72.53135);
function loadMap() {
setLatLongValue();
var currentlatlng = new google.maps.LatLng(23.06368, 72.53135);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: currentlatlng,
mapTypeId: 'terrain',
mapTypeControl: true,
navigationControl: true
});
var marker = new google.maps.Marker({
position: currentlatlng,
draggable: true,
map: map
});
}
function setLatLongValue() {
jQuery('#txtPointA1').val(currentlatlng.lat());//#txtPointA1
jQuery('#txtPointA2').val(currentlatlng.lng());
}
marker.addListener('click', function (event) {
drawCircle(event.latLng);
});
function drawCircle() {
if (circle != undefined)
circle.setMap(null);
var radius = 200;
if (jQuery('#txtPointB1').val() != '' && !isNaN(jQuery('#txtPointB1').val()) && parseInt(jQuery('#txtPointB1').val()) > 0) {
radius = parseInt(jQuery('#txtPointB1').val());
}
jQuery('#txtPointB1').val(radius.toString());
var options = {
strokeColor: '#800000',
strokeOpacity: 1.0,
strokeWeight: 1,
fillColor: '#C64D45',
fillOpacity: 0.5,
map: map,
center: currentlatlng,
radius: radius
};
circle = new google.maps.Circle(options);
}
$(window).load(function () {
loadMap();
setLatLongValue();
drawCircle();
});
//$(document).ready(function () {
// loadMap();
// setLatLongValue();
// //setMarker();
// drawCircle();
//});
</script>
<script async
src="https://maps.googleapis.com/maps/api/js?key=KEY&callback=loadMap">
</script>
var映射;
var圈;
var标记;
var currentlatlng=新的google.maps.LatLng(23.06368,72.53135);
函数loadMap(){
setLatLongValue();
var currentlatlng=新的google.maps.LatLng(23.06368,72.53135);
var map=new google.maps.map(document.getElementById('map'){
缩放:16,
中心:currentlatlng,,
mapTypeId:'地形',
mapTypeControl:true,
导航控件:true
});
var marker=new google.maps.marker({
职位:currentlatlng,
真的,
地图:地图
});
}
函数setLatLongValue(){
jQuery('#txtPointA1').val(currentlatlng.lat());/#txtPointA1
jQuery('#txtPointA2').val(currentlatlng.lng());
}
marker.addListener('click',函数(事件){
drawCircle(event.latLng);
});
函数drawCircle(){
如果(圆!=未定义)
circle.setMap(空);
var半径=200;
if(jQuery('#txtPointB1').val()!='&&&!isNaN(jQuery('#txtPointB1').val())&&parseInt(jQuery('#txtPointB1').val())>0){
radius=parseInt(jQuery('#txtPointB1').val());
}
jQuery('#txtPointB1').val(radius.toString());
变量选项={
strokeColor:“#800000”,
笔划不透明度:1.0,
冲程重量:1,
填充颜色:'#C64D45',
填充不透明度:0.5,
地图:地图,
中心:currentlatlng,,
半径:半径
};
圆圈=新的google.maps.circle(选项);
}
$(窗口)。加载(函数(){
loadMap();
setLatLongValue();
画圈();
});
//$(文档).ready(函数(){
//loadMap();
//setLatLongValue();
////setMarker();
//画圈();
//});
由于这句话,您得到了“未捕获的引用错误:未定义google”
var currentlatlng = new google.maps.LatLng(23.06368, 72.53135);
在执行这行代码时,google还没有定义。我建议将该语句放在loadMap()函数中
检查此工作示例:
以下是代码片段:
var映射;
var圈;
var标记;
无功电流;
函数loadMap(){
setLatLongValue();
currentlatlng=新的google.maps.LatLng(23.06368,72.53135);
map=new google.maps.map(document.getElementById('map'){
缩放:16,
中心:currentlatlng,,
mapTypeId:'地形',
mapTypeControl:true,
导航控件:true
});
var marker=new google.maps.marker({
职位:currentlatlng,
真的,
地图:地图
});
marker.addListener('click',函数(事件){
drawCircle(event.latLng);
});
setLatLongValue();
画圈();
}
函数setLatLongValue(){
//jQuery('#txtPointA1').val(currentlatlng.lat());/#txtPointA1
//jQuery('#txtPointA2').val(currentlatlng.lng());
}
函数drawCircle(){
var半径=200;
if(jQuery('#txtPointB1').val()!='&&&!isNaN(jQuery('#txtPointB1').val())&&parseInt(jQuery('#txtPointB1').val())>0){
radius=parseInt(jQuery('#txtPointB1').val());
}
jQuery('#txtPointB1').val(radius.toString());
变量选项={
strokeColor:“#800000”,
笔划不透明度:1.0,
冲程重量:1,
填充颜色:'#C64D45',
填充不透明度:0.5,
地图:地图,
中心:currentlatlng,,
半径:半径
};
圆圈=新的google.maps.circle(选项);
}
#地图{
宽度:500px;
高度:500px;
}
样品
remove callback=loadmap form link错误是什么?此外,我认为显示api键不是一个好主意谢谢,但错误仍然存在。未捕获引用错误:google未定义这是错误,地图也未显示您正在尝试在加载之前使用google
对象。删除async属性并将google引用放在javascript代码上方谢谢@James it worked该错误未显示但标记周围的圆圈未显示。请检查我更新的代码段。你现在可以看到你的标记周围的圆圈了。明白了吗?只是在loadMap中改变了drawCircle方法,它工作得非常好。明白了!只需将drawCircle函数移到loadMap中,它就可以很好地工作。但在控制台中,它仍然显示未定义的drawCircle。我试过你也编辑代码。非常感谢@James