Могу ли я использовать Sprite для наземного наложения карты Google? - PullRequest
0 голосов
/ 13 мая 2011

(с использованием flash) У меня есть объект Sprite, который я хочу показать на карте Google.Поэтому я создал объект GroundOverlay, используя мой объект Sprite, но он не отображается.Я думаю, это потому, что Sprite более высокого класса, чем DisplayObject.(Кажется, что GroundOverlay получает только DisplayObject ...?) Есть ли у нас возможность использовать Sprite для моего GroundOverlay?или альтернативная идея?

1 Ответ

0 голосов
/ 16 мая 2011

Я получил этот код с этого сайта, я не помню точную ссылку, но вы можете попробовать, это почти то, что вы хотите сделать ...

package

{import flash.display. ;импорт flash.geom. ;import com.google.maps. *;

public class sample extends Sprite
{
               private var polyLayer:Sprite = new Sprite();
               private var mapLayer:Sprite = new Sprite();
               private var map:Map = new Map();
               private var center:LatLng = new LatLng(36.469889,-93.949641);

               private var state:String = "39.108751,-94.586848 35.160337,-90.049495 35.474091,-97.520198";

               public function sample()
               {
                               addChild(mapLayer);
                               addChild(polyLayer);
                               map.key = "*** HERE YOUR API KEY ***";
                               map.sensor = 'false';
                               map.setSize(new Point(800, 600));
                               map.addEventListener(MapEvent.MAP_READY, function(event:MapEvent) {
                                               map.enableScrollWheelZoom();
                                               map.setMapType(MapType.NORMAL_MAP_TYPE);
                                               map.setCenter(center, 6);
                                               redrawPolygons();
                               });

                               map.addEventListener(MapZoomEvent.ZOOM_CHANGED, function(event:MapZoomEvent) {
                                               redrawPolygons();
                               });

                               map.addEventListener(MapMouseEvent.DRAG_STEP, function(event:MapMouseEvent) {
                                               redrawPolygons();
                               });

                               mapLayer.addChild(map);
               }


               private function redrawPolygons():void
               {
                               polyLayer.graphics.clear();
                               polyLayer.graphics.lineStyle(1,0x000000,0.8);
                               polyLayer.graphics.beginFill(0xFF0000,0.5);
                               var coo:Array = state.split(" ");
                               for (var g=0; g<coo.length; g++) {
                                               var latlon:LatLng = LatLng.fromUrlValue(coo[g]);
                                               if (g==0) 
                                                    polyLayer.graphics.moveTo(map.fromLatLngToViewport(latlon).x, map.fromLatLngToViewport(latlon).y);
                                               else
                                                    polyLayer.graphics.lineTo(map.fromLatLngToViewport(latlon).x, map.fromLatLngToViewport(latlon).y);
                               }

                               polyLayer.graphics.endFill();
               }
}

}

...