2016-02-08 2 views
2

Я работаю над простой картой на приборной панели, которая регистрирует события кликов и сохраняет их в коллекции, а также создает маркер в выбранном месте. Однако только локации, которые были нажаты, сохраняются, а маркеры не отображаются. Вот мой код нижеКак добавить координаты osm в мою коллекцию в meteor

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 
     } 
    }); 
}); 

Пожалуйста, кто может помочь

+1

Я удалил свой идентификатор пользователя и маркер доступа, так как они, казалось, чувствительным –

+0

Это вполне возможно, связано с областью где определяется «карта». Попробуйте объявить 'var map = null;' в глобальной области, а затем замените 'var map = L.map..' на' map = L.map..'. –

+0

Спасибо, Кристиан за удаление моего идентификатора пользователя и токена доступа, я не знаю, как это ускользнуло от меня. Попробуем рекомендации. – UncleT

ответ

2

Там, кажется, несколько вещей неправильно, но одна вещь наверняка, что вы на самом деле не устанавливая LAT/LNG для маркеров (они оба «1» в вашем коде). Кроме того, вам еще не нужно find. Документ уже дано вам в целом, так что вы можете просто взять те поля, которые нужно:

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

Я все еще получаю сообщение об ошибке, связанное с тем, что путь к изображению не задан, но, возможно, это проблема, которую вы не увидите или не знаете, как ее исправить. –

+0

Спасибо, христианин, я неправильно ссылался на записи документа. Спасибо за помощь. – UncleT

Смежные вопросы