ShockWave2048

StageWebView show Google maps with marker handler

Feb 23rd, 2016
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private function showMap(e:Event):void
  2.         {
  3.             if ( StageWebView.isSupported ) {
  4.                 isMapState = true;
  5.                 if ( web == null && dcList && dcList.length > 0 ) {
  6.                     web = new StageWebView( true );
  7.                     var p:Point = localToGlobal( new Point( 0, 150 ) );
  8.                     web.viewPort = new Rectangle( p.x, p.y, Starling.current.nativeStage.stageWidth,
  9.                         Starling.current.nativeStage.stageHeight-150);
  10.                     web.stage = Starling.current.nativeStage;
  11.                     var html:String = buildPage( dcList );
  12.                     web.loadString( html );
  13.                     web.addEventListener(LocationChangeEvent.LOCATION_CHANGING, dcTapHandler );
  14.                 }
  15.             }
  16.         }
  17.        
  18.         private function dcTapHandler(e:LocationChangeEvent):void
  19.         {
  20.             var dcId:String = e.location.split("DC_ID:")[1];
  21.             if ( web != null ) {
  22.                 web.dispose();
  23.                 web = null;
  24.             }
  25.             for each ( var dc:DillerCenterVO in dcList ) {
  26.                 if ( dc.id == dcId ) {
  27.                     dispatchEventWith( DC_SELECTED, true, dc );
  28.                     break;
  29.                 }
  30.             }
  31.         }
  32.        
  33.         private var coords:Array = [
  34.             "lat: 55.756583, lng: 37.803654",
  35.             "lat: 55.715766, lng: 37.572568",
  36.             "lat: 55.787992, lng: 37.600260",
  37.             "lat: 55.737963, lng: 37.637359",
  38.             "lat: 55.740673, lng: 37.579587"
  39.         ];
  40.        
  41.         private function buildPage(list:Vector.<DillerCenterVO>):String {
  42.             var counter:uint = 0;
  43.            
  44.             var htmlString:String = '<!DOCTYPE html><html><head>\r'+
  45.                 '<meta name="viewport" content="initial-scale=1.0, user-scalable=no"><meta charset="utf-8">\r'+
  46.                 '<style>html, body { height: 100%; margin: 0;padding: 0; } #map { height: 100%; }</style>\r'+
  47.                 '</head><body><div id="map"></div><script>\r' +
  48.                 'var gMap;\r' +
  49.  
  50.                 'function initMap() {\r' +
  51.                     'gMap = new google.maps.Map(document.getElementById("map"), {\r' +
  52.                         'zoom: 11,\r' +
  53.                         'center: {lat: 55.7551465, lng: 37.6558977}\r' +
  54.                   '});\r' +
  55.                  
  56.                   'var image = "http://out.stlservice.ru/mappos.png";\r' +
  57.                   'var centerMarker = new google.maps.Marker({\r' +
  58.                     'position: {lat: 55.7551465, lng: 37.6558977},\r' +
  59.                     'map: gMap,\r' +
  60.                     'icon: image\r' +
  61.                   '});\r';
  62.                  
  63.             for each ( var dc:DillerCenterVO in list )  {
  64.                 htmlString += 'var m'+counter.toString()+' = new google.maps.Marker({\r' +
  65.                     'position: {'+coords[counter]+'},\r' +
  66.                     'map: gMap,\r' +
  67.                     'label: "' + dc.name +'",\r' +
  68.                     'icon: "http://out.stlservice.ru/dcpos.png" });\r' +
  69.                     'm' + counter.toString() + '.addListener("click", function (){window.location.href = "DC_ID:' + dc.id + '"});\r';
  70.                 counter++;
  71.             }
  72.                    
  73.             htmlString += '}\r';
  74.             htmlString += '</script><script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBZBFd1TM2LKrHy-4WDqtZWyvZMCfSgNoE&signed_in=true&callback=initMap"></script>\r'+
  75.                 '</body></html>\r';
  76.  
  77.             return htmlString;
  78.         }
Add Comment
Please, Sign In to add comment