Ignore:
Timestamp:
Apr 16, 2010, 12:52:27 AM (15 years ago)
Author:
ddboer
Message:

overlay.js has an drawCircle function.
nodeMap:
-Circle drawn on mouseover with a node
-Circle removed on mouseout
-Latitude and Longtitude from node is not being read or drawn correctly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/map/inc/overlay.js

    r7759 r7778  
    1 var map;
    2 var marker;
    3 var lat;
    4 var lon;
    5 var latOffset;
    6 var lonOffset;
    7 var polygon;
    8 var pos;
    9 var point;
    10 var range = 500;
     1function drawCircle(lat, lng, radius, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity) {   
     2   
     3    var d2r = Math.PI/180;
     4    var r2d = 180/Math.PI;
     5    var Clat = radius * 0.0089437672;  // Convert statute kilometers into degrees latitude
     6    var Clng = Clat/Math.cos(lat*d2r);
     7    var Cpoints = [];
     8    for (var i=0; i < 33; i++) {
     9      var theta = Math.PI * (i/16);
     10      Cy = lat + (Clat * Math.sin(theta));
     11      Cx = lng + (Clng * Math.cos(theta));
     12      var P = new GLatLng(Cy, Cx);
     13      Cpoints.push(P);
     14    }
    1115
    12         function nodeAdd() {
    13           if (GBrowserIsCompatible()) {
    14         map = new GMap2(document.getElementById("mapcanvas"));
    15         map.setCenter(new GLatLng(52.162687, 4.493294), 14);
    16         map.setUIToDefault();
    17 
    18                 marker = new GMarker(new GLatLng(52.165700, 4.483499));
    19                 GEvent.addListener(marker, "click", function () {
    20                         marker.openInfoWindowHtml("Test, Test, You suck! Eindelijk, het werkt!!!!");
    21                         });
    22 
    23           //Added mouseover listener that calls on our mouseOver function when the mouse moves over a marker on the map
    24         GEvent.addListener(marker, "mouseover", function() {
    25           map.addOverlay(cirkel);;
    26         });
    27                
    28                 //mouseout listener that removes the cirkel once the user moves his mouse off the designated marker
    29                         GEvent.addListener(marker, "mouseout", function() {
    30           map.removeOverlay(cirkel);
    31         });
    32                
    33                 //adds a cirkel when the user clicks on the marker
    34                                         GEvent.addListener(marker, "click", function() {
    35           map.addOverlay(cirkel1);
    36         });
    37        
    38 
    39       GPolygon.Shape = function(point,r1,r2,r3,r4,rotation,vertexCount,  strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts,tilt) {
    40         var rot = -rotation*Math.PI/180;
    41         var points = [];
    42         var latConv = point.distanceFrom(new GLatLng(point.lat()+0.1,point.lng()))*10;
    43         var lngConv = point.distanceFrom(new GLatLng(point.lat(),point.lng()+0.1))*10;
    44         var step = (360/vertexCount)||10;
    45        
    46         var flop = -1;
    47         if (tilt) {
    48           var I1=180/vertexCount;
    49         } else {
    50           var  I1=0;
    51         }
    52         for(var i=I1; i<=360.001+I1; i+=step) {
    53           var r1a = flop?r1:r3;
    54           var r2a = flop?r2:r4;
    55           flop = -1-flop;
    56           var y = r1a * Math.cos(i * Math.PI/180);
    57           var x = r2a * Math.sin(i * Math.PI/180);
    58           var lng = (x*Math.cos(rot)-y*Math.sin(rot))/lngConv;
    59           var lat = (y*Math.cos(rot)+x*Math.sin(rot))/latConv;
    60 
    61           points.push(new GLatLng(point.lat()+lat,point.lng()+lng));
    62         }
    63         return (new GPolygon(points,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts))
    64       }
    65 
    66       GPolygon.Circle = function(point,radius,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts) {
    67         return GPolygon.Shape(point,radius,radius,radius,radius,0,100,strokeColour,strokeWeight,Strokepacity,fillColour,fillOpacity,opts)
    68       }
    69          
    70           //   http://econym.org.uk/gmap/eshapes.htm voorbeeld.
    71           // de locatie van de cirkel
    72          
    73 
    74                         // locatie, doorsnee (in meters), kleur omtrek, dikte omtrek, ??, kleur opvulling, doorzichtigheid.
    75                         map.addOverlay(marker);
    76                 cirkel = new GPolygon.Circle(marker.getLatLng(),range,"#000000",0,1,"#00ff00",0.5)
    77                 cirkel1 = new GPolygon.Circle(marker.getLatLng(),range,"#000000",0,1,"#00ff00",0.5)
    78                
    79           }
    80         }
    81        
    82        
    83        
    84        
    85        
    86        
    87        
    88        
     16    polygon = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
     17    map.addOverlay(polygon);
     18   }
Note: See TracChangeset for help on using the changeset viewer.