Google maps api 3 谷歌地图API-不在Flex中加载。使用地图控件获取灰色屏幕。404错误与错误;跨域?
我的GoogleMapsAPI有问题,我在Flex应用程序中使用它 我必须定期刷新它5到6次,以使地图正确显示。否则,我会在左上角得到一个标记,地图会变灰。我甚至没有收到错误信息,所以我不确定该排除哪些故障 我怀疑这可能与在生成映射时触发onMapReady(事件)有关,但我不知道如何在Flex中设置某种类型的定时侦听器。(我在谷歌上搜索过,但只在JavaScript或Jquery中找到了这样做的实例。) 有人能告诉我如何使用ActionScript/Flex检查处于空闲状态的地图吗?我想如果我能得到那个部分,我可以删除mapevent\u mapready=“onMapReady(event)”并在map空闲时运行onMapReady(event)函数……或者类似的东西。我已经看过JavaScript,但当然这在AS中不会直接起作用,我对这两种语言都不太了解,无法进行正确的翻译 这是我的密码:Google maps api 3 谷歌地图API-不在Flex中加载。使用地图控件获取灰色屏幕。404错误与错误;跨域?,google-maps-api-3,maps,flex3,Google Maps Api 3,Maps,Flex3,我的GoogleMapsAPI有问题,我在Flex应用程序中使用它 我必须定期刷新它5到6次,以使地图正确显示。否则,我会在左上角得到一个标记,地图会变灰。我甚至没有收到错误信息,所以我不确定该排除哪些故障 我怀疑这可能与在生成映射时触发onMapReady(事件)有关,但我不知道如何在Flex中设置某种类型的定时侦听器。(我在谷歌上搜索过,但只在JavaScript或Jquery中找到了这样做的实例。) 有人能告诉我如何使用ActionScript/Flex检查处于空闲状态的地图吗?我想如果我
public function onMapReady(event:MapEvent):void {
var dojoGeo:Array = geoSchoolInfoAry;
var md:MarkerData = new MarkerData(dojoGeo[0],dojoGeo[1]);
var latlng:LatLng = new LatLng(md.lat,md.lng);
var markerOptions:MarkerOptions = new MarkerOptions();
markerOptions.icon = new dojoIcon();
var dojoMarker:Marker = new Marker(latlng,markerOptions);
map.addOverlay(dojoMarker);
var markerOptions2:MarkerOptions = new MarkerOptions();
markerOptions2.icon = new studentIcon();
var studentMarker:Marker = new Marker(latlng,markerOptions2);
map.addOverlay(studentMarker);
map.setCenter(new LatLng(dojoGeo[0],dojoGeo[1]), 11, MapType.NORMAL_MAP_TYPE);
map.addControl(new ZoomControl());
map.addControl(new MapTypeControl());
map.addControl(new ScaleControl());
addSchoolMarker(md,dojoMarker);
addStudentsToMap();
}
及
谢谢你的帮助
更新:使用Firebug开发工具,我发现了2个错误。CrossDomain.xml-中止和404未找到错误。我不知道该怎么做,因为我不知道这些是否只是最初导致问题的症状 嗯,我得感谢我的同事找到了解决办法 这个问题是一个时间问题,在函数运行数据填充映射的同时调用API。因此,他建议在其他两个函数完成之前,mapOnReady事件不应该运行 希望它能帮助遇到类似问题的人 代码如下:
public function getGeoInfo_Handler(results):void
{
try
{
geoSchoolInfoAry = (results.getSchoolInfo.split(","));
geoInfoAC = new ArrayCollection(results.getInfo.split(";"));
remoteCallComplete=true;
loadMap();
}
catch (error:Error)
{
FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfoSchool_Handler");
}
}
public function onMapReady(event:MapEvent = null):void
{
mapReady=true;
loadMap();
}
private function loadMap():void
{
if(mapReady && remoteCallComplete)
{
var dojoGeo:Array = geoSchoolInfoAry;
var md:MarkerData = new MarkerData(dojoGeo[0], dojoGeo[1]);
var latlng:LatLng = new LatLng(md.lat, md.lng);
map.setCenter(new LatLng(dojoGeo[0], dojoGeo[1]), 11, MapType.NORMAL_MAP_TYPE);
map.addControl(new ZoomControl());
map.addControl(new MapTypeControl());
map.addControl(new ScaleControl());
var markerOptions:MarkerOptions = new MarkerOptions();
markerOptions.icon = new dojoIcon();
var dojoMarker:Marker = new Marker(latlng, markerOptions);
map.addOverlay(dojoMarker);
var markerOptions2:MarkerOptions = new MarkerOptions();
markerOptions2.icon = new studentIcon();
var studentMarker:Marker = new Marker(latlng, markerOptions2);
map.addOverlay(studentMarker);
addSchoolMarker(md, dojoMarker);
addStudentsToMap();
}
}
public function getGeoInfo_Handler(results):void
{
try
{
geoSchoolInfoAry = (results.getSchoolInfo.split(","));
geoInfoAC = new ArrayCollection(results.getInfo.split(";"));
remoteCallComplete=true;
loadMap();
}
catch (error:Error)
{
FlexException.errorHandler(error, "StudentPopMapModuleCode:getGeoInfoSchool_Handler");
}
}
public function onMapReady(event:MapEvent = null):void
{
mapReady=true;
loadMap();
}
private function loadMap():void
{
if(mapReady && remoteCallComplete)
{
var dojoGeo:Array = geoSchoolInfoAry;
var md:MarkerData = new MarkerData(dojoGeo[0], dojoGeo[1]);
var latlng:LatLng = new LatLng(md.lat, md.lng);
map.setCenter(new LatLng(dojoGeo[0], dojoGeo[1]), 11, MapType.NORMAL_MAP_TYPE);
map.addControl(new ZoomControl());
map.addControl(new MapTypeControl());
map.addControl(new ScaleControl());
var markerOptions:MarkerOptions = new MarkerOptions();
markerOptions.icon = new dojoIcon();
var dojoMarker:Marker = new Marker(latlng, markerOptions);
map.addOverlay(dojoMarker);
var markerOptions2:MarkerOptions = new MarkerOptions();
markerOptions2.icon = new studentIcon();
var studentMarker:Marker = new Marker(latlng, markerOptions2);
map.addOverlay(studentMarker);
addSchoolMarker(md, dojoMarker);
addStudentsToMap();
}
}