我在金字塔中使用 mako 模板,它使用 ${} 构造进行变量替换。我还使用 Openlayers 脚本来显示包含要素的 map 。我想使用 Stylemap 来设计我的功能,如下所示:
var symbolizer = OpenLayers.Util.applyDefaults(
{externalGraphic: "images/${thumbnail}.png", pointRadius: 20},
OpenLayers.Feature.Vector.style["default"]);
var styleMap = new OpenLayers.StyleMap({"default": symbolizer, "select": {pointRadius: 30}});
var vectorLayer = new OpenLayers.Layer.Vector("thumbs", {styleMap: styleMap});
...
vectorLayer.features[0].attributes.thumbnail="sight";
vectorLayer.features[1].attributes.thumbnail="bar";
另请参阅The OpenLayers Styles Framework .
我遇到的问题是,mako 将 Openlayers ${} 变量解释为其自己的变量,并且我从服务器收到“NameError:未定义”。我搜索了一段时间但没有找到解决方案。
最佳答案
我发现的最简洁的解决方案是:
- “图片/$${}{缩略图}.png”
为了完整起见,tonio 在帖子中提到的内容是:
- “图片/<%text>${缩略图}.png”
- “图片/${”$“}{缩略图}.png”
关于templates - mako 和 Openlayers 之间的变量替换冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044057/