Meteor 为传单JS创建一个按钮;“地图上的潘托点”;在流星地图之外
我已经使用Meteor 为传单JS创建一个按钮;“地图上的潘托点”;在流星地图之外,meteor,leaflet,Meteor,Leaflet,我已经使用传单JS在Meteor中创建了一张地图。问题是,我只能让map.panTo在Template.dynamicmap.rendered区域内工作。但是,这使得您在地图上单击的任何位置都可以平移到该位置 这是已删除id和访问令牌的完整渲染区域 Template.dynamicmap.rendered = function() { var southWest = L.latLng(35.02035919622158, -121.21049926757814); var northEa
传单JS
在Meteor中创建了一张地图。问题是,我只能让map.panTo
在Template.dynamicmap.rendered
区域内工作。但是,这使得您在地图上单击的任何位置都可以平移到该位置
这是已删除id和访问令牌的完整渲染区域
Template.dynamicmap.rendered = function() {
var southWest = L.latLng(35.02035919622158, -121.21049926757814);
var northEast = L.latLng(42.4426214924114, -110.79740478515624);
var mybounds = L.latLngBounds(southWest, northEast);
var map = L.map('map_container',{zoomControl: false, maxBounds: [[37.00035919622158, -119.23049926757814],[40.4626214924114, -112.77740478515624]],}).setView([38.685509760012, -115.86181640625001], 10);
var w = window.innerWidth;
var h = window.innerHeight;
$('#map_container').css({width: w+'px', height: h+'px'});
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
bounds: mybounds,
maxZoom: 10,
minZoom: 9,
}).addTo(map);
L.Icon.Default.imagePath = 'packages/leaflet/images';
var marker = L.marker([38.685509760012, -115.86181640625001]).addTo(map);
map.fitBounds(bounds);
};
因此,我尝试将其放入如下所示的模板事件中,该按钮不在地图区域内,但仍在dynamicmap模板中。但它不起作用
Template.dynamicmap.events({
'click input.goto3':(function() {
map.panTo(L.latLng(38.685509760012, -115.86181640625001));
})
});
我收到错误消息:
“未捕获引用错误:未定义映射”
在控制台中。我一直在想办法解决这个问题,但是运气不好。我希望这里有人能给我指出正确的方向
这是我的HTML模板
<template name="dynamicmap">
<div class="containerbox">
<div class="map_container" id="map_container">
</div>
</div>
<input type="button" class="goto3" value="Go"/>
</template>
您需要将
map
设置为全局变量:
var map = null;
Template.dynamicmap.rendered = function() {
var southWest = L.latLng(35.02035919622158, -121.21049926757814);
var northEast = L.latLng(42.4426214924114, -110.79740478515624);
var mybounds = L.latLngBounds(southWest, northEast);
map = L.map('map_container',{zoomControl: false, ...
...
你能发布更多的代码吗。特别是模板HTML和地图定义。根据这里的信息,我的第一个猜测是您以某种方式构建了代码,使得Template.dynamicmap.events和Template.dynamicmap.rendered在Meteor捆绑它们之后以不同的闭包结束。@MultiMat我已经用模板和包含完整呈现区域的内容更新了代码。谢谢你看这个。非常感谢,就是这样。从渲染区域移除变量并将变量放置在外部是可行的。