사형, 비혼출산, 안락사 허용하는 나라가 되었으면.. 인간세상이 되었으면
인간을 인간답게, 인간이 아닌자에겐 생의 마감을.
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>
<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
인증키는 둘다 안받아도 사용할수 있는 방법이 있긴하지만... 이런데 올릴만한 내용은 아니니.. 패스
와.. 한참 찾았네..
멋지다. 굳.
viewportId 는 일반적으로 1
// convert paper to model
function fn_convert_position(point){
var matrix = viewer.model.getPageToModelTransform(1) //vpId : viewportId
return new THREE.Vector3(point.x, point.y, 0).applyMatrix4(matrix);
}
// convert model to paper
function fn_inverse_position(point){
var matrix = new THREE.Matrix4().getInverse(viewer.model.getPageToModelTransform(1)) //vpId : viewportId
return new THREE.Vector3( point.x, point.y, 0 ).applyMatrix4(matrix)
}
// example
r1 = fn_convert_position(new THREE.Vector3( 10, 10, 0 ))
// result : X.Vector3{x: 236000.85091722145, y: 325217.9908402892, z: 0}
r2 = fn_inverse_position(new THREE.Vector3( 236000, 325217, 0 ))
// result : X.Vector3{x: 10, y: 10, z: 0}
인생... 세상의 나약하고 볼품없는 인생을 나, 배우자, 부모, 그리고 자식들에게 여과없이 보여주고 인정해가는 과정.. 인간사 참 쓸쓸하다. 조금이라도 더 나은 세상, 울타리 만들어 보려고 발버둥치는 우리들. 이게 소시민들의 역사 아니겠나.
발버둥치치 않으면 쓰레기가 되어버리는 현대사회. 그게안되면 척하기위해 스스로를 거짓 위선으로 감싸지 않으면 쓰레기가 되는 현대사회. 실체없는 미디어에 정복된 정의로움에 목매여 뒤죽박죽 혼종 사상이 지배하고 있는 현대사회.
솔직해지고 선을지키면 되는데. 그 경계선을 지들맘대로 바꿔버리는 정치세력. 가장 쓸쓸할 우리네 아버지 세대도 저물면.. 어떤세상이 올까. 잔인한 세상이 아니었으면..
![]() |
| 아부지 술 좀 줄이세요. |
인생에 굵직굵직한 일들이 참 많았던 21C 10년대. 가 끝나가네. 나의 30대도 끝나가고.
뭐 1년은 더 남았지만.. 친구들이 40이니...
할머니도 가시고.. 고모 할머니도 가시고..
그래도 평범하게 살수 있었던거 같아 다행이다.
싸우기도 많이 싸웠지만 내편도 만나고 내 핏줄도 생기고 집한칸 마련하고 사무실 마련하고.
다시 누군가와 가정을 꾸리라하면 못할거 같다. 서로 이해하고 인정해가는 과정이 너무 힘들다.
그 과정이 지나면 넉넉한 사고방식의 여유가 찾아오긴 하지만..
평생동반자 할꺼면 서로 편한게 제일인듯
지나온 30대... 몸이든 맘이든 참 넉넉해지긴 했다. 나름 만족한다.
어느날엔가 아쉬움이 가득했던 분께 연락받아 일도 같이 하고 있고..
연락은 거의 않하지만... 너무 정치성향이.....
그래도 항상 마음 한켠에 네임벨류가 있는 회사의 구성원이 되지 못한건 아쉬움으로 남아있다..
이젠 가지도 못해. 나이들어 차피 가기도 힘들고.
간다해도 어설프게 월급받아봤자 지금의 방식으로 버는 수입보다 덜하고..
생각해보면 객관적으로 이름있는 개발회사 직원들 보다..
금전을 더 요구하지도 않았을거고 시간적으로나 퀄리티는 더 좋은 결과물을 낼 수 있는데..
이걸 표현을 하지도 못했고 하는 방법도 몰랐던거 같다.
지금도 모르지.. 일단 한번 경험하도록 해봐야......ㅜ.ㅜ
쨌든 OK. Ordinary 10 years!!
40의 시작을 오너로 시작할 수 있는 기반은 만들었다.
감사합니다.
직원으로써의 20대
하청으로써의 30대
수장으로써의 40대를 보내고 싶지만..
프리랜서 하라면 하고. 육아에 전념하라면 하고.
이래저래 깜깜한 앞날은 보이지 않는게 무척이나 고맙고 다행이다.
60대에는 퀀텀점프된 인공지능 하나 만들어야지?? 꼬맹이와함께^^
/** * database.base 매핑 */ public @interface BaseMapper { }
/** * database.base 매핑 */ @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER }) public @interface BaseMapper { }
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
/.idea
/app/release
/node_modules
------------------------------------------------------------------------------------------------------------------------------------------------------------------------findViewById(R.id.btn_kakao).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new KakaoLoginControl([해당 Activity]).call(); } });