map.setCenter();从StageWebView AS3中使用时无法正常工作

时间:2016-07-01 10:54:58

标签: javascript google-maps actionscript-3 flash air

我正在开发AIR Android项目,我需要为用户提供从地图中选择位置的选项。其他一切都很完美。我能够将选定的lats和lng从JS转移到AS。但我还希望地图在首次加载时将其位置置于用户所在位置。为此,我按照谷歌地图文档,它在HTML中完美地工作。但事实证明“Geocoder”在StageWebView中不起作用。因此,经过大量的失败后,我决定使用AS3的地理定位服务,并在地图加载时将来自AS3的Lats和Lngs发送给JS。为此,在AS中,我在WebViewLoaded事件中找到用户的位置和用户以下JS注入:

webView.loadURL("javascript:setMapCenter('" + _lats + "', '" + _lngs + "')");

现在这里是JS中的setMapCenter函数:

function setMapCenter(lats, lngs){

ASLats = lats;
ASLngs = lngs;
pos = {
    lat: ASLats,
    lng: ASLngs
  };
   // map.setCenter({lat:ASLats, lng:ASLngs});
    map.setCenter(pos);
    alert("set map center function was called with " + pos.lat + " " + pos.lng);
}

当我运行AIR项目时,打开地图。一旦地图加载,我就会看到警报窗口,显示从AS3收到的lats和lngs。这意味着注入是正确的,并且值正在从AS成功发送到JS。问题是

map.setCenter({lat:ASLats, lng:ASLngs});

或     map.setCenter(POS);

不起作用。地图不能正确居中。但是,当我调用相同的函数时,

window.onload(){};
像这样的

setMapCenter(50.256498, -0.25468);

效果很好。

我真的不明白为什么它不起作用。它变得非常令人沮丧。如果这听起来像一个愚蠢的问题,我很抱歉。我实际上没有JS的经验。这是我第一次使用它。所以任何帮助都会非常感激。

0 个答案:

没有答案