Changeset 142


Ignore:
Timestamp:
Oct 23, 2006, 6:27:26 PM (13 years ago)
Author:
David Sheldon
Message:

Tidy up Javascript.

Location:
trunk/npemap.org.uk/static/tiles
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/npemap.org.uk/static/tiles/map.html

    r133 r142  
    44        <link rel="stylesheet" type="text/css" href="grid.css">
    55    </head>
    6 <body onload="initializePage(); go();doResize(); "  onResize="doResize() ">
     6<body onload="initializePage(); "  onResize="doResize() ">
    77<!-- Yahoo functions -->
    88<script src="yahoo.js"></script>
  • trunk/npemap.org.uk/static/tiles/mapTiles.js

    r141 r142  
    3535var prefix;
    3636
     37var screenWidth = YAHOO.util.Dom.getViewportWidth();
     38var screenHeight = YAHOO.util.Dom.getViewportHeight();
     39var bottomLeft = new Array();
    3740
    3841
     
    5861}
    5962
    60 function go() {
    61 
    62   YAHOO.util.Event.addListener('postcode1', 'keypress', box1Keypress );
    63   fixZoomButton();
    64  
    65 
    66                 mapElement.onclick = function(e) {
    67                         e = YAHOO.util.Event.getEvent(e);
    68                         var img = YAHOO.util.Event.getTarget(e);
    69                         var x = YAHOO.util.Event.getPageX(e);
    70                         var y = YAHOO.util.Event.getPageY(e);
    71                         var imgPos = YAHOO.util.Dom.getXY(img);
    72                         var tileX = x - imgPos[0];
    73                         var tileY = y - imgPos[1];
    74                         // Tiles are eee/nnn.jpg
    75                         var tile = img.src.substring( img.src.lastIndexOf("/") - 3 );
    76                         var baseEasting = tile.substring(0, tile.indexOf("/"))-0;
    77                         var baseNorthing = tile.substring(tile.indexOf("/") + 1, tile.indexOf("."))-0;
    78                         var tileXratio =  tileX/img.offsetWidth;
    79                         var tileYratio = 1 -(tileY/img.offsetHeight);
    80                         if (zoomLevel != 1) {
    81                                 // Zoom in.
    82 
    83                                 offsetGridX = Math.round((baseEasting -0 + tileXratio) * jumpIn[zoomLevel]);
    84                                 offsetGridY = Math.round((baseNorthing -0 + tileYratio) * jumpIn[zoomLevel]);
    85 
    86                                 zoomLevel = zoomLevel - 1;
    87                                 prefix = prefixes[zoomLevel];
    88         fixZoomButton();
    89                                 refreshGrid();
    90                         } else {
    91                        
    92                                 var easting = trimSixDigits(Math.round((baseEasting  + tileXratio)*1000));
    93                                 var northing = trimSixDigits(Math.round((baseNorthing +tileYratio)*1000));
    94 
    95                                 YAHOO.util.Dom.setXY(markerElement, [(x-4), (y-11)]);
    96                                 markerElement.style.visibility = 'visible';
    97                                
    98                                 postcodeFormElement.style.display = 'block';
    99                                 YAHOO.util.Dom.setXY(postcodeFormElement, [Math.max(0, (x-50)), (y-180) < 0 ? (y+10):(y-180)]);
    100                                 locationElement.innerHTML = easting + ', ' + northing ;
    101                                 document.getElementById('easting').value = easting;
    102                                 document.getElementById('northing').value = northing;
    103                                 document.getElementById('returnX').value = offsetGridX;
    104                                 document.getElementById('returnY').value = offsetGridY;
    105 
    106                                 document.getElementById('postcode1').value = "";
    107                                 document.getElementById('postcode2').value = "";
    108                                 document.getElementById('postcode1').focus();
    109                         }
    110                 }
    111         }
    112        
    113         function closePostcodeWindow() {
    114                 postcodeFormElement.style.display = 'none';
    115         }
    116 
    117        
    118 
     63
     64YAHOO.util.Event.addListener('postcode1', 'keypress', box1Keypress );
     65
     66
     67function mapClick(e) {
     68    e = YAHOO.util.Event.getEvent(e);
     69    var img = YAHOO.util.Event.getTarget(e);
     70    var x = YAHOO.util.Event.getPageX(e);
     71    var y = YAHOO.util.Event.getPageY(e);
     72    var imgPos = YAHOO.util.Dom.getXY(img);
     73    var tileX = x - imgPos[0];
     74    var tileY = y - imgPos[1];
     75    // Tiles are eee/nnn.jpg
     76    var tile = img.src.substring( img.src.lastIndexOf("/") - 3 );
     77    var baseEasting = tile.substring(0, tile.indexOf("/"))-0;
     78    var baseNorthing = tile.substring(tile.indexOf("/") + 1, tile.indexOf("."))-0;
     79    var tileXratio =  tileX/img.offsetWidth;
     80    var tileYratio = 1 -(tileY/img.offsetHeight);
     81    if (zoomLevel != 1) {
     82      // Zoom in.
     83
     84      offsetGridX = Math.round((baseEasting -0 + tileXratio) * jumpIn[zoomLevel]);
     85      offsetGridY = Math.round((baseNorthing -0 + tileYratio) * jumpIn[zoomLevel]);
     86
     87      zoomLevel = zoomLevel - 1;
     88      prefix = prefixes[zoomLevel];
     89      fixZoomButton();
     90      refreshGrid();
     91    } else {
     92   
     93      var easting = trimSixDigits(Math.round((baseEasting  + tileXratio)*1000));
     94      var northing = trimSixDigits(Math.round((baseNorthing +tileYratio)*1000));
     95
     96      YAHOO.util.Dom.setXY(markerElement, [(x-4), (y-11)]);
     97      markerElement.style.visibility = 'visible';
     98     
     99      postcodeFormElement.style.display = 'block';
     100      YAHOO.util.Dom.setXY(postcodeFormElement, [Math.max(0, (x-50)), (y-180) < 0 ? (y+10):(y-180)]);
     101      locationElement.innerHTML = easting + ', ' + northing ;
     102      document.getElementById('easting').value = easting;
     103      document.getElementById('northing').value = northing;
     104      document.getElementById('returnX').value = offsetGridX;
     105      document.getElementById('returnY').value = offsetGridY;
     106
     107      document.getElementById('postcode1').value = "";
     108      document.getElementById('postcode2').value = "";
     109      document.getElementById('postcode1').focus();
     110    }
     111  }
     112
     113YAHOO.util.Event.addListener('map', 'click', mapClick);
     114
     115
     116function closePostcodeWindow() {
     117  postcodeFormElement.style.display = 'none';
     118  markerElement.style.display = 'none';
     119}
    119120
    120121function zoomOut() {
     
    129130
    130131        zoomLevel = zoomLevel + 1;
    131     prefix = prefixes[zoomLevel];
     132  prefix = prefixes[zoomLevel];
    132133  fixZoomButton();
    133134
     
    144145
    145146        zoomLevel = zoomLevel - 1;
    146     prefix = prefixes[zoomLevel];
     147  prefix = prefixes[zoomLevel];
    147148       
    148149  fixZoomButton();
     
    159160  }
    160161}
    161 var screenWidth = YAHOO.util.Dom.getViewportWidth();
    162 var screenHeight = YAHOO.util.Dom.getViewportHeight();
    163 var bottomLeft = new Array();
    164162
    165163function doResize() {
     
    188186
    189187
    190 
    191188function initializePage() {
    192189                mapElement = document.getElementById('map');
     
    200197
    201198  parseQueryString();
    202 
    203     prefix = prefixes[zoomLevel];
     199  fixZoomButton();
     200
     201  prefix = prefixes[zoomLevel];
     202  doResize();
    204203}
    205204
     
    278277var successHandler = function(o){
    279278  eval(o.responseText); 
    280         //alert(o.responseText);
    281279}
    282280
     
    332330        document.getElementById("permalink").href = "#" + getLink();
    333331  location.href = '#'+getLink();
    334  
    335332}
    336333
Note: See TracChangeset for help on using the changeset viewer.