Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

google map use afcs

Avatar

Level 1

I have problem.

I whrite like http://demo.ashorten.com/gmapcocomo/ .

Use afcs share google map in same room.

But I have to  create new room first ,and  enter my create room.

example: I create first room ,name is new. After enter room(new),I can look map and if other people come in, I change LatLng and  their map also

change.Like URL.

But when I create second room or more, map can't show.Only first room can use. I don't know why.

I create room anyone collectionNodes  have ShareMap.

thx.

map code:

<?xml version="1.0" encoding="utf-8"?>
<SuperPanel xmlns="net.brandonmeyer.containers.*" xmlns:mx="http://www.adobe.com/2006/mxml" title="Google map"
allowClose="true" allowDrag="true" allowMaximize="true" allowMinimize="true" close="PopUpEffect.Hide(this);" allowResize="true"
width="550" height="400" fontSize="12" xmlns:rtc="AfcsNameSpace"
  xmlns:maps="com.google.maps.*"  >
<mx:Script>
  <![CDATA[
  import com.google.maps.services.GeocodingEvent;
  import com.google.maps.services.ClientGeocoder;
  import mx.events.ItemClickEvent;
  import mx.managers.PopUpManager;
  import com.google.maps.styles.FillStyle;
  import com.google.maps.styles.StrokeStyle;
  import com.google.maps.InfoWindowOptions;
  import com.google.maps.MapMouseEvent;
  import com.google.maps.overlays.Marker;
  import com.google.maps.overlays.MarkerOptions;
  import com.google.maps.MapZoomEvent;
  import com.google.maps.controls.MapTypeControl;
  import com.google.maps.controls.ZoomControl;
  import com.google.maps.controls.PositionControl;
  import com.adobe.rtc.session.ConnectSession;
  import com.google.maps.MapMoveEvent;
  import com.google.maps.LatLng;
  import com.google.maps.MapEvent;
  import com.google.maps.MapType;
  import mx.controls.Alert;
  import session.session;
 
  protected var _sharedMapModel:SharedMapModel;
 
  private var marker:Marker;
  private var markerList:Array = new Array();
 
  private var zoomControl:ZoomControl = new ZoomControl();
  private var mapTypeControl:MapTypeControl = new MapTypeControl();
  private var positionControl:PositionControl = new PositionControl();
 
  private function init():void {
    auth.userName=session.session.user_name;
    cSession.roomURL="http://connectnow.acrobat.com/ncyumis/"+roomname;
  }
  private function onMapReady(event:MapEvent):void {
    map.visible = false;
    this.map.setCenter(new LatLng(45.468799,9.188004),14, MapType.NORMAL_MAP_TYPE);
    addMapControls();
    setupSharedMap(); 
  }
 
  private function addMapControls():void {
    map.addControl(zoomControl);
    map.addControl(mapTypeControl);
    map.addControl(positionControl);
  }
 
  private function removeMapControls():void {
    map.removeControl(zoomControl);
    map.removeControl(mapTypeControl);
    map.removeControl(positionControl);
  }
 
  private function setupMapListeners():void {
    map.addEventListener(MapMoveEvent.MOVE_END, onMapMoveEnd);
    map.addEventListener(MapZoomEvent.ZOOM_CHANGED, onMapZoom);
    map.addEventListener(MapEvent.MAPTYPE_CHANGED, onMapTypeChange);
  }
 
  private function setupSharedMap():void {
    _sharedMapModel = new SharedMapModel();
    _sharedMapModel.subscribe("sharedMap");
    _sharedMapModel.addEventListener("subscribed",onSubscribed);
    _sharedMapModel.addEventListener("latLngChange",onPositionChange);
    _sharedMapModel.addEventListener("zoomChange",onZoomChange);
    _sharedMapModel.addEventListener("mapTypeChange",onMapTypeChanged);
    _sharedMapModel.addEventListener("markerChange",onMarkerChange);

  }
 
  private function addMarkerToMap():void {
    marker = new Marker(map.getCenter(),new MarkerOptions({draggable:true,strokeStyle: new StrokeStyle({color: 0x000000}),fillStyle: new FillStyle({color: 0x0000FF, alpha: 0.8}),tooltip:ConnectSession.primarySession.userManager.getUserDescriptor(ConnectSession.primarySession.userManager.myUserID).displayName}));
    map.addOverlay(marker);
    marker.addEventListener(MapEvent.OVERLAY_MOVED, onOverlayMove);
    _sharedMapModel.marker = marker;
  }
 
  private function onSubscribed(p_evt:Event=null):void {
    _sharedMapModel.removeEventListener("subscribed",onSubscribed);
    setupMapListeners();
    addMarkerToMap();
    map.visible = true;
  }
 
  private function onMapMoveEnd(event:MapMoveEvent):void {
    _sharedMapModel.latLng = map.getCenter();
  }
 
  protected function onPositionChange(p_evt:Event=null):void {
    map.removeEventListener(MapMoveEvent.MOVE_END, onMapMoveEnd);
    map.setCenter(_sharedMapModel.latLng);
    map.addEventListener(MapMoveEvent.MOVE_END, onMapMoveEnd);
  }
 
  private function onMapZoom(event:MapZoomEvent):void {
    _sharedMapModel.zoomLevel = map.getZoom();
  }
 
  protected function onZoomChange(p_evt:Event=null):void {
    map.removeEventListener(MapZoomEvent.ZOOM_CHANGED, onMapZoom);
    map.setZoom(_sharedMapModel.zoomLevel);
    map.addEventListener(MapZoomEvent.ZOOM_CHANGED, onMapZoom);
  }
 
  private function onOverlayMove(event:MapEvent):void {
    _sharedMapModel.marker = marker;
  }
 
  protected function onMarkerChange(p_evt:Event=null):void {
    markerList.push(_sharedMapModel.marker);
    for each (var currentMarker:Marker in markerList) {
    if (currentMarker.getOptions().tooltip == _sharedMapModel.marker.getOptions().tooltip) {
      map.removeOverlay(currentMarker);
    }
    }
    map.addOverlay(_sharedMapModel.marker);
  }
 
  private function onMapTypeChange(event:MapEvent):void {
    _sharedMapModel.mapType = map.getCurrentMapType().getName();
  }
 
  protected function onMapTypeChanged(p_evt:Event=null):void {
    map.removeEventListener(MapEvent.MAPTYPE_CHANGED, onMapTypeChange);
   
    switch (_sharedMapModel.mapType)
    {
    case "Map":
    {
      map.setMapType(MapType.NORMAL_MAP_TYPE);
      break;
    }
    case "Satellite":
    {
      map.setMapType(MapType.SATELLITE_MAP_TYPE);
      break;
    }
    case "Hybrid":
    {
      map.setMapType(MapType.HYBRID_MAP_TYPE);
      break;
    }
    case "Terrain":
    {
      map.setMapType(MapType.PHYSICAL_MAP_TYPE);
      break;
    }
    }

  }

 
  public function searchAddress(addr:String):void
            {
    var geocoder:ClientGeocoder = new ClientGeocoder();
      geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,
    function(event:GeocodingEvent):void
    {
            var placemarks:Array = event.response.placemarks;
            if (placemarks.length > 0)
            {
              map.setCenter(placemarks[0].point);
              _sharedMapModel.latLng = map.getCenter();
            }
          });
    geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE,
    function(event:GeocodingEvent):void
    {
      Alert.show("Geocoding failed");
    });
    geocoder.geocode(addr);
  }

 
  ]]>
</mx:Script>
<rtc:AdobeHSAuthenticator id="auth"  />
    <rtc:RoomSettings autoPromote="true" roomBandwidth="auto" id="roomSettings"/>
    <rtc:ConnectSessionContainer visible="false" id="cSession" authenticator="{auth}" autoLogin="true" initialRoomSettings="{roomSettings}" />
<mx:HBox width="100%" height="24" verticalAlign="middle">
  <mx:TextInput id="searchStr" enter="searchAddress(searchStr.text)" width="250"/>
  <mx:Button label="Search" click="searchAddress(searchStr.text)" />

    </mx:HBox>

<maps:Map id="map" top="70" left="0" right="0" bottom="0" width="100%" height="100%"
  key="map Key"
  mapevent_mapready="onMapReady(event)" />

</SuperPanel>

2 Replies

Avatar

Level 2

Hi Cha Yi,

Is it possible you can share the example of the googlemap collaboration using Adobe LCCS? I am stuck at creating the MapSharedModel class...

Regards,

Tan

Avatar

Level 2

Hi All

Is it possible to use any other map layers as a base layer instead of google, yahoo etc. using lccs.

Regards

Atif