2022년 4월 2일 토요일

deck.gl with pure javascript, Mapbox GL JS, Geojson

Mapbox + Geojson + deck.gl

군더더기 없이.  잡다한 스크립트 라이브러리를 사용하는건.. 너무 싫다. 늙어서 그런갑다..

GeoJsonLayer 옵션은 여기서

https://deck.gl/docs/api-reference/layers/geojson-layer


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Mapbox JS & deck.gl with pure javascript</title>
<script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>
<link href="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css" rel="stylesheet">
<script src="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.js"></script>
<style>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script>
mapboxgl.accessToken = '<MAPBOX KEY>'
window.map = new mapboxgl.Map({
container: "map",
style: "https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json",
center: [-100, 38],
zoom: 6,
maxZoom: 19,
})
new deck.Deck({
initialViewState: {
longitude: -100,
latitude: 38,
zoom: 4
},
onViewStateChange: function(e){
var viewState = e.viewState
window.map.jumpTo({
center: [viewState.longitude, viewState.latitude],
zoom: viewState.zoom,
bearing: viewState.bearing,
pitch: viewState.pitch
});
},
controller: true,
layers: [
new deck.GeoJsonLayer({
id: 'geojson',
data: 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/examples/highway/roads.json',
lineWidthMinPixels: 2,
getLineColor: [160, 0, 180, 200],
})
]
})
</script>
</body>
</html>



 

2022년 3월 5일 토요일

Mapbox GL JS + VWORLD Tile Map

<link href="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css" rel="stylesheet">
<script src="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.js"></script>
<script src="https://map.vworld.kr/js/apis.do?type=Base&apiKey=<VWORLD KEY>"></script>

<div id="map"></div>
<script>
mapboxgl.accessToken = '<MAPBOX KEY>';
window.map = new mapboxgl.Map({
container: 'map',
style: {
version: 8,
sources: {
Satellite: {
type: 'raster',
tiles: ['http://xdworld.vworld.kr:8080/2d/Satellite/service/{z}/{x}/{y}.jpeg'],
bounds: [119, 28, 135, 48]
},
Hybrid: {
type: 'raster',
tiles: ['http://xdworld.vworld.kr:8080/2d/Hybrid/service/{z}/{x}/{y}.png'],
bounds: [119, 28, 135, 48]
}
},
layers: [{
id: 'Satellite',
type: 'raster',
source: 'Satellite',
},{
id: 'Hybrid',
type: 'raster',
source: 'Hybrid',
}],
},
center: [127, 38],
zoom: 8,
minZoom: 6,
maxZoom: 19,
projection: {
name: 'equirectangular',
}
});
</script>


MAPBOX

Openlayers 와는 또 다른 매력이.. 


MAPBOX : https://www.mapbox.com/mapbox-gljs

VWORLD : https://www.vworld.kr/dev/v4dv_baseguide_s001.do


인증키는 둘다 안받아도 사용할수 있는 방법이 있긴하지만... 이런데 올릴만한 내용은 아니니.. 패스