Как перерисовать маркеры в листовке? - PullRequest
1 голос
/ 08 ноября 2019

В настоящее время я работаю над проектом, использующим angular, mongodb nodejs и листовку.

Я пытался реализовать различные методы для вызова новых маркеров, но мне это не удалось. Мое намерение состоит в том, чтобы при увеличении масштаба или перемещении карты обнаруживать новые значения в положении карты (coordinatesPub) и отправлять эти значения в API для возврата массивов (публикаций), расположенных в пределах значений coordinatespub (каждая публикация имеетположение по долготе и широте в дополнение к другим значениям) Однако я не могу отправить новые значения coordinatespub в API, когда выполняю moovend и удаляю предыдущие.

Я искренне имеюмало знаний (я начинаю с этого), я был с этой проблемой в течение нескольких дней, не имея возможности ее решить. Я хотел бы, чтобы кто-то мог помочь мне, я был бы очень благодаренty

CLIENT

ngOnInit(){
  var map2 = new L.Map('map2', { 'center': [20.291, -102.191], 'zoom': 5});
  L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '© OpenStreetMap contributors'}).addTo(map2);

  var west = map2.getBounds().getWest();
  var east = map2.getBounds().getEast();
  var south = map2.getBounds().getSouth();
  var north = map2.getBounds().getNorth();       
  var coordinatesPub = {west, east, north, south};

  map2.on('moveend', function() { 
    var west = map2.getBounds().getWest();
    var east = map2.getBounds().getEast();
    var south = map2.getBounds().getSouth();
    var north = map2.getBounds().getNorth();
    var coordinatesPub = {west, east, north, south};       
  });

  this._publicationService.getPublicationMap(coordinatesPub).subscribe(
    response => {
      if(response.publications){
        this.publications = response.publications;           
        this.publications.forEach((publication) => {
          // create popup contents
          var customPopup = '<div>' +  '<img src =' + this.url + 'get-image-pub/' + publication.file +  '/>' +  '</div>' + '<p>' + publication.titulo + '</p>' + '<p>'  + "$ " + publication.price + '</p>' ;
          // specify popup options 
          var customOptions = {
            'maxWidth': '200',
            'minWidth': '130',
            'className' : 'popupCustom' }

          var marker = L.marker([publication.latitude, publication.longitude],  {draggable: false
          }).addTo(map2).bindPopup(customPopup,customOptions);
        });
      }else{
      this.status = 'error';
      }
    },
    error => {
      console.log(<any>error);
    }  
  );

}

API

function getPublicationMap(req, res){

        var params = req.body;

       Publication.find({ $and: [{latitude: {$gt: params.south}}, {latitude: {$lt: params.north}}, {longitude: {$gt: params.west}}, {longitude: {$lt: params.east}}   ]}, (err, publications) =>{
            if(err) return res.status(500).send({message: 'Error al devolver la publicacion'});
            if(!publications) return res.status(404).send({message: 'No existen publicaciones'});

            return res.status(200).send({publications});
        });
    }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...