응용 프로그램에 이동이 편리한 상호작용 지도를 추가하는 것이 가장 간단한 방법이다🗺️
7366 단어 webdevprogrammingjavascript
이 단계별 가이드는 전단 지도 설정, 표지 사용, 다단선 및 팝업 창, 사건 처리 등 전단지의 기초 지식을 신속하게 이해할 수 있도록 도와줍니다.
페이지 준비
지도에 대한 코드를 작성하기 전에 페이지에서 다음 준비 단계를 수행해야 합니다.
문서의 시작 부분에 전단 CSS 파일을 포함합니다.
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""/>
<!-- Make sure you put this AFTER Leaflet's CSS --> <script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>
<div id="mapid"></div>
#mapid { height: 180px; }
현재, 당신은 지도를 초기화하고 그것을 조작할 준비가 되어 있습니다.지도 설정
런던 시내 중심의 지도를 멋진 지도 상자와 거리 타일로 그려 봅시다.우선, 지도를 초기화하고 그 보기를 우리가 선택한 지리 좌표와 축소 단계로 설정합니다.
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
기본적으로 (맵을 만들 때 어떤 옵션도 전달하지 않았기 때문에) 맵의 모든 마우스와 터치 상호작용이 활성화되고, 축소와 속성 제어가 있습니다.setView 호출도 맵의 대상을 되돌려줍니다. 대부분의 전단 방법은 현식 값을 되돌려주지 않을 때 이렇게 합니다. 이렇게 하면 jQuery와 같은 방법 링크를 쉽게 할 수 있습니다.
다음은 맵에 추가할 평평한 층을 추가합니다. 이 예에서는 Mapbox Streets 평평한 층을 추가합니다.일반적으로 배열 레이어를 작성하려면 배열 이미지 설정URL template, 속성 텍스트 및 레이어의 최대 축척 레벨이 필요합니다.이 예에서 우리는 Mapbox’s Static Tiles API의 맵박스/streets-v11 타일을 사용할 것이다(맵박스의 타일을 사용하기 위해서는 반드시 사용해야 한다request an access token.이 API는 기본적으로 256x256이 아닌 512x512 배열로 반환되므로 이 점을 명시적으로 지정하고 오프셋 -1의 배율을 조정해야 합니다.
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your.mapbox.access.token'
}).addTo(mymap);
div와 전단지 다음에 모든 코드를 호출해야 합니다.js 포용.이렇게!너는 지금 유효한 전단지 지도를 한 장 가지고 있다.주의해야 할 것은 전단지는 공급업체에 대해 알 수 없으며, 이는 타일 공급업체의 특정한 선택을 강제로 집행하지 않는다는 것을 의미한다.맵박스/satellite-v9로 맵박스/streets-v11을 교체해 보세요. 무슨 일이 일어날지 보세요.또한 전단지에는 공급자에 대한 코드가 한 줄도 포함되어 있지 않기 때문에 필요하면 다른 공급자를 자유롭게 사용할 수 있습니다. (Mapbox를 사용하는 것을 권장하지만, 이것은 보기에 매우 아름답습니다.)
OpenStreetMap 기반의 모든 콘텐츠를 사용할 때 copyright notice 의 요구에 따라 귀인을 해야 한다.대부분의 다른 스티커 공급자(예를 들어 Mapbox, Stamen 또는 Thunderforest도 귀속되어야 한다.꼭 외상할 데서 외상해야 돼.
책 수령: Javascript challenges
마커, 원 및 다각형
타일링 레이어 외에도 맵에 태그, 폴리선, 다각형, 원, 팝업 창 등 다른 내용을 쉽게 추가할 수 있습니다.태그를 추가합니다.
var marker = L.marker([51.5, -0.09]).addTo(mymap);
원을 추가하는 것은 동일한 경우(반지름 미터를 두 번째 매개변수로 지정하는 경우를 제외하고) 객체를 작성할 때 전송 옵션을 마지막 매개변수로 사용하여 원의 모양을 제어할 수 있습니다.var circle = L.circle([51.508, -0.11], {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5,
radius: 500
}).addTo(mymap);
다각형을 추가하는 것은 매우 간단합니다.var polygon = L.polygon([
[51.509, -0.08],
[51.503, -0.06],
[51.51, -0.047]
]).addTo(mymap);
팝업 창 사용
지도의 특정 대상에 특정한 정보를 추가하려면 팝업 창을 사용합니다.전단지에는 매우 편리한 단축키가 있다.
marker.bindPopup("<b>Hello world!</b><br>I am a popup.").openPopup();
circle.bindPopup("I am a circle.");
polygon.bindPopup("I am a polygon.");
우리 아이템을 클릭해 보세요.bindPopup 방법은 지정한 HTML 내용이 있는 팝업 창을 태그에 추가합니다. 대상을 눌렀을 때 팝업 창이 나타나고 OpenPopup 방법 (태그에만 적용) 은 추가 팝업 창을 즉시 열 수 있습니다.또한 팝업 창을 레이어로 사용할 수도 있습니다(객체에 팝업 창을 첨부하는 것만이 아닌 경우).
var popup = L.popup()
.setLatLng([51.5, -0.09])
.setContent("I am a standalone popup.")
.openOn(mymap);
이 곳에서, 우리는addTo가 아닌openOn을 사용합니다. 새 팝업 창을 열 때 이전에 열린 팝업 창을 자동으로 닫을 수 있기 때문에 가용성에 좋습니다.이벤트 처리
전단지에서 사용자가 태그를 누르거나 지도를 축소해서 변경할 때마다 해당하는 대상이 이벤트를 보냅니다. 함수를 사용하여 이벤트를 구독할 수 있습니다.사용자 상호 작용에 반응할 수 있습니다.
function onMapClick(e) {
alert("You clicked the map at " + e.latlng);
}
mymap.on('click', onMapClick);
각 객체에는 고유한 이벤트 세트가 있습니다. 자세한 내용은 을 참조하십시오documentation.listener 함수의 첫 번째 인자는 이벤트 대상입니다. 이벤트에 대한 유용한 정보를 포함합니다.예를 들어 맵 클릭 이벤트 대상(위의 e)은latlng 속성을 가지고 있으며 이 속성은 클릭이 발생하는 위치입니다.경고 대신 팝업 창을 사용하여 예제를 개선합니다.
var popup = L.popup();
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(mymap);
}
mymap.on('click', onMapClick);
Javascript의 추가 리소스를 배우려면 다음과 같이 하십시오.The Complete JavaScript Course 2021: From Zero to Expert
Google Maps JavaScript API — Complete Training
Reference
이 문제에 관하여(응용 프로그램에 이동이 편리한 상호작용 지도를 추가하는 것이 가장 간단한 방법이다🗺️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bricourse/adding-mobile-friendly-interactive-maps-to-your-app-the-easiest-way-33fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)