first commit

This commit is contained in:
2026-02-21 17:11:31 +09:00
commit 18b4338361
4001 changed files with 365464 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<head>
<style type="text/css">
.gm-style .controls {
font-size: 28px; /* this adjusts the size of all the controls */
background-color: white;
box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
box-sizing: border-box;
border-radius: 2px;
cursor: pointer;
font-weight: 300;
height: 1em;
margin: 6px;
text-align: center;
user-select: none;
padding: 2px;
width: 1em;
}
.gm-style .controls button {
border: 0;
background-color: white;
color: rgba(0, 0, 0, 0.6);
}
.gm-style .controls button:hover {
color: rgba(0, 0, 0, 0.9);
}
.gm-style .controls.zoom-control {
display: flex;
flex-direction: column;
height: auto;
}
.gm-style .controls.zoom-control button {
font: 0.85em Arial;
margin: 1px;
padding: 0;
}
html, body{
height: 100%;
margin: 0;
padding: 0;
}
#map_canvas
{
height: 100%;
margin: 0;
padding: 0;
position: relative;
}
</style>
<script type="text/javascript">
function initZoomControl(map)
{
document.querySelector('.zoom-control-in').onclick = function() {
map.setZoom(map.getZoom() + 1);
};
document.querySelector('.zoom-control-out').onclick = function() {
map.setZoom(map.getZoom() - 1);
};
map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(
document.querySelector('.zoom-control'));
}
function gob(e)
{
if(typeof(e)=='object')
return(e);
if(document.getElementById)
return(document.getElementById(e));
return(eval(e))
}
var polyline;
var carMarker;
var lineColor = [];
var color1;
var center_last = null;
function initmap()
{
geocoder = new google.maps.Geocoder();
// LONDON 51.5037856,-0.1169808
// TOKYO 35.681382, 139.766084
// 37.5665373,126.9776357
var latlng = new google.maps.LatLng(37.5665373, 126.9776357);
var mapTypeIds = [];
for(var type in google.maps.MapTypeId) {
mapTypeIds.push(google.maps.MapTypeId[type]);
}
var myOptions = {
zoom: 16,
center: latlng,
zoomControl:true,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_CENTER
},
draggableCursor: 'default',
draggingCursor: 'pointer',
fullscreenControl: false,
scaleControl: true,
scrollwheel: true,
controlSize: 26,
mapTypeControl: true,
mapTypeControlOptions: {
mapTypeIds: [
google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.SATELLITE
]
},
styles: [{featureType: 'poi', stylers: [{visibility: 'off'}]}],
streetViewControl: false};
map = new google.maps.Map(gob('map_canvas'),myOptions);
initZoomControl(map);
initLineColor();
}
function initLineColor() { //14단계
lineColor.push('#7FED11');
lineColor.push('#35ED11');
lineColor.push('#11ED3C');
lineColor.push('#11ED7F');
lineColor.push('#11EDC8');
lineColor.push('#11C8ED');
lineColor.push('#117FED');
lineColor.push('#1135ED');
lineColor.push('#3511ED');
lineColor.push('#7F11ED');
lineColor.push('#C811ED');
lineColor.push('#ED11C8');
lineColor.push('#ED117F');
lineColor.push('#ED1135');
}
function setLatLag(Latitude, Longitude, speed, bFirst, bDistance) {
var center = new google.maps.LatLng(Latitude, Longitude);
var l0 = center_last;
center_last = center;
//주행 궤적 표시
if ((bFirst == 0) && (bDistance == 0)) {
// select line color by speed
var color_num = speed;
if (color_num < 0)
color_num = 0;
else if (color_num > 13)
color_num = 13;
if(color1 == color_num && polyline != null)
{
var path = polyline.getPath();
path.push(center);
//polyline.addLatLng([lat1, long1]);
}
else
{
// draw line
//
polyline = new google.maps.Polyline({
path: [l0,center],
strokeColor: lineColor[color_num],
strokeOpacity: 1.0,
strokeWeight: 4
});
polyline.setMap(map);
}
// 저장
color1 = color_num;
}
else
{
polyline = null;
}
if(!carMarker)
{
carMarker = new google.maps.Marker({ position: center,
map: map,
zIndex: 999,
icon: 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAFS0lEQVRIiZWWaWxVRRTHf29vS2lL2QzG0rTUihRcalWIiEQDRIJUI2GLISTGiApqIiiIkCgRlA+WCNFGlkQQQmhAPtRgYg0Uy1KLgBawQilLwEKhLKWvb7l3xsy8+/C9ex+0/JOTuTPnzPnfc2bmzLiw4cwo+8htlACvAWVAAZBrKdqB08DvwMbBdbLRMTMBLleM0kHcMtJhOxBYAbwKZDq0ybgFVAEf5e+TlxzauxE3P5XUfRZYCxSpjrtXFr7iUrxDRkAgXYu41ka0+S/MpkNSdt2K+zsJvF5wQNb2mPhk2e3PMcA2oL/L5yfj+SlkTn8fz+ChCCGQUuo2LtGW44SrVhPds0NiRpXfNmDKkHq5p0fETaW6GQrsVJG6s/uSO28l6eOmxUhCQaKt53Srf8AXgH6DkF6/7kd+3UZ07VIhb91wW5FPfrBBnrATe+3EpqmbJYpURZo7N0YaudDC1RVvEz15FHf/+3FnZiMB0XEd0XYBT0EJ/rlf4hpdjssQbmP1AolpFFm+pjtSbh9oHM5zwC4gkDV5Nn0XrtaRXF4wFf+IkfSaMgehCBPSLEyDrqpKjMaD+BdVxlK/ZhGiRq0UYWDCsD/l7sSI3Y6IBeWmICDTMsmc9o52YoaCdNbvJn3SLEwpMU0zWYTEM2EGkSN12laNyYmzMH1pQvlSPu08TmKTMpVu39An8OYVEb1xjRvVW3APKkT405yklghfADkgn3DNDkyV/vsGIwoecStfyqedx7nGBnlakR/bvedmjCZ68azWnR01wG7uQPTkElxbK/GuqcYcVIg8clCZ5PUk4j56g/XK0ZFkv7UU6697LK6Z78WykN47PqdPT4hDytgIhfRkb0ExwuUj9/N1ZEx9847knvLZ+BZWYLp8yAcKdbaMUDiuD3WfapMrQN9w67+xycEgwpuGb3gZRjgSP25OFJXAQ48iPH49RxmKK22ImP2VbokNk+NAccfhBvpZGydys4Mzk55GhsPos5QCHcvm4/IHkKEu3KbQxNG/G5Ex4uM9iVjV15e7mk/RXrWRwIjSWJS3gmSMHU/WnPlIfX6tkimF7nd+V0H0txrtQ7g9mD/vxDgX25QXTRrj5zcOj514ZhpNUlIuJf2il1rp/dIUhGHizSsk/cVX8BYWIzN6/S/plvTORuDGNewxXMMfJ7Lua0T7VYKCCx/fZPM1ScBKuc6Zo3JVZ+tmMfCp0meOHcfA5asQ1qWgd2ti1bKJir5r+ScY+/XFJBsNNn/YyVbLfXM87Y6Ip/tASmqlpERKHg6fbqbr6GF8RcWQnZNEpCtUwi1ltDQTXLkMo36/8kGryb55QSoT3KuoW1JG/GP67U/1ADgA5KuOOyubjBfGk/bMGPylZUk/EG6oJ1JXS2RPDbKjQ08OweXPwnxwTHA9cQsBP6Uk3h5I6s4AvrdnxtN/AK6cHJ0a0d6u1zIREsRewVcVUZLuYiAI6B3o2NUi+bhsBsYBs5JsLl0GJXfARcnuCsNBSuJ57o5YYT7wpPU46BZdcH6NYEMKOxVtU7zjKJmK2CZtQrBYLWUKXZKYgug+waYmyQ2bW1UyG6w2NbHajSlku5SsTzGeJOclv1RK9ttcqjX5A5J/xkF8Fyy2HKREJzR/A5sSdF3AMUDdi1ftc+6FuN16P3XaFQJCdfBDC3RYlek8sNd66KfEvRArVAPf2gfPwq4NsTVUZ/YQcMR6a90RjnO85U6WyVCFRT/9O+CfN+DdGD+n1CPEYZ0C9xpxHPNUdBJu1sIXwP4tcGJLD0kVHOe4h6gHVql0TYT1ExMmqdp9N+jrEfgP4vQlN0VUoHYAAAAASUVORK5CYII='
});
}
else
{
carMarker.setPosition(center);
}
map.panTo(center);
}
</script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyA7ujCOO5j5VAx5Ae1_lvakQGmU0-GvArI&region=JP&amp;language=ko&callback=initmap"async defer></script>
</head>
<body>
<div id="map_canvas" style="width: 100%; height: 100%;"></div>
<div style="display:none">
<div class="controls zoom-control">
<button class="zoom-control-in" title="Zoom In">+</button>
<button class="zoom-control-out" title="Zoom Out">-</button>
</div>
<div class="controls maptype-control maptype-control-is-map">
<button class="maptype-control-map"
title="Show road map">Map</button>
<button class="maptype-control-satellite"
title="Show satellite imagery">Satellite</button>
</div>
<div class="controls fullscreen-control">
<button title="Toggle Fullscreen">
<div class="fullscreen-control-icon fullscreen-control-top-left"></div>
<div class="fullscreen-control-icon fullscreen-control-top-right"></div>
<div class="fullscreen-control-icon fullscreen-control-bottom-left"></div>
<div class="fullscreen-control-icon fullscreen-control-bottom-right"></div>
</button>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

