Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 谷歌地图API v3,全局变量_Google Maps_Global Variables - Fatal编程技术网

Google maps 谷歌地图API v3,全局变量

Google maps 谷歌地图API v3,全局变量,google-maps,global-variables,Google Maps,Global Variables,说到javascript,我几乎是个傻瓜,但我想在我的网站上放一张我所在位置的谷歌地图,并提供一个简单的表单,让访问者可以输入地址并显示方向。我已经让它正常工作了,但是有人提到脚本创建的全局变量太多了。全球情况如下: calcRoute,方向显示,方向服务,谷歌,初始化,地图 如果我尝试将这些全局变量中的任何一个设置为本地,则会破坏脚本,并且地图不会显示。以下是我写的js: var initialize = function strict() { directionsDisplay =

说到javascript,我几乎是个傻瓜,但我想在我的网站上放一张我所在位置的谷歌地图,并提供一个简单的表单,让访问者可以输入地址并显示方向。我已经让它正常工作了,但是有人提到脚本创建的全局变量太多了。全球情况如下:

calcRoute
方向显示
方向服务
谷歌
初始化
地图

如果我尝试将这些全局变量中的任何一个设置为本地,则会破坏脚本,并且地图不会显示。以下是我写的js:

var initialize = function strict() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    mapCenter = new google.maps.LatLng(53.503716, -1.12975);
    mapOptions = {
        zoom: 14,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: mapCenter
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("directionsPanel"));
    locationPin = "images/location_pin.png";
    newMarker = new google.maps.Marker({ position: mapCenter,map: map,icon: locationPin});
    };

var calcRoute = function strict() {
    routeStart = document.getElementById("start").value;
    calculatedRoute = {origin: routeStart, destination: mapCenter, travelMode: google.maps.TravelMode.DRIVING};
    directionsService.route(calculatedRoute, function (routeStart, mapCenter) {
    directionsDisplay.setDirections(routeStart);
    calculatedRoute = routeStart.routes[0].legs[0];
    });
};
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
就我所见,我提到的globals是googlemapsapi所必需的,它们必须是globals。如果您对此有任何建议,我们将不胜感激。

您的代码还可以

但是,如果不希望此变量是全局变量,请在函数中插入代码,如:

(function () { 
    //your code 
}());

使用此选项,变量将位于某个范围内,但在您的情况下,这并没有什么区别…

向我们显示确切的错误:数据这里没有错误,脚本执行它应该执行的操作。我向另一个社区展示了这段代码,他们说有太多的全局变量。我通过JSLint运行代码,它显示了我列出的变量。我想问的是这是否是一个问题,代码是否可以写得更好?从这个问题我真的不知道你需要什么。你们能再解释一下吗?我真的不知道问题是否是太多的全局变量。你可以把它重写到课堂上。。。但如果脚本也能正常工作,我看不出有什么问题。非常感谢。我还在学习Javascript,所以当一些人说代码不好,因为它生成了太多全局变量时,我很担心。