我想要创建的是“点击”事件,用户可以在地图上放置标记,旁边如果用户想要更改标记位置,用户可以将标记拖动到他们想要的位置。但是,拖尾和戏剧不是诀窍,我无法弄明白为什么......
和“未捕获的TypeError:无法读取属性'_ e3 '未定义”错误在我的错误日志中,我已经尝试了几种方法来解决它但仍然无法设法...那么伙计们怎么解决它?感谢您的帮助
<script type="text/javascript">
var map;
var geocoder;
var marker;
var mapOptions
function initialize() {
mapOptions = {
center: new google.maps.LatLng(3.1597,101.7000),
zoom: 12,
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position: google.maps.ControlPosition.TOP_LEFT
},
};
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
geocoder = new google.maps.Geocoder();
google.maps.event.addListenerOnce(map, 'click', function(event) {
placeMarker(event.latLng);
});
function placeMarker(location) {
marker = new google.maps.Marker({
position: location,
map: map,
draggable:true
});
}
google.maps.event.addListener(marker, 'dragstart', function(evt){
document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
});
google.maps.event.addListener(marker, 'dragend', function(evt){
document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
});
}
google.maps.event.addDomListener(window, "load", initialize);
</script>
为了确认dragend和dragstart事件是否有效我在我的html中添加了一个ID以显示最新的lat和lng
<div id="current">Nothing yet...</div>
答案 0 :(得分:0)
您应将addListener
的两个调用移至placeMarker
,否则marker
在执行时未定义。