I created a simple utility to create encoded polygons directly from
GIS shapefiles.  The tool creates an XML file, then you can load the
XML and use code such as the code below to display the encoded
polygons.

The tool is here:  http://www.lynxgeos.com/shpConverter/shpConverter.html

Sample code to implement in Actionscript:

        private function onInitialize():void{
                                trace ("Initialize");
                                //LOAD Encoded Data:
                                var encodedDataLoader:URLLoader=new URLLoader();
                                encodedDataLoader.dataFormat = 
URLLoaderDataFormat.BINARY;
                                encodedDataLoader.load( new URLRequest("assets/
HCVencoded.xml"));
        
encodedDataLoader.addEventListener(Event.COMPLETE,encodedDataLoaderComplete);
                        }//end Initialize

                        private function 
encodedDataLoaderComplete(event:Object):void {
                                trace("encoded Data loaded");

                                var xmlData:XML = new 
XML(event.currentTarget.data);

                                for each(var xmlPolygon:XML in 
xmlData.elements()) {

                                        var groupName:String= xmlPolygon.Group;
                                        var 
latSouthwest:Number=xmlPolygon.latSouthwest;
                                        var 
lngSouthwest:Number=xmlPolygon.lngSouthwest;
                                        var 
latNortheast:Number=xmlPolygon.latNortheast;
                                        var 
lngNortheast:Number=xmlPolygon.lngNortheast;

                                        var polygonBounds:LatLngBounds=new 
LatLngBounds(new
LatLng(latSouthwest,lngSouthwest),new
LatLng(latNortheast,lngNortheast));

                                        var encodedPolylines:Array=[];
                                        for each (var polyline:XML in 
xmlPolygon.child("polyline")){
                                                var 
encodedPLdata:EncodedPolylineData=new
EncodedPolylineData(polyline.points, 2, polyline.levels, 18);
                                                
//EncodedPolylineData(points:String, zoomFactor:Number,
levels:String, numLevels:Number)
                                                
encodedPolylines.push(encodedPLdata);
                                        }
                                        var shape:Object={
                                                groupName: groupName,
                                                Bounds:polygonBounds,
                                                Polylines:encodedPolylines
                                        }

                                        shpObjectArray.push(shape);

                                }//end each shape

                                dataLoaded=true;
                                mapPolygons();

                        }//end Function





                                //CREATE THE POLYS ON THE MAP:
                                public function mapPolygons():void{
                                        trace("mapPolygons called");

                                        if (mapReady && dataLoaded){
                                                trace ("mapPolygons started");

                                        //Only now can we create the 
polygons--for some reason creating a
polygon before the map is ready, crash.
                                        //create the colors for the poly:
                var polOpt:PolygonOptions = new PolygonOptions({
                        strokeStyle: new StrokeStyle({ color:
0xFFBB08,thickness: 2,alpha: 1}),
                        fillStyle: new FillStyle({color:
0xFFBB08,alpha:0.2})
                        });


                                        for each (var shp:Object in 
shpObjectArray){

                                                var 
groupName:String=shp.groupName;
                                                var 
polygonBounds:LatLngBounds=shp.Bounds;
                                                var encodedPolyLines:Array = 
shp.Polylines as Array;

                                                 var polygon:Polygon = 
Polygon.fromEncoded(encodedPolyLines,
polOpt);  //crashes if done before mapReady(?)



                                
polygon.addEventListener(MapMouseEvent.ROLL_OVER, polyMouseIn);
                                polygon.addEventListener(MapMouseEvent.ROLL_OUT,
polyMouseOut);
                                map.addOverlay(polygon);


                                //CREATE polygonAC:
                                        var shape:Object={
                                        groupName: groupName,
                                        Bounds:polygonBounds,
                                        polygon:polygon
                                        }
                                        //change Objects to ObjectProxy to get 
rid of warnings in the
databinding:
                                        shape=new ObjectProxy(shape);
                                //add item to markerArray
                                polygonAC.addItem(shape);
//
                                }//next shp
                                        trace("all Polygons mapped");
                                        }//end if

                        }//end function

-- 
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.

Reply via email to