Skip to content

mapboxgl.GeoJSONSource is not a constructor #119

@CodeLords

Description

@CodeLords

I want to move a marker in particular direction and got this error. Source Below mentioned.

<title></title> <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.12.0/mapbox-gl.js'></script> <style> body { margin:0; padding:0; } #map { position:absolute; top:0; bottom:0; width:100%; } </style>
<script>

mapboxgl.accessToken = 'ApiKey';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/satellite-hybrid-v8',
center: [-86.155231, 39.768458],
zoom: 6
});

var direction = 0, manual = false, speed = 0.1;

// create a GeoJSON point to serve as a starting point
var point = {
"type": "Point",
"coordinates": [-86.155231, 39.768458]
};

// add the GeoJSON above to a new vector tile source
var source = new mapboxgl.GeoJSONSource({
data: point
});

function setPosition() {
point.coordinates[0] += speed * Math.sin(direction) / 100;
point.coordinates[1] += speed * Math.cos(direction) / 100;
source.setData(point);

map.setLayoutProperty('drone', 'icon', direction * (180 / Math.PI));

if (!manual && Math.random() > 0.95) {
    direction += (Math.random() - 0.5) / 2;
}

map.setCenter(point.coordinates);

}

map.on('style.load', function () {
map.addSource('drone', source);

map.addLayer({
    "id": "drone-glow-strong",
    "type": "circle",
    "source": "drone",
    "paint": {
        "circle-radius": 18,
        "circle-color": "#00e673",
        "circle-opacity": .8
    }
});

map.addLayer({
    "id": "drone-glow",
    "type": "circle",
    "source": "drone",
    "paint": {
        "circle-radius": 40,
        "circle-color": "#99ffcc",
        "circle-opacity": 0.4
    }
});

// Full icon list: https://www.mapbox.com/maki
map.addLayer({
    "id": "drone",
    "type": "symbol",
    "source": "drone",
    "layout": {
        "icon-image": "car-24",  // try: 'car-24', 'airport-24', 'zoo-24'
    }
});

window.setInterval(setPosition, 10);

});

// Add manual control of the airplane with left and right arrow keys, just because
document.body.addEventListener('keydown', function (e) {
if (e.which == 37) { // left
direction -= 0.1;
manual = true;
}
if (e.which == 39) { // right
direction += 0.1;
manual = true;
}
if (e.which == 38) { // faster
speed = Math.min(speed + 0.1, 10);
manual = true;
e.preventDefault();
}
if (e.which == 40) { // slower
speed = Math.max(speed - 0.1, 0);
manual = true;
e.preventDefault();
}
}, true);
</script>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions