Всплывающее окно для точек, использующих Leaflet.Vectorgrid, ошибка 'lat' of undefined - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть эта ошибка

"leaflet.js: 5, Uncaught TypeError: Невозможно прочитать свойство 'lat' of undefined".

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

Есть идеи, чего не хватает?

Спасибо

var points = new L.featureGroup();

    function round(value, decimals) {
    return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
    }


                var vectorTileOptions_poi = {
                rendererFactory: L.canvas.tile,
                maxZoom: 20,
                zIndex: 100,
                vectorTileLayerStyles: {
                    sliced: function (properties, zoom){
                      var dist = properties.length
                        return {
                                radius:     dist <= 150 ? 1.5:
                                            dist >150 && dist <= 500 ? 2:
                                            dist >500 && dist <= 1000 ? 3:
                                            dist >1000 ? 4: 0,

                                fillColor:  dist <= 150 ? '#ffffff':
                                            dist >150 && dist <= 500 ? '#00cc00':
                                            dist >500 && dist <= 1000 ? '#ffff00':
                                            dist >1000 ? '#ff4d4d': '#66ffff',

                                color:      dist <= 150 ? '#ffffff':
                                            dist >150 && dist <= 500 ? '#00cc00':
                                            dist >500 && dist <= 1000 ? '#ffff00':
                                            dist >1000 ? '#ff4d4d': '#66ffff',
                                fill: true,
                                weight: 1,
                                fillOpacity: 0.8,
                                }
                    }
                },
                interactive: true,
                };

  $.getJSON("/xyz/test/points.geojson", function(json) {                     

    var newPoints =  L.vectorGrid.slicer(json, vectorTileOptions_poi)

    .on('click', function(e) {
    var properties = e.layer.properties;
      L.popup()
        .setContent(
                '<b>Point Data</b>' +
                '<br>Amount: <b>'+ properties.TOTAL + '</b>' +
                '<br>Distance: <b>' + (round(properties.length/1000, 2)) + ' km</b>' +
                '<br>Name: <b>' + properties.name + '</b>' +
                '<br>Zipcode, City: <b>' + properties.zipCode + ', ' + properties.City + '</b>'
                )

        .setLatLng(e.latlng)
        .openOn(map);
        L.DomEvent.stop(e);
    })
     newPoints.addTo(point)
 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...