2
Flex仍然很新。我試圖將Google Maps JavaScript API合併到我的Flex應用程序中,同時通過ColdFusion從數據庫中提取標記數據。使用ColdFusion CFC和SQL Server獲取地址的Flex應用程序中的Google Maps JavaScript API
應用程序應該拉出所有參加特定學校的學生,然後通過地圖上的標記顯示學生。這也應該顯示學校,但我還沒有得到。
我寫了大部分內容,但是我被卡在最終可能變成簡單部分的東西上。我創建了地圖,並且我有CFC拖動座標數據,但是當我嘗試將數據返回到動作腳本頁面時出現錯誤。
我得到「從getGeoInfo函數返回的值不是類型查詢。」我意識到也許我使用了錯誤的returntype
,但我不確定還有什麼其他用途。
以下是CFC返回的示例。
28.5980179,-81.3651601;28.5383355,-81.3792365
這裏是我用於獲取地理位置動作功能:
/** getGeoInfo
* get the Geographical Data
*
* @param void
* @return void
*/
private function getGeoInfo():void
{
try
{
var myArgs:Object = new Object;
/* myArgs.column_list = "GeoCode, Student_Address, Student_Name_First, Student_Name_Last"; */
remotingDelegate.callCFC("getGeoInfo", myArgs);
}
catch (error:Error)
{
FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfo");
}
}
/**
* getGeoInfo_Handler
* The handler of the remoting call
* @param Object results The results of the remoting call
* @return void
*/
public function getGeoInfo_Handler(results:ArrayCollection):void
{
try
{
geoInfoAC = results;
}
catch (error:Error)
{
FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfo_Handler");
}
}
這裏是MXML頁面上的代碼,以獲得座標:
public function onMapReady(event:MapEvent):void {
map.setCenter(new LatLng(37.4419, -122.1419), 13, MapType.NORMAL_MAP_TYPE);
for each (var o:Object in geoInfoAC){
var md:MarkerData = o["markerData"] as MarkerData;
var latlng:LatLng = new LatLng(md.lat,md.lng);
var marker:Marker= new Marker(latlng);
addMarker(md,marker);
}
}
public function addMarker(markerData:MarkerData, marker:Marker):void{
var o:Object = {markerData:markerData,marker:marker};
marker.addEventListener(MapMouseEvent.CLICK,markerClicked);
marker.addEventListener(InfoWindowClosedEvent.NAME,closed);
markerData.marker = marker;
map.addOverlay(marker);
dataProvider.addItem(o);
dataProvider.refresh();
}
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();
}
}
任何幫助將是不勝感激。
我可能錯過了一些東西,但getGeoInfo不返回任何東西 – Glitcher
getGeoInfo被遠程調用getGeoInfo.cfc並返回一個叫做的getInfo VAR與查詢及的28.5980179值,-81.3651601的返回類型; 28.5383355,-81.3792365 。 不幸的是,我的程序需要一個ArrayCollection,它不能將28.5980179,-81.3651601; 28.5383355,-81.3792365轉換爲AC,但我不確定要使用什麼返回類型以及如何相應地更新處理程序。 – Vegeta
我改變了返回類型爲String現在的功能處理程序是: \t公共職能getGeoInfo_Handler(結果:字符串):無效 這似乎已經解決了這一錯誤,但我不知道爲什麼MXML頁面上的功能沒有拿起getInfoAC。 – Vegeta