円が描かれた Google マップがあり、半径を変更するとすぐに、新しいパラメータを含むフォームを送信します。
editable:true
これはand radius_changed
-eventで非常にうまく機能します
サイズ変更の移動が完了すると、radius_changed イベントが発生するためです。
center_changed-event で同じことをしたいのですが、これは円を「ドロップ」しても起動しません。中心が変わるたびに起動します。
ドキュメントで円のドラッグイベントが見つかりません。
問題は、円をピクセルに移動するとすぐにフォームがすぐに送信されることです。
ここに私のgmap3コードスニペットがあります
circle:{
options:{
center: destination,
radius : distance,
fillColor : "white",
fillOpacity:0.3,
strokeColor : "#c9311b",
editable:true,
draggable:true
},
events:{
click: function(circle){
circle.setOptions({
fillColor : "white",
fillOpacity:0.1,
strokeColor : "#FF512F"
});
},
radius_changed: function(circle){
var radius =circle.getRadius() ;
var newradius = parseInt(radius) / 1000;
alert(parseInt(newradius,10));
$('#seldistance').val(parseInt(newradius,10));
$('.sucheen').submit();
},
center_changed: function(circle){ //
var center = circle.getCenter(); // Here´s the center change event,
console.log(center); //it really spams the console when you drag
} //
},
callback: function(circle){
if(distance != '0'){
if ( distance < '1000'){
$(this).gmap3('get').setZoom(15);
console.log('radius ='+distance);
}
else if ( distance < '5000'){
$(this).gmap3('get').setZoom(13);
console.log('radius ='+distance);
}
else if ( distance < '10000'){
$(this).gmap3('get').setZoom(12);
console.log('radius ='+distance);
}
else if ( distance < '20000'){
$(this).gmap3('get').setZoom(11);
console.log('radius ='+distance);
}
else if ( distance < '35000'){
$(this).gmap3('get').setZoom(10);
console.log('radius ='+distance);
}
else{
$(this).gmap3('get').setZoom(10);
}
}
else {
//Clear circle if no radius is set
$(this).gmap3({
clear: {
name:["circle"],
last: true
}
});
$(this).gmap3('get').setZoom(12);
}
}
},//close circle
dragend イベントをトリガーする方法を知っている人はいますか ?=
わかりました、必要な関数には editable:true が付属していることに気付きましたが、小さな中心点を使用してドラッグする場合にのみ、円全体をどこにでもドラッグしたいと思います。