Leaflet: HTTPS/SSL을 ν†΅ν•œ 슀트리밍 전단지 타일

에 λ§Œλ“  2015λ…„ 01μ›” 30일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: Leaflet/Leaflet

μ•ˆλ…•ν•˜μ„Έμš”,

https λ³΄μ•ˆ 연결을 톡해 전단지 맡 타일을 μ œκ³΅ν•  수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. https μ›Ή νŽ˜μ΄μ§€(SSL μ‚¬μš©) λ‚΄μ—μ„œ 전단지 맡을 λ§Œλ“€λ €κ³  ν•˜λŠ”λ° httpλ₯Ό 톡해 전단지 타일을 λ‘œλ“œν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ³΄μ•ˆ 연결을 톡해 전단지 타일 λ‘œλ“œλ₯Ό μ§€μ›ν•©λ‹ˆκΉŒ?

감사 ν•΄μš”!

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@F1LT3R 덕뢄에 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 가지고 μžˆμ—ˆλ‹€

http://{s}.tile.osm.org/{z}/{x}/{y}.png

SSL λ¬Έμ œκ°€ μžˆμ—ˆκ³  λ‹€μŒμœΌλ‘œ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png

그리고 μ™„λ£Œ!

κ°μ‚¬ν•©λ‹ˆλ‹€

λͺ¨λ“  16 λŒ“κΈ€

Leaflet은 자체 타일을 μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 타일에 μ–΄λ–€ μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

예: OpenStreetMap을 μ‚¬μš©ν•˜λŠ” 경우:

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

타일 β€‹β€‹λ¬Έμžμ—΄μ— s λ₯Ό μΆ”κ°€ν•˜μ—¬ HTTPSλ₯Ό μ‚¬μš©ν•˜λ„λ‘ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

λΉ λ₯Έ λ‹΅λ³€ κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λŠ” 이전에 μ‚¬μš©ν•˜κ³  μžˆμ—ˆλ‹€:

 var url = 'http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpeg',
     attr ='Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> &mdash; Map data {attribution.OpenStreetMap}',
     service = new L.TileLayer(url, {subdomains:"1234",attribution: attr});
     map.addLayer(service);

λ‚˜λŠ” λ‹€μŒμ„ μ‹œλ„ν–ˆλ‹€:

 L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {
     attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
 }).addTo(map);

λ‚΄ μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ osm 타일 μ„œλ²„μ—μ„œ 타일을 λ‘œλ“œν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” λ°›μ•˜λ‹€:

 GET https://{s}.tile.osm.org/{x}/{y}/{z}.png net::ERR_INSECURE_RESPONSE 

크둬의 였λ₯˜. λ‚΄κ°€ 이것을 μ‹€ν–‰ν•˜λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ—λŠ” 자체 SSL μΈμ¦μ„œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‚΄ HTTPS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 타일을 μ–΄λ–»κ²Œ λ‘œλ“œν•©λ‹ˆκΉŒ?

κ°μ‚¬ν•©λ‹ˆλ‹€!

이것은 전단지 λ¬Έμ œκ°€ μ•„λ‹™λ‹ˆλ‹€. URL둜 이미지λ₯Ό λ‘œλ“œν•©λ‹ˆλ‹€. λ³΄μ•ˆ 및 μΈμ¦μ„œλŠ” μ„œλ²„/μ‘μš© λ‘œμ§μž…λ‹ˆλ‹€.

μ§€μ›νŒ€μ—μ„œ 였늘 μ΄λ©”μΌλ‘œ "예, tile.openstreetmap.orgμ—μ„œ httpsλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μΆ•μ•½λœ 도메인에 λŒ€ν•œ μΈμ¦μ„œκ°€ μ—†μŠ΅λ‹ˆλ‹€."라고 λ§ν–ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆ λ‚˜λ₯Ό μœ„ν•΄ μΌν•©λ‹ˆλ‹€!

μ—¬μ „νžˆ νš¨κ³Όκ°€ μžˆμŠ΅λ‹ˆκΉŒ? https://tile.openstreetmap.org λ₯Ό μ‚¬μš©ν•˜κ³  μ•ˆμ „ν•˜μ§€ μ•Šμ€ μ—°κ²° κ²½κ³ λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œμ΄ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Sammaye:

URLμ—μ„œ osm μ—μ„œ openstreetmap 둜 λ³€κ²½ν•˜κ³  https://a.tile λ₯Ό μΆ”κ°€ν•˜λ©΄ μ €μ—κ²Œ 도움이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

https://a.tile.openstreetmap.org/{z}/{x}/{y}.png

이전에 얻은 였λ₯˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

screen shot 2015-07-29 at 3 07 40 pm

λ‚˜λŠ” κ²°κ΅­ λ‹€λ₯Έ κ³΅κΈ‰μžλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€(mapquest):

            $('#MapModal').on('shown.bs.modal', function (e) {

                var data = $(e.relatedTarget).data();
                var map = L.map('modalMap').setView([data.lat, data.long], 9);

                L.tileLayer('https://otile2-s.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
                    maxZoom: 18,
                    attribution: 'Map data &copy; <a href=\"http://openstreetmap.org\">OpenStreetMap</a> contributors, ' +
                        '<a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +
                        'Imagery &copy; <a href=\"http://mapquest.com\">Mapquest</a>',
                    id: 'examples.map-i875mjb7'
                }).addTo(map);
            });

ESRI λ ˆμ΄μ–΄λŠ” https://esri.github.io/esri-leaflet/examples/basemap-with-labels.html μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

@F1LT3R 덕뢄에 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 가지고 μžˆμ—ˆλ‹€

http://{s}.tile.osm.org/{z}/{x}/{y}.png

