API v3
マーカーに奇妙な問題があります:
マップ上に配置したマーカーはドラッグ可能に設定されており、WebInspector はドラッグ可能であるとレポートしますが、まだドラッグできません。マーカーの上に移動してもカーソルが変化しません。
基になるマップはドラッグ可能であり、それは機能します。
別のページでは、設定が異なります (レイヤーが少ない) が、JavaScript は同じですが、期待どおりに動作します (そこでドラッグできます)。
また、マーカーをクリック可能にし、それにイベントをバインドしましたが、うまくいきました。マウスオーバーでもカーソルが変化します。
オプションが不足しています.... ドラッグできないのはなぜですか? これは、zIndex またはレイヤーの配置と関係がありますか? 私が見る限り、マップは他のすべてのレイヤーよりも高い zIndex を持っています....
// マップを表示
geocoder.geocode( { 'address':address }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// map options
var mapOptions = {
zoom: 14,
center: results[0].geometry.location,
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false
};
// render map
map = new google.maps.Map(J('#'+mapElementId)[0], mapOptions);
// set marker
marker = new google.maps.Marker({
clickable: true,
draggable: true,
icon: markerImage,
shadow: markerShadow,
shape: markerShape,
map: map,
position: results[0].geometry.location
});
google.maps.event.addListener(marker, 'click', function () { alert('marker clicked'); });
google.maps.event.addListener(marker, 'dragend', function () {
alert('marker dragged')
map.setCenter(marker.getPosition());
J('input[name=coordinates]').val(marker.getPosition());
J('input[name=address]').val('');
});
J('input[name=address]').val(results[0].formatted_address);
}
});