gpt4 book ai didi

javascript - CartoDB:将信息窗口添加到图层中?

转载 作者:行者123 更新时间:2023-12-03 05:39:41 25 4
gpt4 key购买 nike

我正在尝试添加一个单击并悬停到 CartoDB map 上的信息窗口,following this examplethe documentation ,但我正在挣扎。

这是我的 HTML:

<div id="map"></div>
<script type="infowindow/html" id="infowindow_template">
<span> custom </span>
<div class="cartodb-popup">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<div class="cartodb-popup-content">
<h4>{{content.data.postcode}}</h4>
</div>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
</script>

这是我的 JavaScript:

window.onload = function() {
var options = {
center: [53.2, 0.0],
zoom: 5
};
var map_object = new L.Map('map', options);
var cartocss = '#combined { marker-fill-opacity: 0.9; marker-line-color: #FFF;marker-line-width: 1;marker-line-opacity: 1; marker-placement: point; marker-type: ellipse; marker-width: 10; marker-fill: #FF6600; marker-allow-overlap: true; }';
cartodb.createLayer(map_object, {
user_name: 'myname',
type: 'cartodb',
sublayers: [
{
type: "http",
urlTemplate: "http://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}.png",
subdomains: [ "a", "b", "c" ]
},
{
sql: 'SELECT * FROM combined',
cartocss: cartocss
},
]
})
.addTo(map_object)
.on('done', function(layer) {
var sublayer = layer.getSubLayer(1);
cartodb.vis.Vis.addInfowindow(map_object, sublayer, [ 'postcode'], {
infowindowTemplate: $('#infowindow_template').html(),
templateType: 'mustache'
});
})
.error(function(err) {
console.log("error: " + err);
});
});

这在 map 上显示了我的点,但是当我点击它们时什么也没有发生。控制台中没有错误。我做错了什么?

更新:奇怪的是,如果我删除第一层并将子层选择器更改为 var sublayer = layer.getSubLayer(0),则会出现信息窗口。但我确实需要这两层!

最佳答案

尝试将交互性添加到包含要在信息窗口上显示的字段的第二个子层,然后再次将setInteraction设置为trueHere你有一个有效的例子。

关于javascript - CartoDB:将信息窗口添加到图层中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40591479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com