diff --git a/CHANGELOG.md b/CHANGELOG.md index 871ba60..1f3a8ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ # 체인지 로그 +# 0.10.21 +* 지도 설정을 변경해도 변경되지 않았던 오류 수정 + # 0.10.20 * 컴포넌트가 제거되어도 지도에서는 제거되지 않은 오류 수정 diff --git a/dist/vue-naver-maps.js b/dist/vue-naver-maps.js index 877ba86..58db9e4 100644 --- a/dist/vue-naver-maps.js +++ b/dist/vue-naver-maps.js @@ -128,7 +128,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ove /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Map',\n props: {\n width: Number,\n height: Number,\n mapOptions: {\n type: Object\n },\n onLoaded: Function\n },\n data: function data() {\n return {\n mapStyle: {\n width: \"\".concat(this.width, \"px\"),\n height: \"\".concat(this.height, \"px\")\n },\n\n /**\n * @type {naver.maps.Map}\n */\n map: null\n };\n },\n methods: {\n /* Normal Method */\n\n /**\n * @param name {string}\n * @param elementOrZIndex {HTMLElement | number}\n */\n addPane: function addPane(name, elementOrZIndex) {\n this.map.addPane(name, elementOrZIndex);\n return this;\n },\n\n /**\n * delete this map which includes all event and dom element.\n * *** Warning! ***\n * This method will be delete the map object of this component.\n */\n destroy: function destroy() {\n this.map.destory();\n this.map = null;\n this.$destroy();\n },\n\n /**\n * @param {naver.maps.Bounds | naver.maps.BoundsLiteral | naver.maps.ArrayOfCoords | naver.maps.ArrayOfCoordsLiteral} bounds\n * @param {number} margin\n */\n fitBounds: function fitBounds(bounds, margin) {\n this.map.fitBounds(new window.naver.maps.LatLng(bounds, margin));\n },\n\n /**\n * @param coord {naver.maps.Coord | naver.maps.CoordLiteral}\n * @param zoom {number} optional\n * @param transitionOptions {naver.maps.TransitionOptions} optional\n * @returns this\n */\n morph: function morph(coord, zoom, transitionOptions) {\n if (zoom) {\n if (transitionOptions) this.map.morph(coord, zoom, transitionOptions);else this.map.morph(coord, zoom);\n } else this.map.morph(coord);\n\n return this;\n },\n\n /**\n * @param {naver.maps.Coord | naver.maps.CoordLiteral} coord\n * @param {naver.maps.TransitionOptions} transitionOptions\n */\n panTo: function panTo(coord, transitionOptions) {\n this.map.panTo(new window.naver.maps.LatLng(lat, lng));\n },\n\n /**\n * @param {naver.maps.Bounds | naver.maps.BoundsLiteral} bounds\n * @param {naver.maps.TransitionOptions} transitionOptions\n * @param {number} margin\n */\n panToBounds: function panToBounds(bounds, transitionOptions, margin) {\n this.map.panToBounds(new window.naver.maps.LatLng(lat, lng));\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @returns this\n */\n panBy: function panBy(x, y) {\n this.map.panBy(new window.naver.maps.Point(x, y));\n return this;\n },\n\n /**\n * @param noEffect {boolean}\n * @returns this\n */\n refresh: function refresh() {\n var noEffect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.map.refresh(noEffect);\n return this;\n },\n\n /**\n * @param name {string}\n * @returns this\n */\n removePane: function removePane(name) {\n this.map.removePane(name);\n return this;\n },\n\n /**\n * @returns this\n * @param coord {naver.maps.Coord | naver.maps.CoordLiteral}\n * @param zoom {number}\n */\n updateBy: function updateBy(coord, zoom) {\n this.map.removePane(name);\n return this;\n },\n\n /**\n * @returns this\n * @param deltaZoom {number}\n * @param zoomOrigin {naver.maps.Coord | naver.maps.CoordLiteral} default is center\n * @param effect {boolean}\n */\n zoomBy: function zoomBy(deltaZoom) {\n var zoomOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var effect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (zoomOrigin) this.zoomBy(deltaZoom, zoomOrigin, effect);else this.zoomBy(deltaZoom);\n return this;\n },\n\n /* Getter Methods */\n\n /**\n * @returns {naver.maps.Bounds}\n */\n getBounds: function getBounds() {\n return this.map.getBounds();\n },\n\n /**\n * the center coordinates of a map\n * @returns {naver.maps.Coord}\n */\n getCenter: function getCenter() {\n return this.map.getCenterPoint();\n },\n\n /**\n * The result of converting the map's center coordinates to the world coordinates.\n * @returns {naver.maps.Coord}\n */\n getCenterPoint: function getCenterPoint() {\n return this.map.getCenterPoint();\n },\n\n /**\n * @returns {HTMLElement}\n */\n getElement: function getElement() {\n return this.map.getElement();\n },\n\n /**\n * returns type id of this map.\n * @returns {string}\n */\n getMapTypeId: function getMapTypeId() {\n return this.map.getMapTypeId();\n },\n\n /**\n * returns options of this map.\n * @param key {string}\n * @returns any\n */\n getOptions: function getOptions() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n return key ? this.map.getOptions(key) : this.map.getOptions();\n },\n\n /**\n * @returns {naver.maps.MapPanes}\n */\n getPanes: function getPanes() {\n return this.map.getPanes();\n },\n\n /**\n * @returns {naver.maps.Projection}\n */\n getPrimitiveProjection: function getPrimitiveProjection() {\n return this.map.getPrimitiveProjection();\n },\n\n /**\n * @returns {naver.maps.MapSystemProjection}\n */\n getProjection: function getProjection() {\n return this.map.getProjection();\n },\n\n /**\n * @returns {naver.maps.Size}\n */\n getSize: function getSize() {\n return this.map.getSize();\n },\n\n /**\n * @returns {number}\n */\n getZoom: function getZoom() {\n return this.map.getZoom();\n },\n\n /* Setter Methods */\n\n /**\n * @param {number | naver.maps.LatLng | naver.maps.LatLngLiteral} latOrLatLng\n * @param {number} lng\n * @returns this\n */\n setCenter: function setCenter(latOrLatLng) {\n var lng = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.map.setCenter(isNaN(latOrLatLng) ? latOrLatLng : new window.naver.maps.LatLng(latOrLatLng, lng));\n return this;\n },\n\n /**\n * @param {naver.maps.Point | naver.maps.PointLiteral} point\n * @returns this\n */\n setCenterPoint: function setCenterPoint(point) {\n this.map.setCenterPoint(point);\n return this;\n },\n\n /**\n * @param {string} type NORMAL, TERRAIN, SATELLITE, HYBRID\n * @returns this\n */\n setMapTypeId: function setMapTypeId(type) {\n map.setMapTypeId(naver.maps.Position[type]);\n return this;\n },\n\n /**\n * @param {naver.maps.MapOptions} options\n * @returns this\n */\n setOptions: function setOptions(options) {\n if (map) map.setOptions(options);else throw new Error('setOptions not be available before loaded.');\n return this;\n },\n\n /**\n * @param {naver.maps.Size | naver.maps.SizeLiteral} size\n * @returns this\n */\n setSize: function setSize(size) {\n this.map.setSize(size);\n return this;\n },\n\n /**\n * @param {number} level must be int\n * @param {boolean} useEffect\n * @returns this\n */\n setZoom: function setZoom(level) {\n var useEffect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.map.setZoom(level, useEffect);\n return this;\n },\n\n /* vue-naver-maps Methods */\n loadNaverMapsComponents: function loadNaverMapsComponents() {\n var _this = this;\n\n /**\n * Creating maps.\n */\n this.map = new window.naver.maps.Map('vue-naver-maps', {\n center: new window.naver.maps.LatLng(this.mapOptions.lat, this.mapOptions.lng),\n zoom: this.mapOptions.zoom ? this.mapOptions.zoom : 10,\n zoomControl: !!this.mapOptions.zoomControl\n });\n if (this.zoomControlOptions && this.zoomControlOptions.position) this.setOptions({\n zoomControlOptions: {\n position: naver.maps.Position[this.zoomControlOptions.position]\n }\n });\n /**\n * call callback function\n */\n\n window.$naverMapsCallback.forEach(function (v) {\n return v(_this.map);\n });\n window.$naverMapsCallback = [];\n window.$naverMapsLoaded = true;\n window.$naverMapsObject = this.map;\n this.$emit('load', this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n /**\n * Checking to exist Map options which is must be included.\n */\n if (this.mapOptions.lat && this.mapOptions.lng) {\n /**\n * When the script already loaded.\n */\n if (window.naver) this.loadNaverMapsComponents();else {\n /**\n * When the script loaded.\n */\n document.getElementById('naver-map-load').onload = function () {\n _this2.loadNaverMapsComponents();\n };\n }\n } else throw new Error('mapOptions must be included lat and lng.');\n }\n});\n\n//# sourceURL=webpack://VueNaverMaps/./src/Map.vue?./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Map',\n props: {\n width: Number,\n height: Number,\n mapOptions: {\n type: Object\n }\n },\n data: function data() {\n return {\n mapStyle: {\n width: \"\".concat(this.width, \"px\"),\n height: \"\".concat(this.height, \"px\")\n },\n\n /**\n * @type {naver.maps.Map}\n */\n map: null\n };\n },\n watch: {\n mapOptions: {\n handler: function handler(newValue) {\n this.map.setOptions(newValue);\n },\n deep: true\n }\n },\n methods: {\n /* Normal Method */\n\n /**\n * @param name {string}\n * @param elementOrZIndex {HTMLElement | number}\n */\n addPane: function addPane(name, elementOrZIndex) {\n this.map.addPane(name, elementOrZIndex);\n return this;\n },\n\n /**\n * delete this map which includes all event and dom element.\n * *** Warning! ***\n * This method will be delete the map object of this component.\n */\n destroy: function destroy() {\n this.map.destory();\n this.map = null;\n this.$destroy();\n },\n\n /**\n * @param {naver.maps.Bounds | naver.maps.BoundsLiteral | naver.maps.ArrayOfCoords | naver.maps.ArrayOfCoordsLiteral} bounds\n * @param {number} margin\n */\n fitBounds: function fitBounds(bounds, margin) {\n this.map.fitBounds(new window.naver.maps.LatLng(bounds, margin));\n },\n\n /**\n * @param coord {naver.maps.Coord | naver.maps.CoordLiteral}\n * @param zoom {number} optional\n * @param transitionOptions {naver.maps.TransitionOptions} optional\n * @returns this\n */\n morph: function morph(coord, zoom, transitionOptions) {\n if (zoom) {\n if (transitionOptions) this.map.morph(coord, zoom, transitionOptions);else this.map.morph(coord, zoom);\n } else this.map.morph(coord);\n\n return this;\n },\n\n /**\n * @param {naver.maps.Coord | naver.maps.CoordLiteral} coord\n * @param {naver.maps.TransitionOptions} transitionOptions\n */\n panTo: function panTo(coord, transitionOptions) {\n this.map.panTo(new window.naver.maps.LatLng(lat, lng));\n },\n\n /**\n * @param {naver.maps.Bounds | naver.maps.BoundsLiteral} bounds\n * @param {naver.maps.TransitionOptions} transitionOptions\n * @param {number} margin\n */\n panToBounds: function panToBounds(bounds, transitionOptions, margin) {\n this.map.panToBounds(new window.naver.maps.LatLng(lat, lng));\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @returns this\n */\n panBy: function panBy(x, y) {\n this.map.panBy(new window.naver.maps.Point(x, y));\n return this;\n },\n\n /**\n * @param noEffect {boolean}\n * @returns this\n */\n refresh: function refresh() {\n var noEffect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.map.refresh(noEffect);\n return this;\n },\n\n /**\n * @param name {string}\n * @returns this\n */\n removePane: function removePane(name) {\n this.map.removePane(name);\n return this;\n },\n\n /**\n * @returns this\n * @param coord {naver.maps.Coord | naver.maps.CoordLiteral}\n * @param zoom {number}\n */\n updateBy: function updateBy(coord, zoom) {\n this.map.removePane(name);\n return this;\n },\n\n /**\n * @returns this\n * @param deltaZoom {number}\n * @param zoomOrigin {naver.maps.Coord | naver.maps.CoordLiteral} default is center\n * @param effect {boolean}\n */\n zoomBy: function zoomBy(deltaZoom) {\n var zoomOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var effect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (zoomOrigin) this.zoomBy(deltaZoom, zoomOrigin, effect);else this.zoomBy(deltaZoom);\n return this;\n },\n\n /* Getter Methods */\n\n /**\n * @returns {naver.maps.Bounds}\n */\n getBounds: function getBounds() {\n return this.map.getBounds();\n },\n\n /**\n * the center coordinates of a map\n * @returns {naver.maps.Coord}\n */\n getCenter: function getCenter() {\n return this.map.getCenterPoint();\n },\n\n /**\n * The result of converting the map's center coordinates to the world coordinates.\n * @returns {naver.maps.Coord}\n */\n getCenterPoint: function getCenterPoint() {\n return this.map.getCenterPoint();\n },\n\n /**\n * @returns {HTMLElement}\n */\n getElement: function getElement() {\n return this.map.getElement();\n },\n\n /**\n * returns type id of this map.\n * @returns {string}\n */\n getMapTypeId: function getMapTypeId() {\n return this.map.getMapTypeId();\n },\n\n /**\n * returns options of this map.\n * @param key {string}\n * @returns any\n */\n getOptions: function getOptions() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n return key ? this.map.getOptions(key) : this.map.getOptions();\n },\n\n /**\n * @returns {naver.maps.MapPanes}\n */\n getPanes: function getPanes() {\n return this.map.getPanes();\n },\n\n /**\n * @returns {naver.maps.Projection}\n */\n getPrimitiveProjection: function getPrimitiveProjection() {\n return this.map.getPrimitiveProjection();\n },\n\n /**\n * @returns {naver.maps.MapSystemProjection}\n */\n getProjection: function getProjection() {\n return this.map.getProjection();\n },\n\n /**\n * @returns {naver.maps.Size}\n */\n getSize: function getSize() {\n return this.map.getSize();\n },\n\n /**\n * @returns {number}\n */\n getZoom: function getZoom() {\n return this.map.getZoom();\n },\n\n /* Setter Methods */\n\n /**\n * @param {number | naver.maps.LatLng | naver.maps.LatLngLiteral} latOrLatLng\n * @param {number} lng\n * @returns this\n */\n setCenter: function setCenter(latOrLatLng) {\n var lng = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.map.setCenter(isNaN(latOrLatLng) ? latOrLatLng : new window.naver.maps.LatLng(latOrLatLng, lng));\n return this;\n },\n\n /**\n * @param {naver.maps.Point | naver.maps.PointLiteral} point\n * @returns this\n */\n setCenterPoint: function setCenterPoint(point) {\n this.map.setCenterPoint(point);\n return this;\n },\n\n /**\n * @param {string} type NORMAL, TERRAIN, SATELLITE, HYBRID\n * @returns this\n */\n setMapTypeId: function setMapTypeId(type) {\n map.setMapTypeId(naver.maps.Position[type]);\n return this;\n },\n\n /**\n * @param {naver.maps.MapOptions} options\n * @returns this\n */\n setOptions: function setOptions(options) {\n if (map) map.setOptions(options);else throw new Error('setOptions not be available before loaded.');\n return this;\n },\n\n /**\n * @param {naver.maps.Size | naver.maps.SizeLiteral} size\n * @returns this\n */\n setSize: function setSize(size) {\n this.map.setSize(size);\n return this;\n },\n\n /**\n * @param {number} level must be int\n * @param {boolean} useEffect\n * @returns this\n */\n setZoom: function setZoom(level) {\n var useEffect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.map.setZoom(level, useEffect);\n return this;\n },\n\n /* vue-naver-maps Methods */\n loadNaverMapsComponents: function loadNaverMapsComponents() {\n var _this = this;\n\n /**\n * Creating maps.\n */\n this.map = new window.naver.maps.Map('vue-naver-maps', Object.assign(this.mapOptions, {\n center: new window.naver.maps.LatLng(this.mapOptions.lat, this.mapOptions.lng),\n zoom: this.mapOptions.zoom ? this.mapOptions.zoom : 10\n }));\n if (this.zoomControlOptions && this.zoomControlOptions.position) this.setOptions({\n zoomControlOptions: {\n position: naver.maps.Position[this.zoomControlOptions.position]\n }\n });\n /**\n * call callback function\n */\n\n window.$naverMapsCallback.forEach(function (v) {\n return v(_this.map);\n });\n window.$naverMapsCallback = [];\n window.$naverMapsLoaded = true;\n window.$naverMapsObject = this.map;\n this.$emit('load', this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n /**\n * Checking to exist Map options which is must be included.\n */\n if (this.mapOptions.lat && this.mapOptions.lng) {\n /**\n * When the script already loaded.\n */\n if (window.naver) this.loadNaverMapsComponents();else {\n /**\n * When the script loaded.\n */\n document.getElementById('naver-map-load').onload = function () {\n _this2.loadNaverMapsComponents();\n };\n }\n } else throw new Error('mapOptions must be included lat and lng.');\n }\n});\n\n//# sourceURL=webpack://VueNaverMaps/./src/Map.vue?./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/package.json b/package.json index 6ba35d7..af4d4c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-naver-maps", - "version": "0.10.20", + "version": "0.10.21", "description": "NAVER Maps component for vue.js", "main": "dist/vue-naver-maps.js", "author": { diff --git a/src/Map.vue b/src/Map.vue index a309379..32b0b54 100644 --- a/src/Map.vue +++ b/src/Map.vue @@ -27,6 +27,13 @@ map: null, } }, + watch: { + mapOptions: { + handler(newValue) { + this.map.setOptions(newValue); + }, deep: true, + } + }, methods: { /* Normal Method */ /** @@ -263,6 +270,7 @@ /** * Creating maps. */ + this.map = new window.naver.maps.Map('vue-naver-maps', Object.assign(this.mapOptions, { center: new window.naver.maps.LatLng(this.mapOptions.lat, this.mapOptions.lng), zoom: this.mapOptions.zoom ? this.mapOptions.zoom : 10,