google maps - newbie javascript scope problem -
i know bit scope is, new javascript , have hit full stop in code. here code use.
function initialize() { var mapoptions = { center: new google.maps.latlng(37.775057,-122.419624), zoom: 8, maptypeid: google.maps.maptypeid.roadmap }; var map = new google.maps.map(document.getelementbyid("map-canvas"), mapoptions); } google.maps.event.adddomlistener(window, 'load', initialize); function clicked(id) { $.ajax({ type: "get", url: 'response.php', data: {id: id}, success: function (lats) { var obj = $.parsejson(lats); var line = []; (var = obj.length - 1; >= 0; i--) { line.push(new google.maps.latlng(obj[i].latitude, obj[i].longitude)); }; var polypath = new google.maps.polyline({ path: line, strokecolor: "#ff0000", strokeopacity: 1.0, strokeweight: 2 }); polypath.setmap(map); console.log(polypath); } }); return false; } needless google maps. problem due scope, javascript cant access map variable required draw polylines. highly appreciated!
because map declared inside function initialize, clicked can't access need declare outside initialize like
var map = null; function initialize() { var mapoptions = { center: new google.maps.latlng(37.775057,-122.419624), zoom: 8, maptypeid: google.maps.maptypeid.roadmap }; map = new google.maps.map(document.getelementbyid("map-canvas"), mapoptions); } google.maps.event.adddomlistener(window, 'load', initialize); function clicked(id) { $.ajax({ type: "get", url: 'response.php', data: {id: id}, success: function (lats) { var obj = $.parsejson(lats); var line = []; (var = obj.length - 1; >= 0; i--) { line.push(new google.maps.latlng(obj[i].latitude, obj[i].longitude)); }; var polypath = new google.maps.polyline({ path: line, strokecolor: "#ff0000", strokeopacity: 1.0, strokeweight: 2 }); polypath.setmap(map); console.log(polypath); } }); return false; } now clicked can access because it's outside initialize scope
Comments
Post a Comment