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.
