var map = new GLMap('map', {
position: { latitude: 1.290270, longitude: 103.851959 },
zoom: 16,
minZoom: 12,
maxZoom: 20,
tilt: 50,
state: false // stores map position/rotation in url
});
var osmb = new OSMBuildings({
baseURL: './OSMBuildings',
minZoom: 15,
maxZoom: 22,
attribution: '© 3D OSM Buildings'
}).addTo(map);
osmb.addMapTiles(
'https://{s}.tiles.mapbox.com/v3/osmbuildings.kbpalbpk/{z}/{x}/{y}.png',
{
attribution: '© Data OpenStreetMap · © Map MapBox'
}
);
osmb.addGeoJSONTiles('https://{s}.data.osmbuildings.org/0.2/uejws863/tile/{z}/{x}/{y}.json');
//***************************************************************************
map.on('pointermove', function (e) {
var id = osmb.getTarget(e.x, e.y);
if (id) {
document.body.style.cursor = 'pointer';
osmb.highlight(id, '#f08000');
} else {
document.body.style.cursor = 'default';
osmb.highlight(null);
}
});
var pointerDownOn = null;
map.on('pointerdown', function (e) {
var id = osmb.getTarget(e.x, e.y);
if (id) {
pointerDownOn = id;
}
});
map.on('pointerup', function (e) {
var id = osmb.getTarget(e.x, e.y);
if (id == pointerDownOn) {
alert(id);
}
pointerDownOn = null;
});
var controlButtons = document.querySelectorAll('.control button');
for (var i = 0; i < controlButtons.length; i++) {
controlButtons[i].addEventListener('click', function(e) {
var button = this;
var parentClassList = button.parentNode.classList;
var direction = button.classList.contains('inc') ? 1 : -1;
var increment;
var property;
if (parentClassList.contains('tilt')) {
property = 'Tilt';
increment = direction*10;
map.setTilt(map.getTilt()+increment);
}
if (parentClassList.contains('rotation')) {
property = 'Rotation';
increment = direction*10;
map.setRotation(map.getRotation()+increment);
}
if (parentClassList.contains('zoom')) {
property = 'Zoom';
increment = direction*1;
map.setZoom(map.getZoom()+increment);
}
});
}