/* var map = new GMap2(document.getElementById("map")); var start = new GLatLng(60.213,24.88); map.setCenter(start, 14); map.addControl(new GMapTypeControl(1)); map.addControl(new GLargeMapControl()); map.addControl(new GScaleControl(250)); new GKeyboardHandler(map); map.enableContinuousZoom(); */ var baseIcon = new GIcon(); baseIcon.iconSize = new GSize(32,32); baseIcon.iconAnchor = new GPoint(16,32); baseIcon.infoWindowAnchor = new GPoint(10,0); var startIcon = (new GIcon(baseIcon, "/images/start.png", null, "")); var stopIcon = (new GIcon(baseIcon, "/images/stop.png", null, "")); /////////////////////// Ruler code by Esa 2006 // some cleaning 2008 function add() { var marker1; var marker2; var label1; var label2; var button=0; var dist=0; var bearing=0; var line; var poly; changeById('toolStatusOverlayMessage', 'RULER: Click map to start'); function measure() { var units = document.getElementById("openaprs_form_units"); var lat1; var lon1; var lat2; var lon2; if(marker1 && marker2) { line = [marker1.getPoint(),marker2.getPoint()]; lat1 = marker1.getPoint().lat(); lon1 = marker1.getPoint().lng(); lat2 = marker2.getPoint().lat(); lon2 = marker2.getPoint().lng(); bearing = Math.round(LatLon.bearing(lat1, lon1, lat2, lon2)); } // if d = marker1.getPoint().distanceFrom(marker2.getPoint()); dist = d.toFixed(0)+"m"; if(parseInt(dist)>10000) dist = (parseInt(dist)/1000).toFixed(1)+"km"; if (units != null) { if (units.value == 'imperial') { d = d * 3.2808399; if (d > 5280) dist = (d/5280).toFixed(1)+"mi"; else dist = d.toFixed(0)+"ft"; } // if else if (units.value == 'nautical') { d = d * 3.2808399; if (d > 6076.11549) dist = (d/6076.11549).toFixed(1)+"knots"; else dist = d.toFixed(0)+"ft"; } // if } // if label1.setContents(dist+' '+bearing+'°'); label2.setContents(dist); label1.setPoint(marker1.getPoint()); label2.setPoint(marker2.getPoint()); if (poly) map.removeOverlay(poly); poly = new GPolyline(line,'#FFFF00', 8, 1) map.addOverlay(poly); } // measure GEvent.addListener(map, 'click', function(overlay, pnt) { if(pnt && button==0) { marker1 = new GMarker(pnt,{icon:startIcon,draggable: true}); map.addOverlay(marker1); marker1.enableDragging(); label1=new ELabel(pnt, dist,"rulerLabel",new GSize(8,25), 60); map.addOverlay(label1); marker2 = new GMarker(pnt,{icon:stopIcon, draggable: true}); map.addOverlay(marker2); marker2.enableDragging(); label2=new ELabel(pnt, dist,"rulerLabel",new GSize(8,25), 60); map.addOverlay(label2); } // if GEvent.addListener(marker1, "drag", function() { measure(); }); GEvent.addListener(marker1, "dblclick", function() { clr(); }); GEvent.addListener(marker2, "drag", function() { measure(); }); GEvent.addListener(marker2, "dblclick", function() { clr(); }); changeById('toolStatusOverlayMessage', 'RULER: Click and drag icon to end point, double click to remove'); button++; }); function clr(){ map.removeOverlay(poly); map.removeOverlay(marker1); map.removeOverlay(marker2); map.removeOverlay(label1); map.removeOverlay(label2); button=0; changeById('toolStatusOverlayMessage', 'RULER: Click map to start'); dist=0; } }