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>
Views
Replies
Total Likes
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
Views
Replies
Total Likes
Hi All
Is it possible to use any other map layers as a base layer instead of google, yahoo etc. using lccs.
Regards
Atif
Views
Replies
Total Likes