Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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
Javascript 整合谷歌地图的搜索表单_Javascript_Html_Google Maps - Fatal编程技术网

Javascript 整合谷歌地图的搜索表单

Javascript 整合谷歌地图的搜索表单,javascript,html,google-maps,Javascript,Html,Google Maps,我正在使用GoogleMapsJavaScriptV3API构建一个搜索表单。执行搜索后,下面的代码成功地传递了地理坐标,但地图没有更新。我尝试将codeAddress函数移到initialize()中,但搜索按钮不起作用。如何正确地集成这两者 HTML: JavaScript: var地理编码器; 函数初始化(){ geocoder=新的google.maps.geocoder(); 变量映射选项={ 中心:{lat:48.509532,lng:-122.643852} }; var ma

我正在使用GoogleMapsJavaScriptV3API构建一个搜索表单。执行搜索后,下面的代码成功地传递了地理坐标,但地图没有更新。我尝试将codeAddress函数移到initialize()中,但搜索按钮不起作用。如何正确地集成这两者

HTML:

JavaScript:
var地理编码器;
函数初始化(){
geocoder=新的google.maps.geocoder();
变量映射选项={
中心:{lat:48.509532,lng:-122.643852}
};
var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
var位置=;
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i
您的主要问题是map变量是initialize函数的本地变量,因此它在运行HTML click函数的全局范围内不可用

一种解决方案:

var geocoder;
var map;

function initialize() {
    geocoder = new google.maps.Geocoder();
    var mapOptions = {
        center: {
            lat: 48.509532,
            lng: -122.643852
        },
        zoom: 4
    };

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

另一种解决方案:

var geocoder;
var map;

function initialize() {
    geocoder = new google.maps.Geocoder();
    var mapOptions = {
        center: {
            lat: 48.509532,
            lng: -122.643852
        },
        zoom: 4
    };

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
在initialize函数中定义codeAddress并使用google.maps.event.addDomListener函数:

google.maps.event.addDomListener(document.getElementsByClassName('search_button')[0],'click',codeAddress);

谢谢!这就解决了问题。
google.maps.event.addDomListener(document.getElementsByClassName('search_button')[0],'click',codeAddress);