SSL λ¬Έμ œκ°€ μžˆμ—ˆκ³  λ‹€μŒμœΌλ‘œ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png

그리고 μ™„λ£Œ!

κ°μ‚¬ν•©λ‹ˆλ‹€

μ—„μ²­λ‚œ! 도움이 될 수 μžˆμ–΄ κΈ°μ©λ‹ˆλ‹€.

2015λ…„ 11μ›” 10일 ν™”μš”μΌ μ˜€μ „ 3:51, Ayoze Barrera [email protected]
썼닀:

@F1LT3R https://github.com/F1LT3R 덕뢄에 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 가지고 μžˆμ—ˆλ‹€

http://{s}.tile.osm.org/{z}/{x}/{y}.png http://tile.osm.org/%7Bz%7D/%7Bx%7D/%7By% 7D.png

SSL λ¬Έμ œκ°€ μžˆμ—ˆκ³  λ‹€μŒμœΌλ‘œ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By% 7D.png

그리고 μ™„λ£Œ!

κ°μ‚¬ν•©λ‹ˆλ‹€

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/Leaflet/Leaflet/issues/3186#issuecomment -155360520.

https μ„œλ²„μ— λŒ€ν•œ 힌트λ₯Ό μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λŠ” μ‹€μ œλ‘œ OSM이 HTTPSλ₯Ό μ „ν˜€ μ§€μ›ν•˜μ§€ μ•Šμ„ 것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

'http://{s}.tile.osm.org/{ λŒ€μ‹  'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'둜 μ „ν™˜ν–ˆμŠ΅λ‹ˆλ‹€. z}/{x}/{y}.png'. κ·ΈλŸ¬λ‚˜ httpsλŠ” λΉ„λ³΄μ•ˆμ— λΉ„ν•΄ 맀우 λŠλ¦½λ‹ˆλ‹€. 타일은 λΉ„λ³΄μ•ˆ νƒ€μΌμ—μ„œ 훨씬 λΉ λ₯΄κ²Œ λ‘œλ“œλ©λ‹ˆλ‹€.

λ‹€λ₯Έ μ‚¬λžŒλ„ 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@pango89λ‹˜ , μ•ˆλ…•ν•˜μ„Έμš”, Leaflet이 μœ μš©ν•˜λ‹€λŠ” μ†Œμ‹μ„ λ“€μœΌλ‹ˆ 정말 κΈ°μ©λ‹ˆλ‹€!

κ·ΈλŸ¬λ‚˜ 이 이슈 νŠΈλž˜μ»€λŠ” 버그λ₯Ό λ³΄κ³ ν•˜κ³  Leaflet 라이브러리 자체의 μƒˆλ‘œμš΄ κΈ°λŠ₯에 λŒ€ν•΄ λ…Όμ˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
Leaflet μ‚¬μš©μ— λŒ€ν•œ μ§ˆλ¬Έμ€ Stack Overflow λ˜λŠ” GIS Stack Exchange λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.
특히 κ·€ν•˜μ˜ λ¬Έμ œκ°€ νŠΉμ • 타일 μ„œλ²„(μ „μ μœΌλ‘œ Leaflet 외뢀에 있음)에 κ΄€ν•œ κ²ƒμ΄λΌλŠ” 사싀을 κ³ λ €ν•  λ•Œ λ‹€λ₯Έ μž₯μ†Œλ„ 적합할 수 μžˆμŠ΅λ‹ˆλ‹€.

이것이 Leaflet의 버그라고 _정말_ ν™•μ‹ ν•œλ‹€λ©΄, 였래되고 λ‹«νžŒ μŠ€λ ˆλ“œμ— λŒ“κΈ€μ„ 달지 말고 μƒˆ 문제λ₯Ό μ—¬μ‹­μ‹œμ˜€.

μ•ˆλ…•ν•˜μ„Έμš” @gybs λ‹˜
λ‹΅μž₯ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.
μ—‰λš±ν•œ 곳에 글을 올렀 μ£„μ†‘ν•©λ‹ˆλ‹€.
λ‚΄ 쿼리λ₯Ό GIS Stack Exchange에 κ²Œμ‹œν•  κ²ƒμž…λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ πŸ‘

이 URL을 λŒ€μ‹  μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
λ‹€λ₯Έ μ‚¬λžŒμ΄ μ›ν•˜λŠ” 경우:

L.tileLayer('//{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

기본적으둜 'http://{s}.tile.osm.org/{z}/{x}/{y}.png' ~ '//{s}.tile.osm.org/{z}/{x}/{y}.png'

μ—¬κΈ°μ—μ„œ L.tileLayer μ½”λ“œμ™€ κ΄€λ ¨λœ λͺ¨λ“  μ†”λ£¨μ…˜μ„ μ‹œλ„ν–ˆμ§€λ§Œ λ‚˜μ—κ²Œ 도움이 된 것은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ‚΄ μ‚¬μ΄νŠΈμ˜ 인덱슀 νŒŒμΌμ—μ„œ leaflet.css 및 leaflet.jsκ°€ http μ‚¬μ΄νŠΈμ—μ„œ 호좜되고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό https둜 λ³€κ²½ν•˜λ©΄ μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ http μ‚¬μ΄νŠΈλ„ λ‚΄ https μ‚¬μ΄νŠΈλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ css 및 js 파일 λͺ¨λ‘μ— λŒ€ν•œ μ½”λ“œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ λ‚΄ μ„œλ²„μ— leaflet.js 및 leaflet.css둜 μ €μž₯ν–ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‚΄ 인덱슀 νŽ˜μ΄μ§€μ—μ„œ ν•΄λ‹Ή νŒŒμΌμ— λŒ€ν•œ μ°Έμ‘°λŠ” 둜컬이며 이제 λͺ¨λ“  것이 μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