Ive loaded the map. now i close it and load it again. I gt this
exception.
Error: Object not initialized
at com.google.maps.wrappers::Wrapper$/checkValid()
at com.google.maps.wrappers::IMapWrapper/addControl()
at com.google.maps::Map/addControl()
at com.greenclinical.gcs.fe.view.frontdesk::GoogleMapDemographics/
init()[C:\Users\Sai\Desktop\GreenClinical\Dev\Workspace\Gcs-Web\src\com
\greenclinical\gcs\fe\view\frontdesk\GoogleMapDemographics.mxml:85]
at com.greenclinical.gcs.fe.view.frontdesk::GoogleMapDemographics/
___GoogleMapDemographics_TitleWindow1_creationComplete()[C:\Users\Sai
\Desktop\GreenClinical\Dev\Workspace\Gcs-Web\src\com\greenclinical\gcs
\fe\view\frontdesk\GoogleMapDemographics.mxml:12]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects
\framework\src\mx\core\UIComponent.as:12528]
at mx.core::UIComponent/set initialized()[E:\dev\4.x\frameworks
\projects\framework\src\mx\core\UIComponent.as:1627]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x
\frameworks\projects\framework\src\mx\managers\LayoutManager.as:759]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev
\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:
1072]
************************CODE***********************************
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="850"
height="650"
creationComplete="init()"
showCloseButton="true"
close="closePopUp()"
backgroundAlpha="1"
paddingLeft="10"
layout="vertical">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects)
here
-->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.google.maps.InfoWindowOptions;
import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapMouseEvent;
import com.google.maps.MapOptions;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.PositionControl;
import com.google.maps.controls.ZoomControl;
import com.google.maps.overlays.Marker;
import com.google.maps.services.ClientGeocoder;
import com.google.maps.services.GeocodingEvent;
import com.google.maps.services.GeocodingResponse;
import com.google.maps.services.Placemark;
import
com.greenclinical.gcs.fe.model.managers.AuthenticationManager;
import
com.greenclinical.gcs.fe.model.valueObjects.Address;
import
com.greenclinical.gcs.fe.model.valueObjects.UsersLocation;
import
com.greenclinical.gcs.fe.view.frontdesk.google.PharmacyVO;
import
com.greenclinical.gcs.fe.view.frontdesk.google.components.InputBox;
import
com.greenclinical.gcs.fe.view.frontdesk.google.components.InputBox1;
import
com.greenclinical.gcs.fe.view.frontdesk.google.components.MapOverlay;
import
com.greenclinical.gcs.fe.view.frontdesk.google.components.MarkerData;
import
com.greenclinical.gcs.fe.view.frontdesk.google.events.InfoWindowClosedEvent;
import
com.greenclinical.gcs.fe.view.frontdesk.google.utils.MapUtils;
import mx.collections.ArrayCollection;
import mx.containers.VBox;
import mx.controls.Alert;
import mx.events.ResizeEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
private var googleMap:Map;
private var geocoder:ClientGeocoder;
private var
locId:int=AuthenticationManager.getInstance().currentLoggedInUser.location.locationId;
[Bindble]
private var zip:String;
[Bindable]
private var _acGeocoderList:ArrayCollection;
[Bindable]
public var dataProvider:ArrayCollection = new
ArrayCollection();
private var _callBackFunc:Function;
private function closePopUp():void
{
PopUpManager.removePopUp(this);
}
public function set callBackFunc(func:Function):void{
_callBackFunc = func;
}
public function get callBackFunc():Function{
return _callBackFunc
}
private function init():void
{
PopUpManager.centerPopUp(this);
googleMap=new Map();
googleMap.key="ABQIAAAA7QUChpcnvnmXxsjC7s1fCxQGj0PqsCtxKvarsoS-
iqLdqZSKfxTd7Xf-2rEc_PC9o8IsJde80Wnj4g"; //APP_ID;
googleMap.addEventListener(MapEvent.MAP_READY,
googleMap_mapReady);
googleMap.setSize(new Point(mapContainer.width,
mapContainer.height));
googleMap.addControl(new ZoomControl());
googleMap.addControl(new MapTypeControl());
mapContainer.addChild(googleMap);
for each (var add:UsersLocation in
AuthenticationManager.getInstance().currentLoggedInUser.users.usersLocations
as ArrayCollection)
{
if (locId == add.location.locationId)
{
zip=add.location.address.zip;
textInput.text=zip;
break;
}
}
}
private function
geocoder_geocodingSuccess(evt:GeocodingEvent):void
{
var
result:Placemark=GeocodingResponse(evt.response).placemarks[0];
googleMap.setCenter(result.point, 13);
}
private function
geocoder_geocodingFailure(evt:GeocodingEvent):void
{
Alert.show("Unable to geocode address: " +
evt.name);
}
private function googleMap_mapReady(evt:MapEvent):void
{
geocoder=new ClientGeocoder();
geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,
geocoder_geocodingSuccess);
geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE,
geocoder_geocodingFailure);
geocoder.geocode(String(zip));
}
private function button_click(evt:MouseEvent):void
{
// TODO should change ths for real data
var httpCall:HTTPService;
for each (var obj:Object in
MapUtils.getMapAddress())
{
httpCall = new HTTPService();
httpCall.resultFormat="e4x";
httpCall.addEventListener(ResultEvent.RESULT, onGoogleResult);
httpCall.addEventListener(FaultEvent.FAULT, onGoogleFault);
httpCall.url="http://maps.google.com/maps/api/geocode/xml?
address=" + obj.address +"&sensor=true&pharmacyId="+obj["pharmacyId"];
httpCall.send(obj);
}
geocoder.geocode(textInput.text);
}
private function onGoogleResult(evt:ResultEvent):void
{
var xData:XML = XML(evt.result);
var md:MarkerData = new
MarkerData(Number(xData.result.geometry.location.lat),Number(xData.result.geometry.location.lng),
String(xData.result.formatted_address),String(xData.result.formatted_address),
getPharmacyVoFromPharmacyId(getPharmacyIdFromUrl(evt.target["url"])));
var latlng:LatLng = new
LatLng(Number(xData.result.geometry.location.lat),Number(xData.result.geometry.location.lng));
var marker:Marker= new Marker(latlng);
addMarker(md,marker);
}
private function
getPharmacyIdFromUrl(url:String,compareString:String=
"pharmacyId"):String{
var params:Array = url.split("&");
var prop:Array ;
for each(var string:String in params){
prop = string.split("=")
if(prop[0] == compareString){
return prop[1];
}
}
return "";
}
private function
getPharmacyVoFromPharmacyId(pharmacyId:String):Object{
for each(var obj:Object in
MapUtils.getMapAddress()){
if(obj["pharmacyId"] ==
int(pharmacyId)){
return obj;
}
}
return null;
}
public function addMarker(markerData:MarkerData,
marker:Marker):void{
var o:Object =
{markerData:markerData,marker:marker};
marker.addEventListener(MapMouseEvent.ROLL_OVER,markerMouseOver);
marker.addEventListener(MapMouseEvent.CLICK,markerClicked);
marker.addEventListener(InfoWindowClosedEvent.NAME,closed);
markerData.marker = marker;
googleMap.addOverlay(marker);
dataProvider.addItem(o);
dataProvider.refresh();
}
private function onGoogleFault(evt:FaultEvent):void
{
}
public function markerClicked(event:MapMouseEvent):void{
var marker:Marker = event.target as Marker;
var o:Object =
MapUtils.getMarkerDataByLatAndLng(marker.getLatLng().lat(),marker.getLatLng().lng(),dataProvider);
if (o != null){
callBackFunc(o);
}
closePopUp();
}
public function
markerMouseOver(event:MapMouseEvent):void{
var marker:Marker = event.target as Marker;
var overlay:InputBox1 = new InputBox1();
//overlay.marker=marker;
var o:Object =
MapUtils.getMarkerDataByLatAndLng(marker.getLatLng().lat(),marker.getLatLng().lng(),dataProvider);
/* overlay.address.text = (o["markerData"] as
MarkerData).pharmacyVo["address"];
overlay.heading.text = (o["markerData"] as
MarkerData).pharmacyVo["pharmacyName"]; */
if (o != null){
//inputBox = o["markerData"].name;
marker.openInfoWindow(new
InfoWindowOptions({contentHTML:getHtmlContent(o),
width:200,height:100,drawDefaultFrame:true}));
}
}
private function getHtmlContent(o:Object):String{
var data:MarkerData = o["markerData"];
var content:String = "<b><font
size='14'>"+data.pharmacyVo["pharmacyName"] + "</font>" +
"<br/><br/><p>"+ data.address+"</p>";
content += "<br/><br/><font size ='8'>" +
"*Please click on the
bubble to save it into the patients favourites" +"</font>";
return content;
}
/* public function createMyCustomContent():VBox {
var myVbox:VBox = new VBox();
var titleTextField:TextInput = new TextInput();
titleTextField.text = "This is the title";
myVbox.addChild(titleTextField);
return myVbox;
}
*/
public function
closed(event:InfoWindowClosedEvent):void{
/* var marker:Marker = event.marker;
var latLng:LatLng = marker.getLatLng();
var markerData:MarkerData = new
MarkerData(latLng.lat(),latLng.lng(),event.inputName);
var o:Object =
MapUtils.getMarkerDataByLatAndLng(latLng.lat(),latLng.lng(),dataProvider);
if (o == null){
addMarker(markerData,marker);
}else{
o["markerData"] = markerData;
dataProvider.refresh();
} */
}
private function
mapContainer_resize(evt:ResizeEvent):void
{
if (googleMap)
{
googleMap.setSize(new
Point(mapContainer.width,
mapContainer.height));
}
}
]]>
</fx:Script>
<s:HGroup width="100%" height="30">
<mx:FormItem label="Address:"
direction="horizontal">
<mx:TextInput id="textInput"/>
<mx:Button id="button"
label="Submit"
click="button_click(event);"/>
</mx:FormItem>
</s:HGroup>
<mx:HBox width="100%" height="100%">
<mx:UIComponent id="mapContainer"
width="100%"
height="100%"
resize="mapContainer_resize(event);"/>
<mx:Panel width="200" height="100%">
</mx:Panel>
</mx:HBox>
</mx:TitleWindow>
--
You received this message because you are subscribed to the Google Groups
"Google Maps API For Flash" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-api-for-flash?hl=en.