sp_ll.dia = State Plane to Lat/Lon Diagram
Without using Corpscon 6.0.1 with 4 long state plane coordinate and as much as 4000+
buildings/tile files at times, using proportions between the rectangular state plane
boundaries and the geographical boundaries of the tile, we should approximate Corpscon
accuracy and note the plotted buildings overlapping the 3D buildings in Google Earth.
To be as accurate as possible here, we will take into account, the converging of the
longitudes pole ward (northward}. Below is a crude depiction that is greatly exaggerated.
We show the outer tile boundary gy xg,yd & nwx, etc. This means that building1 is immense
but used here only as an example. Note building2 here (b2) is more realistic but no detail.
This means, the longitude convergence on the north side of a building is negligible compared
to the southern side so for the x's, we will just use xmid.
Tile #
xg[0],yg[1] xg[1],yg[1]
nwx,nwy nex,ney
______________________________________________________________
 
 
 xgbl0 > xgbl xgbr < xgbr0 
ygbt> + ++ + 
 x[1] /< ygrat   ygrat >\ x[2] 
 / \ _ 
 __ / xgmid \ _ 
 __ / o \ b3 
 b2 / xmid,ymid \ 
 / \ 
 / \ 
 / x[0],y[0] x[3] 
ygbb> ++ 
 /< xratl   xratr >\ 
 / \ 
 / b1 \ 
 / \ 
 / \ 
/____________________________________________________________\
swx,swy ^ sex,sey
xg[0],yg[0] ^ xg[1],yg[0]
ix=0 ixmin ixmax
The building's corners (+) are as follows:
x[0]=x[1]=swx+ixmin*cs;
x[2]=x[3]=swx+ixmax*cs;
y[1]=nwy+iyt*cs;
y[0]=nwy+iyb*cs;
The ix counts are min & max's and iy's (tOP,bOT) respectively and cs = cell size in feet
so x[],y[]'s are in state plane coordinates and x[0],y[0] is the SW corner of the building
(or initial corner swx,swy) of the state plane & geographical or xg[0],yg[0]) coordinate system.
Now since we only have the xmins & xmaxes of the building, the alignment of +'s, x[0]=x[1]
x[2]=x[3] is a rectangle. Since no convergence of latitudes, it can be treated as a rectangle.
With yratb=(y[0]swy)/(nwyswy), we have ygbb=yg[0]+yratb*(yg[1]yg[0]). Likewise, for the top,
yrat=(y[1]swy)/(nwyswy) so ygbt=yg[0]+yratt*(yg[1]yg[0]) again except with a higher value of
'yratt' because of y[1]>y[0]. Note, nwyswy = sexswx = 10,000' tiles.
For xgbl, we have to work with distances from xgmid as the tile's center will be best centered in
GE plots and does not change as the xg's converge towards this center longitude (). The radius
from the axis of the rotating earth is r=R cos(lat), with the arc or range of longitude is
proportional to r @ Lat with R representing earth's radius at the equator (Lat=0). So we initially
have xgbl0 @ ygbb if rectangular but must find > xgbl @ Lat ygmid.
We first find xgbl0 & xgbr0 as nonconverging longitudes. We have the xratio of both as
xratl=(xmidx[0])/(xmidswx) & xratr=(xmidx[2])/(xmidswx). Could have used
x[1]>x[0] and/or x[3]>x[2]. Now applying this ratio to tile's mid Lon xg's,
xgbl0=xgmidxratl*(xgmidxg[0]) & xgbr0=xgmidxratr*(xgmidxg[0]). However, since this is not a
linear rectangle as in y>yg, the decrease in longitude arc is from ytbc=cos(yg[0]) > ybmc=cos(ygmid)
where 'ytbc' means y tile bottom cosine @ SW corner and 'ybmc' means y building mid cosine @ ygmid.
The decrease in rarc distance ratio from y delta lat is ygrat=ybmc/ytbc. We use the mid y of the building
as sufficient accuracy rather than distinguishing between the south & north sides of the building. So now
xgbl=xgmidygrat*(xgmidxgbl0). Following this procedure again, xgbr=xgmidygrat*(xgmidxgbr0).
Simply summary is that the linear ratios xratl,xratr from center to buildings are replaced by the converging
Lon ratio ygrat.
The example in b1 above, was that the W>E building corners were symmetrically centered across the midtile.
This is rarely the case but building's b2 & b3 are more likely. Below, a blow up with the essentials should
suffice. Here xgbl0 > xgbl to the right again because left of xgmid again. However, xgbr also move to the
right of xgbr0 towards xgmid but not as much because distance from there (xgmidx[3]) < (xgmidx[0]) but both
new distances reduce in proportion by ygrat.
xgmid
xmid
 x[0] xgbr 
 ygbt _+____________ +< ygrat 
 xgbl  
  
  o 
  b2 
 ygbb ______________< xratr 
 x[0] x[3]
 < xratl 
 xgbl0 xgbr0
 


 
xg[0],yg[0]
Here are some actual calculations of this instance to show this effect. However,
ygrat was boosted down to .8 to see this effect better than using .999435.
xrat left=8.579e001 xrat right=8.446e001 ygrat=ybmc(0.760963)/ytbc(0.761123) = .999435 use 0.8
xgbl0[80.0064267] > xgbl[80.0032668] xgbr[80.0030705] < xgbr0[80.0061813]
.0031599 .0031108
.0000491
xrat left=7.469e001 xrat right=7.113e001 ygrat=ybmc(0.760963)/ytbc(0.761123) = .999435 use 0.8
xgbl0[80.0043819] > xgbl[80.0016310] xgbr[80.0011075] < xgbr0[80.0037276]
.0027509 .0026201
.0001308