使用OpenLayers定时提升

使用OpenLayers定时提升,openlayers,lift,Openlayers,Lift,我有一个简单的lift“应用程序”,它试图静态地显示OpenLayers地图,期望comet根据服务器端逻辑动态地向地图添加标记。无论如何,仅仅让地图显示出来是一项困难的任务 HTML格式如下: <!DOCTYPE html> <html> <head> <title>Test</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" conte

我有一个简单的lift“应用程序”,它试图静态地显示OpenLayers地图,期望comet根据服务器端逻辑动态地向地图添加标记。无论如何,仅仅让地图显示出来是一项困难的任务

HTML格式如下:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
<link rel="stylesheet" href="css/main.css">

<script src="js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>
  function init() {
    map = new OpenLayers.Map("mainMap");
    var mapnik         = new OpenLayers.Layer.OSM();
    var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
    var toProjection   = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    var position       = new OpenLayers.LonLat(-76.6778,39.2652).transform( fromProjection, toProjection);
    var zoom           = 9; 

    map.addLayer(mapnik);
    map.setCenter(position, zoom );
  }
</script>
</head>


<body class="lift:content_id=main" onload="init();">
<div id="main" class="lift:surround?with=bootstrap;at=content">
      <div id="mainMap"> </div>
    </div>
</body>
</html>

试验
函数init(){
map=新的OpenLayers.map(“mainMap”);
var mapnik=new OpenLayers.Layer.OSM();
var fromProjection=newopenlayers.Projection(“EPSG:4326”);//从WGS 1984转换
var toProjection=new OpenLayers.Projection(“EPSG:900913”);//到球形墨卡托投影
var position=新OpenLayers.LonLat(-76.6778,39.2652).转换(从投影,到投影);
var=9;
map.addLayer(mapnik);
地图设置中心(位置、缩放);
}
显然,我很难理解提升后产生的头部和身体元素来自哪里:环绕已经发挥了它的魔力。虽然静态HTML看起来不错,但是相关的脚本元素已经消失,似乎没有办法调用init()来显示映射

我是否必须以某种方式覆盖环绕snippit,避免使用它,或者在snippit中构造所有init()javascript,然后以某种方式调用它?还是别的什么?我是一个有点像电梯新手,所以如果我离基地很远,请容忍我;)

我尝试的另一件事是在bootstrap.HTML文件中添加相关的head/script HTML代码,我正在使用它来包围发布的页面,但这也无法让我达到我想要的目的


编辑:有一个(常见的)缓存问题,它阻止我查看指定给lift:suround snippit的bootstrap.html文件的更改。这确实有效。

你读了5页关于电梯的书了吗?。。。当您键入content\u id=main时,您告诉Lift忽略所有内容,除了
的内部部分。因此,要使所有这些都起作用,请将带有脚本的
放在


您是否尝试在
提升:环绕
片段内部使用
标记?这应该会将其中的内容合并到模板的
部分。我忘了在问题中包括这一点,为此我道歉。这个问题实际上有两个方面:1。我不知道默认的lift snippits是如何工作的,它正在取代HTML,因此我不知道在哪里,如果在任何地方覆盖它的行为。2.OpenLayers文档专门使用主体的“onload”属性来调用设置映射的javascript。仍然会在Lift生成的HTML中创建一个新的HTML。我知道。如果您确实阅读了我发布的内容,您应该已经注意到了矛盾:bootstrap.html文件中指定的参数lift:surround中已经包含了相关的s,并且不起作用。这是因为我使用的第三方应用程序提供的是所述html文件的缓存版本,从未反映我刚才描述的更改。因此产生了混乱。