Листовка JS if заявление для зависшего маркера - PullRequest
0 голосов
/ 12 июля 2020

Я давно сделал карту, используя буклет go, и мне помог друг, с которым я, к сожалению, больше не общаюсь. Он закодировал «калькулятор» для расчета стоимости очков при соединении двух маркеров вместе. (пример здесь: https://www.blackdesertfoundry.com/map> 4-я кнопка на боковой панели для активации калибровки c)

Теперь я добавляю дополнительный уровень маркеров и возникли некоторые трудности, потому что я хочу, чтобы само соединение осталось, и я соединил два маркера вместе, но я не хочу, чтобы линии между ними отображались при наведении курсора и соединении их вместе. Но только для этого одного слоя.

Это часть кода, в которой при наведении курсора на маркер добавляется строка предварительного просмотра.


    this.createCalculationPreview = function(marker) {
            if (self.isInCalculateMode) {
                
                //imported marker graph node
                if(!marker.hasOwnProperty("target")){
                    var key = marker.key;
                }
                //Otherwise assume leaflet-node
                else{
                    var feature = marker.target.feature;
                    var key = feature.properties.type + "_" + feature.properties.identifier.toString();
                }
                
                var selectedMarker = markerGraph.allGraphMarkers[key];
                var isMarkerAdd = false;
                var changedPath = new Array();
    
                if (selectedMarker !== undefined && !selectedMarker.isStartingPoint) {
                    //try to remove marker if it already was skilled before
                    if (selectedMarker.isSkilled) {
                        isMarkerAdd = false;
                        changedPath.push(selectedMarker);
                        //unskill temporarily so that we can calculate which markers would be removed
                        unskillMarker(selectedMarker);
    
                        //check whether the neighbours are still connected to starting points
                        selectedMarker.neighbours.forEach(function(neighbour) {
                            if (neighbour.isSkilled) {
                                if (!isMarkerConnectedToStartingPoint(neighbour, new Array())) {
                                    var markersToUnskill = getSkilledMarkersConnectedToMarker(neighbour, new Array());
    
                                    //unskill the markers because they're not connected to a starting point
                                    markersToUnskill.forEach(function(marker) {
                                        changedPath.push(marker);
                                    });
                                }
                            }
                        });
                        
                        //reskill marker
                        skillMarker(selectedMarker);
    
                    } else {
                        isMarkerAdd = true;
                        changedPath = getShortestPathToTarget(selectedMarker);
                    }
    
                    //refresh polylines
                    var polylinesCoordinates = createPolylinesCoordinatesForChangedMarkers(changedPath);
                    polylinesCoordinates.forEach(function(coordinates) {
                
                        var leafletPolyline = L.polyline(coordinates, {
                            color: isMarkerAdd ? "limegreen" : "red",
                            opacity: 1,
                            smoothFactor: 1,
                            weight: 4
                        });
    
                        leafletPolyline.addTo(map);
                        temporaryPolylines.push(leafletPolyline);
                    });
                };

Я думал о добавлении оператора if, который проверяет текущий наведенный маркер, и если он соответствует feature.properties.type (или принадлежит определенному слою маркеров), он ничего не сделает. Но я просто не могу понять, как проверить текущий зависший маркер. Есть совет?

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