Using allowInsecureDomain and hosting the file on box.net worked BUT the download is so slow that the call from URLLoader is timing out. I've read that I should handle the potential I/O failure event. Has anybody on this group solved a similar problem?
On May 15, 12:01 pm, gtuerk <[email protected]> wrote: > Ok. Let me try this again with some code (hopefully that gets me a > huckleberry). I'm trying to access a kml file that is hosted on > dropbox, trying to prove that I can embed 'dynamic' kml output in a > SWF that is hosted on a secure domain. I would think it would be > simple but I'm getting Security Sandbox Violation errors that I cannot > resolve (although I have tried adding an allowInsecureDomain Security > call) > > Please help. > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application > xmlns:mx="http://www.adobe.com/2006/mxml" > xmlns:maps="com.google.maps.*" > xmlns:salesforce="http://www.salesforce.com/" > layout="absolute" > creationComplete="init(event);" > width="100%" height="100%" > viewSourceURL="srcview/index.html"> > <salesforce:Connection id="connection"/> > <mx:Script> > <![CDATA[ > import com.google.maps.services.ClientGeocoder; > import mx.controls.Alert; > > import mx.collections.ArrayCollection; > > import com.google.maps.*; > import com.google.maps.overlays.*; > import com.google.maps.controls.*; > import com.google.maps.services.*; > import com.google.maps.extras.xmlparsers.kml.*; > import com.salesforce.AsyncResponder; > import com.salesforce.objects.SObject; > import com.salesforce.objects.LoginRequest; > import com.salesforce.results.QueryResult; > > private var alat:Number; > private var alon:Number; > private var zlat:Number; > private var zlon:Number; > public function init(event:Event):void{ > /*var lr:LoginRequest = new LoginRequest(); > lr.server_url = parameters.server_url; > lr.session_id = parameters.session_id; > lr.callback = new AsyncResponder(getLatLongs); > connection.login(lr);*/ > Security.allowInsecureDomain("maps.googleapis.com"); > Security.allowInsecureDomain("dl.getdropbox.com"); > } > > public function getLatLongs(o:Object):void{ > connection.query("Select Id, Latitude__c, Longitude__c from > Building__c where Id IN ('" + parameters.aLocID + "','" + > parameters.zLocID + "')" > ,new AsyncResponder( > function(qr:QueryResult):void{ > alat = qr.records[0].Latitude__c; > alon = qr.records[0].Longitude__c; > zlat = qr.records[1].Latitude__c; > zlon = qr.records[1].Longitude__c; > > prepareMap(); > })); > } > > private function prepareMap():void{ > var aLat:Number = parseFloat(parameters.aLat); > var aLon:Number = parseFloat(parameters.aLon); > > var aLatLng:LatLng = new LatLng(aLat, aLon); > > var aOptions:MarkerOptions = new MarkerOptions({ > strokeStyle: {color: 0x00FF00}, > fillStyle: {color: 0x00FF00,alpha: 0.8}, > label: "A", > labelFormat: {bold: false}, > tooltip: "A Location", > radius: 12, > hasShadow: true, > clickable: false, > draggable: false, > gravity: 0.5, > distanceScaling: false > }); > var aMarker:Marker = new Marker(aLatLng, aOptions); > map.addOverlay(aMarker); > > map.setCenter(aLatLng, 15, MapType.NORMAL_MAP_TYPE); > > //These are the controls that must be added for standard > behavior > map.addControl(new ScaleControl()); > var myZoomControl:ZoomControl = new ZoomControl(); > var position:ControlPosition = new ControlPosition > (ControlPosition.ANCHOR_TOP_LEFT, 10, 5); > myZoomControl.setControlPosition(position); > map.addControl(myZoomControl); > var myMapTypeControl:MapTypeControl = new MapTypeControl(); > myMapTypeControl.setControlPosition(new ControlPosition > (ControlPosition.ANCHOR_TOP_RIGHT, 10, 5)); > map.addControl(myMapTypeControl); > > var loader:URLLoader = new URLLoader(); > loader.addEventListener(Event.COMPLETE, loadKML); > loader.load(new URLRequest("http://dl.getdropbox.com/u/ > 470962/_mytrip.kml")); > } > > private function loadKML(event:Event):void{ > > var kml:Kml22 = new Kml22(event.target.data); > var rootFeature:Feature = kml.feature; > trace(rootFeature.toString()); > /* kmlObj:Object = new Object(); > > if(kml.feature == null) > { > trace("KML == NULL"); > } > > kmlObj.name = rootFeature.name; > */ > } > > ]]> > </mx:Script> > <mx:Panel height="100%" width="100%"> > <maps:Map id="map" mapevent_mapready="prepareMap()" > key="{parameters.apiKey}" > height="100%" width="100%"/> > </mx:Panel> > </mx:Application> > > On May 14, 2:24 pm, gtuerk <[email protected]> wrote: > > > I've spent a few hours this morning sifting through various literature > > with an express goal of plotting somewhat dynamic data on Google Maps > > that are embedded in Flex. The kicker is that the SWF is hosted on a > > secure domain (on Salesforce.com) and I'm seeing Sandbox Security > > Violation errors that indicate to me I may be barking up the wrong > > tree. > > > The business problem is that we store our KML files in a KMZ archive > > on a private LAN. For obvious reasons, I can't/don't want to allow > > the SWF to dip into this location. So I looked into sharing from > > Google Earth. I don't think that's the route I want to go. So then I > > wanted to see if I could get the kml file hosted on Google Docs (my > > organization is a Google Apps premier customer). The file type was > > prohibitive. Then I looked into Google Pages (a now defunct service, > > supplanted by Google Sites). It looks like Google Sites doesn't want > > to allow kml/kmz to be hosted. But Box.net and Dropbox do support > > direct downloads of hosted KML but I still run into the Sandbox > > security violation. > > > I don't want to package the kml files with the compiled SWF because > > the KML files change very frequently (weekly or so) and I don't want > > to recompile to get those changes. Can anyone give me a good > > suggestion on this conundrum? > > thanks > > g --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
