ํ ํฐ์ ์ ๋ฌํด์ผ ํ๋ ํ์ผ ์๋ฒ์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. ์์ฒญ์ด ์ด๋ฃจ์ด์ง๊ธฐ ์ ์ ํค๋์ ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ํ์ผ ์์ฒญ์ ๊ฐ๋ก์ฑ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? IE๋ ์ด๋ฒคํธ๋ฅผ ํตํด ์ฌ์ ํ์ผ ์์ฒญ์ ์์ ํ๊ณ ํค๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
ํ ... HTML์์ ๊ทธ๋ ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์? ๋ด ๋ง์, Leaflet์ ๋ํด ์ด์ผ๊ธฐํ์ง ์๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์ ์ ์ ํค๋๊ฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ข์ ์ง์ ! ๋ ๊น์ด ํ๊ณ ๋ค๋ฉด ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค ๋ง์ต๋๋ค. AJAX ์์ฒญ์ ํ์ง ์๋ ํ ํค๋๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ถ๋ถ์ API๋ ์ก์ธ์ค ํ ํฐ์ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ก URL์ ์ ๋ฌํ ์๋ ์์ต๋๋ค. ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ๊ฒฝ์ฐ์๋ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ ์ ์๋ค๋ฉด ํ์ํ ๋งค๊ฐ๋ณ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋๋ก TileLayer๋ฅผ ํ์ฅํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก TileLayer(TileLayerQueryParam ๋๋ ๊ธฐํ)์ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ํ์ฅ์ ๋ง๋ค ์ ์์ต๋๋ค. TileLayer๊ฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํด์ผ ํ๋ ์ํฉ์ ๊ฒฝํํ ์ ์ด ์์ต๋๊น? IE ํ์ฅ์ ๊ด์ฐฎ์ง๋ง ์ด๊ฒ์ด TileLayer์ ์ผ๋ถ์ฌ์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
์, ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค. :)
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ก ์ถ๊ฐํ๋ ๊ฒ์ ๊ด์ฐฎ์ง๋ง ์์ฒญ URL์ ํ ํฐ์ด ๋ ธ์ถ๋ฉ๋๋ค. OAuth 2.0์ ๊ตฌํํ ๋ ์ ์์ ํค๋์ ํ ํฐ์ ์ฐ๋ ๊ฒ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ์๋ก์ด pull ์์ฒญ์ด์ด์ผ ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ OAuth 2.0์ด ์ธ์ฆ ํค๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
@zhenyanghua @rrameshkumar76 ์์์ ์ธ๊ธํ๋ฏ์ด TileLayer
๋ img
ํ๊ทธ์ผ ๋ฟ์ด๋ฉฐ ์ด๋ฏธ์ง ํ๊ทธ์ ๋ํ ์ฌ์ฉ์ ์ ์ ํค๋๋ฅผ ์ค์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ํ์ง๋ง GridLayer
๋ฅผ ํ์ฅํ๋ฉด ์ํ๋ ๋ฐฉ์์ผ๋ก ํ์ผ์ ๋ก๋ํ ์ ์์ต๋๋ค(AJAX ์ฌ์ฉ ๋ฑ). Extending Leaflet, New Layers ํํ ๋ฆฌ์ผ์์ ์ด์ ๊ฐ์ ์์
์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ข์ ์๊ฐ ์์ต๋๋ค.
๋ต๋ณ๊ณผ ์ค๋ช
์ ๋ํด @perliedman ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
L.TileLayer.WMS๋ฅผ ํ์ฅํ๊ณ ํค๋๊ฐ ์๋ ํ์ผ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ajax ํธ์ถ์ ์ํํ createTile ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ์ ์์์ต๋๋ค.
์๋
ํ์ธ์ Ramesh Kumar๋, ์ฐธ์กฐ์ฉ์ผ๋ก ํ์ฅ๋ WMS ํด๋์ค๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น?
๊ฐ์ฌํฉ๋๋ค
@SunnyMittal ๋๋ ajax์ superagent๋ฅผ ์ฌ์ฉํ๊ณ ํ์์ ๋ฐ๋ผ ๊ต์ฒดํ์ต๋๋ค.
L.TileLayer.WMS_Headers = L.TileLayer.WMS.extend({
createTile(coords, done) {
const url = this.getTileUrl(coords);
const img = document.createElement('img');
superagent
.get(url)
.set(โheaderโ, โheader valueโ)
.responseType('blob')
.then((response) => {
img.src = URL.createObjectURL(response.body);
done(null, img);
});
return img;
}
});
L.tileLayer.wms_headers = (url, options) => new L.TileLayer.WMS_Headers(url, options);
@rrameshkumar76 ๋์์ด
@rrameshkumar76wser๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฃผ ๊ฐ๋จํ ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค์์ต๋๋ค.
๋น์ ์ด ๊ทธ๊ฒ์ ์ฆ๊ธธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด๋ ํ๋์ ํค๋๋ฅผ ์ถ๊ฐํ๊ณ ์ํ๋ ๊ฒฝ์ฐ L.TileLayer
๋์ L.TileLayer.WMS
,์ด @ ticinum - ํญ๊ณต ์ฐ์ฃผ์ ๊ฐ๋จํ ์์ ์ ์ํด ๊ฐ๋ฅํ๋ค ํ๋ฌ๊ทธ์ธ . ๊ธฐ๋ณธ ํด๋์ค๋ฅผ L.TileLayer.WMS
์์ L.TileLayer
๋ก ๋ณ๊ฒฝํ๊ณ ์ ํด๋์ค์ ํจ์์ ์ด๋ฆ์ ์ ์ ํ๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
์ ๋ํ ๋ด๊ฐ ticinum - ํญ๊ณต ์ฐ์ฃผ @ ์์ ํ์ ํ๋ฌ๊ทธ์ธ L.TileLayer
๋์ L.TileLayer.WMS
์ฌ๊ธฐ : https://github.com/jaq316/leaflet-header/blob/master/index.js
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@SunnyMittal ๋๋ ajax์ superagent๋ฅผ ์ฌ์ฉํ๊ณ ํ์์ ๋ฐ๋ผ ๊ต์ฒดํ์ต๋๋ค.