State Plane Building Bytes for tally() in SANb.c
xml1() xf[0],yf[1] =
nwxf0,nwyf0
^ <dxg0> spexf[0] = 700' +
 0,0 ^ 
  d = spnyf[1] =350' 
  y 
  g spe,spn t
  0 o y yf[1]nwyf0
  G0 Ground Zero 0
  
  
  
  tx0=xf[0]nwxf0 xf[0],yf[1]  xf[1],yf[1]
 +o+
  dx_d 
 1__________2 iyt /<======<====by  ^
   /   dyf=2048'
  Building  /  Tile # 
  x[],y[n] /  xmid,ymid 
    
 __________ iyb  dxf=2048'>
 0 3 ____________
 ixmin ixmax xf[0],yf[0] xf[1],yf[0]


!
We want a coordinate system, that when the G0 building is reached, we have the building center
coordinate as 0,0. However, the initial coordinate system's origin should be an intermediate
point between G0 and any building 'b'. The choice is to use the NW corner's initial (G0) tile
seen as nwxf0,nwyf0. After we find this initial tile that contains ground zero, we pass through
xml1() and hold xf[0] by nwxf0 and yf[1] by nwyf0. Anywhere FROM this NW corner inside the initial
tile is SE so nwxf0 is always + and nwyf0 always .
Now lets assume the building is the G0 building (o). The building's 4 corners ix,iy's are indicated
ixmin,ixmax,iyt & iyb. After correcting for the cell size's (csf), we might end up with 600,800,200,500
respectively. That is, the rectangle surrounding the G0 building is 200' wide (EW), 300' long (NS).
However, we process based on the NW corner's initial tile coordinate system first so that would be
x[0]=x[1]=600,x[2]=x[3]=800, y[1]=y[2]=200 & y[0]=x[3]=500 as seen below:
600 800
1__________2 iyt ?200
  Here, iyb is the bottom (ix) but it's value > iyt. So, to keep the
  initial NW tile's NESW coordinate system going, we need the y distance
 700,350  from the N, so we should have y[1]=y[2]=200 & y[0]=x[3]=500 as now
 +  the mid y (+) 350 matches. So ?=. Now now we shift from the initial
dxg0,dyg0  NW tile's coordinate system to the G0 coordinate system in tally() so in
  SANxb18b.c x,y = dx,dy from G0 with smaller values to rotate around G0.
__________ iyb ?500 That is, we want the difference between point G0 and the 4 corners of 'o',
0 3 as long as they are in the same coordinate system, regardless of it's
ixmin ixmax same origin. So here, new x[]'s=dxg0old x[]'s, y[]'s=dyg0old y[]'s.
x[n],y[n] x[01]=600dxg0,x[23]=800dxg0 and y[0&3]=500dyg0,y[12]=200dyg0.
The final coordinates of the G0 building's surrounding corners FROM G0 are x[0]=x[1]=100, x[2]=x[3]=+100,
y[0]=y[3]=150, y[1]=y[2]=+150 with center (+) = dxg0,dyg0dxg0,dyg0 = 0,0.
Then for any other tile, we add the tx0,ty0 distance FROM the NW corner of the initial tile to this next tile by
tx0,ty0 which both can be any sign +,. That is, tx0=xf[0]nwxf0 & yf[1]nwyf0 as seen above. Finally, the total
distance (range) FROM G0 to the building corners is rngx,rngy = bdxdxg0+tx0, rngy=bdydyg0+ty0 where bdx,bdy is
the midpoint of the scaled and sign corrected building corners x[n],y[n].
Then range rng=(rngx^2 + rngy^2)^1/2.
** We must change ?= to a + by (y[n]) back again for GridScreen Coord in utmll(),pcx() after use in tally(). **
We want to eliminate those buildings > 5.25 mi = 27720', however for 27720 > +27720 = 55,440 < 65,535 (2 bytes).
This must be done before the tally() because buildings > 65,535', start at 0 again and would be included. So our
bias correction factor should be +27720 to keep 27720 @ 0. We could use a higher rounded 30,000 so even +27720=
57,720 still < 65,535. Since the max possible dx,dy = 2048, then +57,720 = 59768 still < 65,535. Since we include
the ix's & iy's in building corner ranges, we don't need both NW Tile Corners now but the 4 x,y mins & maxes.
This puts us back to 21(2x2) = 17 bytes. However, we have 300 type 2's and 820 Type 1's tiles so our 1st byte,
tile # must be increased from 1 to 2 bytes for a total 18 bytes. The xmin building corner would be
bb18((int) (x[0]dxg0+.5 + tx0 + 30000)) with the other x,y mins & maxes following suit.
For SAN, dxg0=53.4', dyg0=553.9' @ One America Plaza determined manually by using ruler tool in Google Earth
on the initial tile when found.