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+''; };