View File

@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>지도 생성하기</title>
<style>
html, body {width:100%;height:100%;margin:0;padding:0;}
.map_wrap {position:relative;overflow:hidden;width:100%;height:100%;}
.radius_border{border:1px solid #919191;border-radius:5px;}
.custom_typecontrol {position:absolute;top:10px;right:10px;overflow:hidden;width:130px;height:30px;margin:0;padding:0;z-index:1;font-size:12px;font-family:'Malgun Gothic', '맑은 고딕', sans-serif;}
.custom_typecontrol span {display:block;width:65px;height:30px;float:left;text-align:center;line-height:30px;cursor:pointer;}
.custom_typecontrol .btn {background:#fff;background:linear-gradient(#fff, #e6e6e6);}
.custom_typecontrol .btn:hover {background:#f5f5f5;background:linear-gradient(#f5f5f5,#e3e3e3);}
.custom_typecontrol .btn:active {background:#e6e6e6;background:linear-gradient(#e6e6e6, #fff);}
.custom_typecontrol .selected_btn {color:#fff;background:#425470;background:linear-gradient(#425470, #5b6d8a);}
.custom_typecontrol .selected_btn:hover {color:#fff;}
.custom_zoomcontrol {position:absolute;top:50px;right:10px;width:36px;height:80px;overflow:hidden;z-index:1;background-color:#f5f5f5;}
.custom_zoomcontrol span {display:block;width:36px;height:40px;text-align:center;cursor:pointer;}
.custom_zoomcontrol span img {width:15px;height:15px;padding:12px 0;border:none;}
.custom_zoomcontrol span:first-child{border-bottom:1px solid #bfbfbf;}
</style>
</head>
<body>
<!-- 지도를 표시할 div 입니다 -->
<div class="map_wrap">
<div id="map" style="width:100%;height:100%;position:relative;overflow:hidden;"></div>
<!-- 지도타입 컨트롤 div 입니다 -->
<div class="custom_typecontrol radius_border">
<span id="btnRoadmap" class="selected_btn" onclick="setMapType('roadmap')">지도</span>
<span id="btnSkyview" class="btn" onclick="setMapType('skyview')">스카이뷰</span>
</div>
<!-- 지도 확대, 축소 컨트롤 div 입니다 -->
<div class="custom_zoomcontrol radius_border">
<span onclick="zoomIn()"><img src="https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/ico_plus.png" alt="확대"></span>
<span onclick="zoomOut()"><img src="https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/ico_minus.png" alt="축소"></span>
</div>
</div>
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=c1ae69a037acc4eebfb9f6b038dd44fd"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new kakao.maps.LatLng(37.5548599, 126.9681692), // 지도의 중심좌표
level: 3 // 지도의 확대 레벨
};
// 지도를 표시할 div와 지도 옵션으로 지도를 생성합니다
var map = new kakao.maps.Map(mapContainer, mapOption);
// 지도타입 컨트롤의 지도 또는 스카이뷰 버튼을 클릭하면 호출되어 지도타입을 바꾸는 함수입니다
function setMapType(maptype) {
var roadmapControl = document.getElementById('btnRoadmap');
var skyviewControl = document.getElementById('btnSkyview');
if (maptype === 'roadmap') {
map.setMapTypeId(kakao.maps.MapTypeId.ROADMAP);
roadmapControl.className = 'selected_btn';
skyviewControl.className = 'btn';
} else {
map.setMapTypeId(kakao.maps.MapTypeId.HYBRID);
skyviewControl.className = 'selected_btn';
roadmapControl.className = 'btn';
}
}
// 지도 확대, 축소 컨트롤에서 확대 버튼을 누르면 호출되어 지도를 확대하는 함수입니다
function zoomIn() {
map.setLevel(map.getLevel() - 1);
}
// 지도 확대, 축소 컨트롤에서 축소 버튼을 누르면 호출되어 지도를 확대하는 함수입니다
function zoomOut() {
map.setLevel(map.getLevel() + 1);
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,262 @@
<!DOCTYPE HTML>
<html>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"
integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
crossorigin=""></script>
<!--
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet-src.js" type="text/javascript"></script>
-->
<script type="text/javascript">
// Global
var lat1;
var long1;
var color1;
var markers = null;
var map = null;
// var layerGroups = [];
// var layerGroup = null;
var lineColor = [];
var polyline = null;
var polylines = [];
var icon = L.divIcon({
className: 'embeded_icon',
iconSize: [30, 30],
iconAnchor: [15, 30],
html: '<img src="data:image/png;base64, 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"/>'
});
function moveTest() {
lat1 = 35.681382;
long1 = 139.766084;
var position = L.latLng(lat1, long1);
map.panTo(position);
}
// 차량 이동 (==GoogleMap)
function moveToMap(Latitude, Longitude) {
if(map == null) {
return;
}
var position = L.latLng(Latitude, Longitude); //좌표 이동
if(!map.hasLayer(markers)) { // 지도에서 제거 되었을 경우 추가
map.addLayer(markers);
}
markers.setLatLng( position ); // 차량 표시 이동
map.panTo(position); // 지도 센터 이동
}
// 경로 그리기 (==GoogleMap)
function drawPaths(pathArray)
{
var first = null;
clearPath();
var points = [];
// GPS가 연결, 끊어짐을 반복하여 몇개의 POLYLINE으로 구성 될 수 있음
// [[{lat:y,lng:x}],[{lat:y,lng:x}]]
for(var idx in pathArray) {
var path = pathArray[idx];
for(var idx2 in path) {
var point = path[idx2];
points.push([point["lat"],point["lng"]]);
}
// 각 경로를 추가
var line = L.polyline(points, { color: "#FF0000",
weight: 4,
opacity: 1.0,
smoothFactor: 4.0,
lineCap: "square",
lineJoin: "square",
interactive: false
}
).addTo(map);
polylines.push(line); // 리스트에 추가
}
//alert(points);
}
// 경로 제거 (==GoogleMap)
function clearPath()
{
for(var idx in polylines) {
var line = polylines[idx];
map.removeLayer(line);
}
polylines = [];
clearCarMarker();
}
// 차량표시 제거 (==GoogleMap)
function clearCarMarker()
{
if(map == null) {
return;
}
map.removeLayer(markers);
}
//초기화 처리
function init() {
//초기 위치(서울)WGS84
lat1 = 37.5548599;
long1 = 126.9681692;
var position = L.latLng(lat1, long1);
//초기 줌 수준
var zoom = 16;
//OSM타일·레이어 생성
var tl_osm = new L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{
attribution: 'Map data &copy; <a href="http://openstreetmap.org" target="_blank">OpenStreetMap</a>',
maxZoom: 18,
});
//GoogleMAP레이어 생성
//var tl_gmap = new L.Google('ROADMAP');
//지도 선택용 레이어 배열
var Map_base = {
"OpenStreetMap": tl_osm
};
//맵 객체의 생성(센터 위치, 줌 수준, 지도 층 지정 부)
//layers:[tl_osm],
map = L.map('basicMap',{
center: [lat1, long1],
zoom: zoom,
attributionControl:false
}
);
tl_osm.addTo(map);
L.control.attribution({prefix: '<a href="https://leafletjs.com/" target="_blank">Leaflet</a>'}).addTo(map);
//자기 마커 추가
markers = L.marker(position, { icon: icon });//.addTo(map);
//속도에 따른 궤적의 색의 테이블 생성
initLineColor();
}
//주행 궤적 색 테이블
function initLineColor() { //14단계
lineColor.push('#7FED11');
lineColor.push('#35ED11');
lineColor.push('#11ED3C');
lineColor.push('#11ED7F');
lineColor.push('#11EDC8');
lineColor.push('#11C8ED');
lineColor.push('#117FED');
lineColor.push('#1135ED');
lineColor.push('#3511ED');
lineColor.push('#7F11ED');
lineColor.push('#C811ED');
lineColor.push('#ED11C8');
lineColor.push('#ED117F');
lineColor.push('#ED1135');
}
// API
// 이동하면서 PATH 를 그린다. .. 처음부터 다 그리는 방식이 아님.
function setLatLag(Latitude, Longitude, speed, bFirst, bDistance) {
if(map == null) {
return;
}
var lat0, long0;
lat0 = lat1;
long0 = long1;
lat1 = Latitude;
long1 = Longitude;
//주행 궤적 표시
if ((bFirst == 0) && (bDistance == 0)) {
var points = [
[lat0, long0],
[lat1, long1]
];
// select line color by speed
var color_num = speed;
if (color_num < 0)
color_num = 0;
else if (color_num > 13)
color_num = 13;
if(color1 == color_num && polyline != null)
{
polyline.addLatLng([lat1, long1]);
}
else
{
// draw line
polyline = L.polyline(points,
{
color: lineColor[color_num],
weight: 4,
opacity: 1.0,
smoothFactor: 4.0,
lineCap: "square",
lineJoin: "square",
interactive: false
}
).addTo(map);
}
// 저장
color1 = color_num;
}
else
{
polyline = null;
}
//마커를 이동
var position = L.latLng(lat1, long1);
markers.setLatLng( position );
//맵을 센터링
map.panTo(position);
}
</script>
<head>
<title>OSM, 地理院地図 by leaflet.js</title>
<style type="text/css">
html, body, #basicMap {
width: 100%;
height: 100%;
margin: 0;
}
</style>
</head>
<!--<body onload="init();">-->
<body onload="init();" oncontextmenu="return false;">
<div id="basicMap"></div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More