Javascript 整合谷歌地图的搜索表单
我正在使用GoogleMapsJavaScriptV3API构建一个搜索表单。执行搜索后,下面的代码成功地传递了地理坐标,但地图没有更新。我尝试将codeAddress函数移到initialize()中,但搜索按钮不起作用。如何正确地集成这两者 HTML: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
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);