#flash #google-maps
#flash #google-карты
Вопрос:
(с использованием flash) У меня есть объект Sprite, который я хочу показать на карте Google. Итак, я создал объект GroundOverlay, используя свой объект Sprite, но он не отображается. Я думаю, это потому, что Sprite более высокого класса, чем DisplayObject. (Кажется, что GroundOverlay получает только DisplayObject ..?) Есть ли какой-либо способ использовать Sprite для моего GroundOverlay? или альтернативная идея?
Ответ №1:
Я получаю этот код с этого веб-сайта, я не помню точную ссылку, но вы можете попробовать, это почти то, что вы хотите сделать…
package
{
импортируйте flash.display.; импортируйте flash.geom.;
импортируйте 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();
}
}
}
Комментарии:
1. Я был таким глупым… Причина, по которой мой sprite не отображается, заключалась в том, что значения latlng вышли за пределы диапазона: (