μλ νμΈμ,
https 보μ μ°κ²°μ ν΅ν΄ μ λ¨μ§ 맡 νμΌμ μ 곡ν μ μλμ§ κΆκΈν©λλ€. https μΉ νμ΄μ§(SSL μ¬μ©) λ΄μμ μ λ¨μ§ 맡μ λ§λ€λ €κ³ νλλ° httpλ₯Ό ν΅ν΄ μ λ¨μ§ νμΌμ λ‘λν μ μμ΅λλ€. 보μ μ°κ²°μ ν΅ν΄ μ λ¨μ§ νμΌ λ‘λλ₯Ό μ§μν©λκΉ?
κ°μ¬ ν΄μ!
Leafletμ μ체 νμΌμ μ 곡νμ§ μμ΅λλ€. νμΌμ μ΄λ€ μμ€λ₯Ό μ¬μ©νκ³ μμ΅λκΉ?
μ: OpenStreetMapμ μ¬μ©νλ κ²½μ°:
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <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: '© <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> — 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: '© <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
μ΄μ μ μ»μ μ€λ₯λ λ€μκ³Ό κ°μ΅λλ€.
λλ κ²°κ΅ λ€λ₯Έ 곡κΈμλ₯Ό μ¬μ©νμ΅λλ€(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 © <a href=\"http://openstreetmap.org\">OpenStreetMap</a> contributors, ' +
'<a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +
'Imagery © <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: '© <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λ‘ μ μ₯νμ΅λλ€. λ°λΌμ λ΄ μΈλ±μ€ νμ΄μ§μμ ν΄λΉ νμΌμ λν μ°Έμ‘°λ λ‘컬μ΄λ©° μ΄μ λͺ¨λ κ²μ΄ μ¬λ°λ₯΄κ² μλν©λλ€.
κ°μ₯ μ μ©ν λκΈ
@F1LT3R λλΆμ ν΄κ²°νμ΅λλ€.
λλ κ°μ§κ³ μμλ€
SSL λ¬Έμ κ° μμκ³ λ€μμΌλ‘ λ³κ²½νμ΅λλ€.
κ·Έλ¦¬κ³ μλ£!
κ°μ¬ν©λλ€