forked from qwerty/tupali
239 lines
6.6 KiB
PHP
239 lines
6.6 KiB
PHP
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset='utf-8' />
|
|
<title>Tupale.co</title>
|
|
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
|
|
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.7.0/mapbox-gl.js'></script>
|
|
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.7.0/mapbox-gl.css' rel='stylesheet' />
|
|
<link href='https://www.mapbox.com/base/latest/base.css' rel='stylesheet' />
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#map {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.map-overlay {
|
|
position: absolute;
|
|
width: 180px;
|
|
top: 0;
|
|
left: 10px;
|
|
padding: 10px;
|
|
margin-left: 5px;
|
|
margin-top: 2px;
|
|
margin-bottom: 2px;
|
|
margin-right: 5px;
|
|
z-index: 1;
|
|
}
|
|
|
|
.map-overlay .map-overlay-inner {
|
|
background: rgba(0, 0, 0, .8);
|
|
color: #fff;
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.10);
|
|
border-radius: 3px;
|
|
padding: 10px;
|
|
margin-bottom: 10px;
|
|
z-index: 1;
|
|
}
|
|
|
|
.map-overlay-inner fieldset {
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0 0 10px;
|
|
z-index: 1;
|
|
}
|
|
/* Dark attribution */
|
|
|
|
.mapboxgl-ctrl.mapboxgl-ctrl-attrib {
|
|
background: rgba(0, 0, 0, .8);
|
|
}
|
|
|
|
.mapboxgl-ctrl.mapboxgl-ctrl-attrib a {
|
|
color: #fff;
|
|
}
|
|
/* Dark popup */
|
|
|
|
|
|
|
|
.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,
|
|
.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,
|
|
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {
|
|
border-top-color: #202020;
|
|
}
|
|
|
|
.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip,
|
|
.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip,
|
|
.mapboxgl-popup-anchor-top .mapboxgl-popup-tip {
|
|
border-bottom-color: #202020;
|
|
}
|
|
|
|
.mapboxgl-popup-anchor-right .mapboxgl-popup-tip {
|
|
border-left-color: #202020;
|
|
}
|
|
|
|
.mapboxgl-popup-anchor-left .mapboxgl-popup-tip {
|
|
border-right-color: #202020;
|
|
}
|
|
|
|
#popup-menu ul,
|
|
#menu li {
|
|
margin: 0;
|
|
padding: 0;
|
|
z-index: 100;
|
|
}
|
|
|
|
.mapboxgl-ctrl-group {
|
|
-webkit-filter: invert(100%);
|
|
}
|
|
|
|
.loader {
|
|
margin: -10px 0 0 -250px;
|
|
height: 100px;
|
|
width: 20%;
|
|
position: fixed;
|
|
text-align: center;
|
|
padding: 1em;
|
|
top: 50%;
|
|
left: 50%;
|
|
margin: 0 auto 1em;
|
|
z-index: 9999;
|
|
}
|
|
/*
|
|
Set the color of the icon
|
|
*/
|
|
|
|
svg path,
|
|
svg rect {
|
|
fill: #FF6700;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id='map'></div>
|
|
<div class='map-overlay top'>
|
|
<div class='map-overlay-inner'>
|
|
</div>
|
|
</div>
|
|
<div class="loader loader--style1" title="0" id="loader">
|
|
<svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
|
|
<path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
|
|
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
|
|
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
|
|
<path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
|
|
C22.32,8.481,24.301,9.057,26.013,10.047z">
|
|
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20" dur="0.5s" repeatCount="indefinite" />
|
|
</path>
|
|
</svg>
|
|
</div>
|
|
<script>
|
|
mapboxgl.accessToken = 'pk.eyJ1IjoiaHVtYW5vIiwiYSI6IlgyRTFNdFEifQ.OmQBXmcVg_zq-vMpr8P5vQ';
|
|
/* var bounds = [
|
|
[-75.04728500751165, 39.68392799015035],
|
|
[-72.91058699000139, 41.87764500765852]
|
|
];*/
|
|
var map = new mapboxgl.Map({
|
|
container: 'map',
|
|
style: 'mapbox://styles/mapbox/dark-v9',
|
|
center: [-72, 4],
|
|
zoom: 5,
|
|
//minZoom: 5,
|
|
//maxZoom: 5,
|
|
pitch: 40,
|
|
// maxBounds: bounds
|
|
});
|
|
|
|
function init() {
|
|
map.addSource('LosDatos', {
|
|
type: 'geojson',
|
|
data: './archivos/74.geojson',
|
|
//data: 'http://localhost/tupali/milfs/geojson.php?id=74',
|
|
buffer: 0,
|
|
maxzoom: 3
|
|
});
|
|
|
|
|
|
|
|
if (window.location.search.indexOf('embed') !== -1) map.scrollZoom.disable();
|
|
var url= ['get', 'title'];
|
|
map.loadImage(
|
|
|
|
// 'https://upload.wikimedia.org/wikipedia/commons/7/7c/201408_cat.png',
|
|
url,
|
|
function (error, image) {
|
|
if (error) throw error;
|
|
map.addImage('imagenIcono', image);
|
|
});
|
|
map.addLayer(
|
|
{
|
|
'id': 'datos-1',
|
|
'type': 'symbol',
|
|
'source': 'LosDatos',
|
|
'layout': {
|
|
// get the icon name from the source's "icon" property
|
|
// concatenate the name to get an icon from the style's sprite sheet
|
|
'icon-image': 'imagenIcono',
|
|
// get the title name from the source's "title" property
|
|
'text-field': ['get', 'title'],
|
|
'text-font': ['Open Sans Semibold', 'Arial Unicode MS Bold'],
|
|
'text-offset': [0, 0.6],
|
|
'text-anchor': 'top'
|
|
}
|
|
}
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
map.once('style.load', function(e) {
|
|
init();
|
|
map.addControl(new mapboxgl.NavigationControl());
|
|
map.on('click', function(e) {
|
|
var features = map.queryRenderedFeatures(e.point, {
|
|
layers: ['datos-1']
|
|
});
|
|
if (!features.length) {
|
|
return;
|
|
}
|
|
var feature = features[0];
|
|
|
|
var popup = new mapboxgl.Popup()
|
|
.setLngLat(map.unproject(e.point))
|
|
.setHTML(feature.properties.description )
|
|
.addTo(map);
|
|
});
|
|
|
|
//Hide loading bar once tiles from geojson are loaded
|
|
map.on('data', function(e) {
|
|
if (e.dataType === 'source' && e.sourceId === 'LosDatos') {
|
|
document.getElementById("loader").style.visibility = "hidden";
|
|
}
|
|
})
|
|
|
|
// Use the same approach as above to indicate that the symbols are clickable
|
|
// by changing the cursor style to 'pointer'.
|
|
map.on('mousemove', function(e) {
|
|
var features = map.queryRenderedFeatures(e.point, {
|
|
layers: ['datos-1']
|
|
});
|
|
map.getCanvas().style.cursor = (features.length) ? 'pointer' : '';
|
|
});
|
|
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|