我有一个简单的电梯“应用程序”,它试图静态显示 OpenLayers 地图,以期待彗星根据一些服务器端逻辑动态地向地图添加标记。无论如何,仅仅显示地图被证明是一项艰巨的任务。
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>
我显然很难理解在 lift:surround 产生的头和身体元素是从哪里来的。尽管静态 HTML 看起来不错,但相关的脚本元素已经消失,似乎无法调用 init() 来显示地图。
我是否必须以某种方式覆盖环绕片段,完全避免使用它,或者在片段中构造所有 init() javascript,然后以某种方式调用它?或者是其他东西?我是一个电梯新手,所以如果我离基地很远,请多多包涵;)
我尝试的另一件事是在我用来围绕已发布页面的 bootstrap.html 文件中添加相关的头/脚本 HTML 代码,但这也无法让我到达我想要的位置。
编辑:有一个(通常的)缓存问题阻止我看到指定给 lift:suround snippit 的 bootstrap.html 文件的更改。这确实奏效了。