var routeMarkers = new Array(0);
var distanceWidget;
var fixY, minX, fixX;
var stmMessage = '';
function msg(str) {
var obj = document.getElementById('divDocumentMessage');
if(typeof str == 'object') {
var o = str;
str = '';
for(var k in o) str += k+':'+o[k]+"\n";
}
obj.innerHTML = "
"+str+"";
obj.style.display = 'block';
clearTimeout(stmMessage);
stmMessage = setTimeout(function() {
var obj = document.getElementById('divDocumentMessage');
obj.style.display = 'hidden';
}, 1000);
}
function DistanceWidget(center) {
this.set('map', map);
this.set('position', center);
var radiusWidget;
radiusWidget = new RadiusWidget(center)
radiusWidget.bindTo('map', this);
radiusWidget.bindTo('center', this, 'position');
// Marker 등록
//var marker = new google.maps.Marker({
// draggable: false,
//});
//routeMarkers.push(marker);
//marker.bindTo('map', this);
//marker.bindTo('position', this);
}
var objCircle, objSizer, oLabel, objLine;
DistanceWidget.prototype = new google.maps.MVCObject();
function RadiusWidget(center) {
var zoomLevel = map.getZoom();
var zoomSize = [1, 8000, 4000,2000,1000,500,200,120,60,30,10,4,2,1,0.6,0.4,0.2,0.1,0.04,0.02,0.010];
var radius = zoomSize[zoomLevel];
if(!objCircle) {
// Circle 생성
objCircle = new google.maps.Circle({
center : center,
map : map,
radius : radius,
strokeColor : '#ffffff',
strokeWeight : 1,
strokeOpacity: 1,
fillColor : '#aaaaff',
clickable : false,
fillOpacity : 0.4
});
// Line 생성(반경)
objLine = new google.maps.Polyline({
path: [center,center],
geodesic: false,
strokeColor: '#ffffff',
strokeOpacity: 1.0,
strokeWeight: 1,
map : map
});
// Sizer 생성
if(!objSizer) {
objSizer = new google.maps.Marker({
draggable: true,
title: 'Drag me!',
raiseOnDrag : false,
icon: new google.maps.MarkerImage(
//'http://www.freemaptools.com/images/markers/resize.png'
'/images/ico/sizer.png'
,new google.maps.Size(22, 9)
,new google.maps.Point(0,0)
,new google.maps.Point(22,5)
)
});
objSizer.bindTo('map', this);
objSizer.bindTo('position', this, 'sizer_position');
oLabel = new Label({map: map});
oLabel.bindTo('position', objSizer);
}
}
this.set('distance', radius);
this.setDistance();
this.bindTo('bounds', objCircle);
// Circle
objCircle.bindTo('center', this);
objCircle.bindTo('map', this);
objCircle.bindTo('radius', this);
// Sizer
objSizer.bindTo('position', this, 'sizer_position');
var me = this;
fixY = center.lat();
minX = center.lng();
maxX = maxF = null;
google.maps.event.addListener(objSizer, 'drag', function() {
var fixX = objSizer.getPosition().lng();
if(!maxF && me.get('distance') > 5000) {
maxX = fixX;
maxF = true;
}
if(maxF && maxX1000) {
dist = Math.ceil(dist/10);
dist = dist/100;
marker = 'km';
}
this.span_.innerHTML = ''+(dist ? dist : '0')+marker+'';
};