0

我试图使用一个简单的下拉/选择列表作为标记的控制器(想法是,地图会显示选定的位置/标记)。 DomListener可以处理onchange事件,但由于某种原因,标记不显示。我是否需要使用另一个事件侦听器,或者以其他方式创建标记?谷歌地图标记形式选择列表(使用:event.addDomListener和AP​​I V3)

var map = null; 

function initialize() { 
var myOptions = { 
     zoom: 5 ... etc }; 
var map = new google.maps.Map(document.getElementById('map_canvas'), 
     myOptions); 
... 

google.maps.event.addDomListener(document.getElementById('SelectList'), 
      'change', function() { 

var mypos = document.getElementById('SelectList').value; 




alert(mypos); /* output/value is correct */ 


/* This code doesn’t display marker */ 
var marker = new google.maps.Marker({ 
     position: mypos, 
     map: map, 
     title:"Hello World!" 
    }); 



    }); 

... 
} 
------------------------ 
My HTML select-list: 
<select id="SelectList"> 
<option value="12.123456, 12.987654">location 1</option> 
<option value="11.123456, 12.987654">Location 2</option> 
</select> 
+0

你在哪里初始化“地图”变量?你有任何的JavaScript错误? – geocodezip 2012-07-12 11:27:12

回答

3

您正在用位置的逗号分隔字符串创建标记。它需要是一个LatLng对象。试试这样的:

var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(mypos.split(',')[0], mypos.split(',')[1]), 
    map: map, 
    title:"Hello World!" 
});