如何在流星中将 osm 坐标添加到我的 Collection

How to Add osm Coordinates to my Collection in meteor

我正在仪表板上制作一个简单的地图,它会注册点击事件并将位置保存到 collection 中,还会在点击的位置上创建一个标记。但是,只有单击的位置会被保存,标记不会显示。下面是我的代码

Template.osm.onRendered(function(){
    var map = L.map('osm-container', {
        center: [6.54, 3.33],
        zoom: 13
    });
    var markers = {};
    var id;

    L.tileLayer('http://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
        attribution: 'Imagery from <a href="http://mapbox.com/about/maps/">MapBox</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
        subdomains: 'abcd',
        id: 'REMOVED',
        accessToken: 'REMOVED'
    }).addTo(map);
    var coordinates = {};
    map.on('click', function(event) {
        var randm = Math.ceil(10000*Math.random());
        var entry = Coordinates.insert({ 
              lat: event.latlng.lat,
              lng: event.latlng.lng,
              seq: randm });
        id = entry;
    });


    Coordinates.find().observe({
        added: function (document) {
            L.marker({ lat: Coordinates.find({_id:id},{lat:1, _id:0}), 
                       lng: Coordinates.find({_id:id},{lng:1,_id:0}) },{
                clickable : true,
                draggable: true,
                keyboard: true,
                riseOnHover: true
            }).addTo(map);

            map.on('dragend', function(event) {
                todo
            });

            // markers[id] = mark;
        },
        changed: function(newDocument, oldDocument) {
            // todo;
        },
        removed: function (oldDocument) {
            // todo 
        }
    });
});

谁能帮忙

似乎有很多错误,但可以肯定的是,您实际上并没有为标记设置 lat/lng(它们在您的代码中都是“1”)。另外,您不需要再 find 一次。文档已经全部给你了,你只需要取你需要的字段即可:

Coordinates.find().observe({
    added: function (document) {
        L.marker({ lat: document.lat,
                   lng: document.lng, }, {
              ...