MapBox जे एस - क्लस्टर गिनती परत पर अपवाद

वोट
0

मैं कई क्लस्टर और एक गैर क्लस्टर परतों जो अपवाद witout काम के साथ एक MapBox नक्शा मिला। : लेकिन जब मैं एक क्लस्टर गिनती परत जोड़ने के लिए प्रयास करते हैं, मैं कंसोल में निम्न त्रुटि प्राप्त Uncaught TypeError: अनिर्धारित में 'point_count' के लिए खोज करने के लिए ऑपरेटर 'में' उपयोग नहीं कर सकते

मैं पीछा किया MapBox क्लस्टर ट्यूटोरियल , लेकिन नहीं देख सकते हैं क्यों इस बग को दिखा रहा है।

यहाँ मेरी कोड है:

function setMyApplicationLayers(map, layers) {
    getMyApplicationLayers().forEach(function(layer) {
        map.addLayer(layer);
    })
}

function getMyApplicationLayers() {
    var layers = [getMyApplicationRestaurantItemLayer()];

    ['#ef59a1', '#6ecff6', '#d7df21']
            .forEach(function(color, index) {
        layers.push(getMyApplicationRestaurantGroupLayer(index, color));
    });

    layers.push(getMyApplicationRestaurantCountLayer());

    return layers;
}

function getMyApplicationRestaurantItemLayer() {
    return {
        id: 'unclustered-restaurants',
        type: 'symbol',
        source: 'my-application-restaurants',
        layout: {
            'icon-image': 'marker-15'
        }
    }
}

function getMyApplicationRestaurantGroupLayer(index, color) {
    return {
        id: 'clustered-restaurants-' + index,
        type: 'circle',
        source: 'my-application-restaurants',
        paint: {
            'circle-color': color,
            'circle-radius': 18
        },
        filter: getMyApplicationRestaurantGroupLayerFilter(index)
    }
}

function getMyApplicationRestaurantGroupLayerFilter(index) {
    switch (index) {
        case 0:
            return ['>=', 'point_count', 25]
        case 1:
            return ['all',
                ['>=', 'point_count', 5],
                ['<', 'point_count', 25]]
        case 2:
            return ['all',
                ['>=', 'point_count', 0],
                ['<', 'point_count', 5]]
    }
}

function getMyApplicationRestaurantCountLayer() {
    return {
        id: 'cluster-count',
        type: 'symbol',
        source: 'my-application-restaurants',
        layout: {
            'text-field': '{point_count}',
            'text-font': [
                'DIN Offc Pro Medium',
                'Arial Unicode MS Bold'
            ],
            'text-size': 12
        }
    }
}
22/08/2016 को 13:46
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

यह अपवाद एक गलत GeoJSON संरचना से उपजी है।

प्रदान की JSFiddle में आप शामिल GeoJSON की एक संख्या इस तरह संरचित विशेषताएं:

{
    type: 'Feature',
    geometry: {
        type: 'Point',
        properties: {
            description: 'kuk'
        },
        coordinates: [2.7, 46.95]
    }
}

GeoJSON विनिर्देश का कहना है:

एक सुविधा वस्तु का नाम "गुण" के साथ एक सदस्य होना आवश्यक है। गुण सदस्य का मूल्य एक वस्तु (किसी भी JSON ऑब्जेक्ट या एक JSON शून्य मान) है।

propertiesसदस्य पर होना चाहिए Featureवस्तु, नहीं Pointवस्तु। एक सही तरीके से फ़ॉर्मेट सुविधा कैसा लगेगा

{
    type: 'Feature',
    properties: {
        description: 'kuk'
    },
    geometry: {
        type: 'Point',
        coordinates: [2.7, 46.95]
    }
}

यहाँ त्रुटि के बिना एक संशोधित डेमो है: https://jsfiddle.net/dyhhqLda/2/

24/08/2016 को 16:26
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more