使用Google Maps API的未定义Javascript变量
我正在使用GoogleMapsJavascriptAPI绘制一条多段线。我打算创建一个函数,在单击按钮时删除多段线。按钮的HTML代码如下所示:使用Google Maps API的未定义Javascript变量,javascript,jquery,html,google-maps,Javascript,Jquery,Html,Google Maps,我正在使用GoogleMapsJavascriptAPI绘制一条多段线。我打算创建一个函数,在单击按钮时删除多段线。按钮的HTML代码如下所示: <button type="button" class="btn btn-danger" id="clear_button" onclick="removeLine()">Borrar ruta</button> 一切正常,但当我单击按钮删除多段线时,控制台抛出以下错误: 未捕获的TypeError:无法读取未定义的属性“se
<button type="button" class="btn btn-danger" id="clear_button" onclick="removeLine()">Borrar ruta</button>
一切正常,但当我单击按钮删除多段线时,控制台抛出以下错误:
未捕获的TypeError:无法读取未定义的属性“setMap”
在removeLine device.php:101
在HTMLButtonElement.onclick device.php:196
尽管我在全局范围内声明了flightPath变量。非常感谢您的帮助。在success函数中,您声明了一个同名的局部变量,JS将在分配变量时使用它找到的最接近的变量。要解决这个问题,只需删除var
非常感谢乔治。这就是问题所在。我想不出我怎么看不见它。
var map;
var flightPath;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 17,
center: {lat: 37.176709, lng: -3.599057},
mapTypeId: 'terrain'
});
google.maps.event.addDomListener(document.getElementById('route_button'), 'click', function() {
var date_data = document.getElementById('datepicker').value;
console.log(date_data);
$.ajax({
url:"data_fetcher.php",
type:"POST",
data: {date_value:date_data},
dataType: 'json',
success: function(respond){
var flightPlanCoordinates = respond;
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
console.log("AJAX level request was successful");
},
error: function(){
console.log("AJAX level request was a failure");
}
});
});
}
// Eliminar polilinea
function removeLine() {
flightPath.setMap(null);
}
success: function (respond) {
var flightPlanCoordinates = respond;
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
console.log("AJAX level request was successful");
},