Hi
I am using geoserver1.7.4 and I registered all layers using 4326 srs.
I am setting tiles on google map using getmap request .
code is as follows:
import com.google.maps.Copyright;
import com.google.maps.CopyrightCollection;
import com.google.maps.LatLng;
import com.google.maps.LatLngBounds;
import com.google.maps.TileLayerBase;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.events.IOErrorEvent;
import flash.geom.Point;
import flash.net.URLRequest;
import mx.controls.Alert;
public class CampusTileLayer extends TileLayerBase {
private var tileSize:Number;
private var opac:Number=1.0;
public var Layer:String;
//private var offset:Number=16777216;
private var offset:Number=16777216;
private var radius:Number=offset / Math.PI;
private var op:Number=1;
public function test(opacity:Number):void
{
opac = opacity;
}
public function CampusTileLayer
(tileSize:Number,Layer:String,op:Number) {
try
{
this.op=op;
var copyrightCollection:CopyrightCollection = new
CopyrightCollection();
super(copyrightCollection, 14, 20,op);
this.tileSize = tileSize;
this.Layer=Layer;
// Add a custom copyright that will apply to the entire map
layer.
copyrightCollection.addCopyright(
new Copyright("CustomCopyright",
new LatLngBounds(new LatLng(-180, 90),
new LatLng(180, -90)),
0,
"CustomTileProvider"));
}
catch(ex:Error)
{
Alert.show("Error in CampusTileLayer");
}
}
public override function loadTile(tilePos:Point,
zoom:Number):DisplayObject {
var zoomorg=zoom;
zoom = 17 - zoom;
//LowerLeft Corner
var tileIndexLL:Point = new Point(256*tilePos.x,
256*(tilePos.y
+1));
//UpperRight Corner
var tileIndexUR:Point = new Point(256*(tilePos.x+1),
256*
(tilePos.y));
var bbox:String;
bbox=XToL(zoom,tileIndexLL.x)+ ","+YToL
(zoom,tileIndexLL.y)+","+XToL(zoom,tileIndexUR.x)+","+YToL
(zoom,tileIndexUR.y);
var testLoader:Loader = new Loader();
var url:String="http://localhost:8081/geoserver/wms?
SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS="+Layer
+"&STYLES=&TRANSPARENT=true&SRS=EPSG:4326&FORMAT=image/
png&WIDTH=256&HEIGHT=256&BBOX="+bbox;
try
{
var urlRequest:URLRequest = new URLRequest(url);
testLoader.contentLoaderInfo.addEventListener
(IOErrorEvent.IO_ERROR, ioErrorHandler);
testLoader.load(urlRequest);
}
catch (error:Error){}
return testLoader;
}
private function ioErrorHandler(e:IOErrorEvent):void
{}
public function LToX(z:Number,x:Number):Number {
return (offset+radius*x*Math.PI/180)>>z;
}
public function LToY(z:Number,y:Number):Number {
return
(offset-radius*Math.log((1+Math.sin(y*Math.PI/180))/(1-
Math.sin(y*Math.PI/180)))/2)>>z;
}
public function XToL(z:Number,x:Number):Number {
return (((x<<z)-offset)/radius)*180/Math.PI;
}
public function YToL(z:Number,y:Number):Number {
return
(Math.PI/2-2*Math.atan(Math.exp(((y<<z)-offset)/radius)))
*180/Math.PI;
}
}
Now deviation of tiles at lower zoom level is a big problem for me as
I have to show tiles at every zoom level.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Maps API For Flash" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-maps-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---