var localSearch = new GlocalSearch(); function usePointFromPostcode(postcode, callbackFunction) { localSearch.setSearchCompleteCallback(null, function() { if (localSearch.results[0]) { var resultLat = localSearch.results[0].lat; var resultLng = localSearch.results[0].lng; var point = new GLatLng(resultLat,resultLng); callbackFunction(point); }else{ alert("Postcode not found!"); } }); localSearch.execute(postcode + ", UK"); } function show_props(obj, obj_name) { var result = ""; for (var i in obj) result += obj_name + "." + i + " = " + obj[i] + "\n"; return result; } function setCenterToPoint(point) { var m = Drupal.gmap.getMap('gmap-view_gmap-gmap0'); m.map.setCenter(point, 17); } //$(document).ready(function() { function setuplistener() { if (GBrowserIsCompatible()) { var m = Drupal.gmap.getMap('gmap-view_gmap-gmap0'); var point = new GLatLng(55.949920701399755,-3.18878173828125); m.map.addOverlay(GPolyline.Circle(point,5000)); GEvent.addListener(m.map, "moveend", function() { var m = Drupal.gmap.getMap('gmap-view_gmap-gmap0'); var center = m.map.getCenter(); var swbound = new GLatLng(55.87184383395779,-3.33160400390625) var nebound = new GLatLng(55.97687190359469,-3.0287933349609375); var bounds = new GLatLngBounds(swbound,nebound); if (!bounds.containsLatLng(center)) { var bottom = bounds.getSouthWest().lat(); var left = bounds.getSouthWest().lng(); var top = bounds.getNorthEast().lat(); var right = bounds.getNorthEast().lng(); var currentlat = center.lat(); var currentlng = center.lng(); var newLat = currentlat > top ? top : (currentlat < bottom ? bottom : currentlat); var newLng = currentlng > right ? right : (currentlng < left ? left : currentlng); m.map.panTo(new GLatLng(newLat, newLng)); } }); } } //}); function keepinbounds() { var m = Drupal.gmap.getMap('gmap-view_gmap-gmap0'); var center = m.map.getCenter(); var swbound = new GLatLng(55.87184383395779,-3.33160400390625) var nebound = new GLatLng(55.97687190359469,-3.0287933349609375); var bounds = new GLatLngBounds(swbound,nebound); if (!bounds.containsLatLng(center)) { var bottom = bounds.getSouthWest().lat(); var left = bounds.getSouthWest().lng(); var top = bounds.getNorthEast().lat(); var right = bounds.getNorthEast().lng(); var currentlat = center.lat(); var currentlng = center.lng(); var newLat = currentlat > top ? top : (currentlat < bottom ? bottom : currentlat); var newLng = currentlng > right ? right : (currentlng < left ? left : currentlng); m.map.panTo(new GLatLng(newLat, newLng)); } } function checkBoundaries(point) { var m = Drupal.gmap.getMap('gmap-view_gmap-gmap0'); m.map.setCenter(new GLatLng(35.689527, 139.691827), 13); } if (typeof GPolyline != 'undefined') { GPolyline.Shape = function(point,r1,r2,r3,r4,rotation,vertexCount, colour,weight,opacity,opts,tilt) { var rot = -rotation*Math.PI/180; var points = []; var latConv = point.distanceFrom(new GLatLng(point.lat()+0.1,point.lng()))*10; var lngConv = point.distanceFrom(new GLatLng(point.lat(),point.lng()+0.1))*10; var step = (360/vertexCount)||10; var flop = -1; if (tilt) { var I1=180/vertexCount; } else { var I1=0; } for(var i=I1; i<=360.001+I1; i+=step) { var r1a = flop?r1:r3; var r2a = flop?r2:r4; flop = -1-flop; var y = r1a * Math.cos(i * Math.PI/180); var x = r2a * Math.sin(i * Math.PI/180); var lng = (x*Math.cos(rot)-y*Math.sin(rot))/lngConv; var lat = (y*Math.cos(rot)+x*Math.sin(rot))/latConv; points.push(new GLatLng(point.lat()+lat,point.lng()+lng)); } return (new GPolyline(points,colour,weight,opacity,opts)); } GPolyline.Circle = function(point,radius,colour,weight,opacity,opts) { return GPolyline.Shape(point,radius,radius,radius,radius,0,100,colour,weight,opacity,opts) } } if (typeof GPolygon != 'undefined') { GPolygon.Shape = function(point,r1,r2,r3,r4,rotation,vertexCount, strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts,tilt) { var rot = -rotation*Math.PI/180; var points = []; var latConv = point.distanceFrom(new GLatLng(point.lat()+0.1,point.lng()))*10; var lngConv = point.distanceFrom(new GLatLng(point.lat(),point.lng()+0.1))*10; var step = (360/vertexCount)||10; var flop = -1; if (tilt) { var I1=180/vertexCount; } else { var I1=0; } for(var i=I1; i<=360.001+I1; i+=step) { var r1a = flop?r1:r3; var r2a = flop?r2:r4; flop = -1-flop; var y = r1a * Math.cos(i * Math.PI/180); var x = r2a * Math.sin(i * Math.PI/180); var lng = (x*Math.cos(rot)-y*Math.sin(rot))/lngConv; var lat = (y*Math.cos(rot)+x*Math.sin(rot))/latConv; points.push(new GLatLng(point.lat()+lat,point.lng()+lng)); } return (new GPolygon(points,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts)); } GPolygon.Circle = function(point,radius,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts) { return GPolygon.Shape(point,radius,radius,radius,radius,0,100,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts) } } function EOffset(point,easting,northing) { var latConv = point.distanceFrom(new GLatLng(point.lat()+0.1,point.lng()))*10; var lngConv = point.distanceFrom(new GLatLng(point.lat(),point.lng()+0.1))*10; return new GLatLng(point.lat()+northing/latConv,point.lng()+easting/lngConv) } function EOffsetBearing(point,dist,bearing) { var latConv = point.distanceFrom(new GLatLng(point.lat()+0.1,point.lng()))*10; var lngConv = point.distanceFrom(new GLatLng(point.lat(),point.lng()+0.1))*10; var lat=dist * Math.cos(bearing * Math.PI/180)/latConv; var lng=dist * Math.sin(bearing * Math.PI/180)/lngConv; return new GLatLng(point.lat()+lat,point.lng()+lng) }