@vtx/cs-map 1.0.80 → 1.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/cesium-tiles-layer/CesiumTilesLayer.js +5 -1
  2. package/lib/cesium-tiles-layer/CesiumTilesLayer.js.map +1 -1
  3. package/lib/feature-layer/FeatureLayer.js +5 -1
  4. package/lib/feature-layer/FeatureLayer.js.map +1 -1
  5. package/lib/index.js +7 -0
  6. package/lib/index.js.map +1 -1
  7. package/lib/legend/index.js +44 -29
  8. package/lib/legend/index.js.map +1 -1
  9. package/lib/legend/style/index.css +16 -3
  10. package/lib/legend/style/index.less +13 -3
  11. package/lib/map/InfoTool/index.js +2 -1
  12. package/lib/map/InfoTool/index.js.map +1 -1
  13. package/lib/map/index.js +12 -5
  14. package/lib/map/index.js.map +1 -1
  15. package/lib/navigation/assets/arrows_e_active.png +0 -0
  16. package/lib/navigation/assets/arrows_n_active.png +0 -0
  17. package/lib/navigation/assets/arrows_s_active.png +0 -0
  18. package/lib/navigation/assets/arrows_w_active.png +0 -0
  19. package/lib/navigation/assets/compass_active.png +0 -0
  20. package/lib/navigation/assets/ring.png +0 -0
  21. package/lib/navigation/assets/ring_active.png +0 -0
  22. package/lib/navigation/assets/tilt.png +0 -0
  23. package/lib/navigation/assets/tiltbar.png +0 -0
  24. package/lib/navigation/assets/zoom.png +0 -0
  25. package/lib/navigation/assets/zoom_active_in.png +0 -0
  26. package/lib/navigation/assets/zoom_active_out.png +0 -0
  27. package/lib/navigation/assets/zoombar.png +0 -0
  28. package/lib/navigation/index.js +306 -0
  29. package/lib/navigation/index.js.map +1 -0
  30. package/lib/navigation/style/css.js +4 -0
  31. package/lib/navigation/style/css.js.map +1 -0
  32. package/lib/navigation/style/index.css +160 -0
  33. package/lib/navigation/style/index.js +4 -0
  34. package/lib/navigation/style/index.js.map +1 -0
  35. package/lib/navigation/style/index.less +176 -0
  36. package/lib/pipe-tiles-layer/PipeTilesLayer.js +27 -1
  37. package/lib/pipe-tiles-layer/PipeTilesLayer.js.map +1 -1
  38. package/package.json +1 -1
@@ -15,6 +15,10 @@
15
15
 
16
16
  width: max-content;
17
17
 
18
+ .cs-tools-legend-list-column {
19
+ display: flex;
20
+ }
21
+
18
22
  .cs-tools-legend-title {
19
23
  font-size: 16px;
20
24
  letter-spacing: 2px;
@@ -26,12 +30,12 @@
26
30
 
27
31
  .cs-tools-legend-list-wrap {
28
32
  min-width: 60px;
33
+ display: none;
29
34
  }
30
35
 
31
36
  .cs-tools-legend-list {
32
- max-width: 270px;
33
- max-height: 270px;
34
- overflow-y: auto;
37
+ display: flex;
38
+ flex-direction: column;
35
39
 
36
40
  .cs-tools-legend-item {
37
41
  text-align: center;
@@ -50,6 +54,12 @@
50
54
  }
51
55
  }
52
56
  }
57
+
58
+ &:hover {
59
+ .cs-tools-legend-list-wrap {
60
+ display: block;
61
+ }
62
+ }
53
63
  }
54
64
 
55
65
  .cs-tools-legend-close-btn {
@@ -102,8 +102,9 @@ var InfoTool = /*#__PURE__*/function () {
102
102
  return;
103
103
  }
104
104
  if (feature instanceof _cesium.Cesium3DTileFeature) {
105
+ var _feature$getPropertyN;
105
106
  // 3dtiles
106
- var propertyNames = feature.getPropertyNames();
107
+ var propertyNames = (feature === null || feature === void 0 || (_feature$getPropertyN = feature.getPropertyNames) === null || _feature$getPropertyN === void 0 ? void 0 : _feature$getPropertyN.call(feature)) || [];
107
108
  var length = propertyNames.length;
108
109
  for (var i = 0; i < length; ++i) {
109
110
  var propertyName = propertyNames[i];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_cesium","require","_util","_interopRequireDefault","_InfoTool","obj","__esModule","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","prototype","_defineProperty","value","t","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","String","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","n","arguments","_element","WeakMap","InfoTool","options","viewer","map","document","createElement","add","callback","undefined","element","position","cartesian2d","cartesian3d","inputFeature","Cesium3DTileFeature","Cartesian2","Cartesian3","scene","pickPositionSupported","defined","pick","pickPosition","camera","pickEllipsoid","globe","ellipsoid","SceneTransforms","wgs84ToWindowCoordinates","that","info","type","feature","remove","propertyNames","getPropertyNames","propertyName","getProperty","properties","_propertyNames","_value","content","_createInfoTool","util","setInnerText","entityId","setCss","cartographic","Cartographic","fromCartesian","lon","CesiumMath","toDegrees","longitude","lat","latitude","setTimeout","_popup","height","offset","divPosition","fromDegrees","x","y","_hookToGlobe","parseInt","getCss","requestRender","hideOnBehindGlobe","cartesian2","_style","preRender","addEventListener","canvasPosition","cartesianToCanvasCoordinates","left","top","cameraPosition","cartesianToCartographic","maximumRadius","distance","_default","exports"],"sources":["map/InfoTool/index.js"],"sourcesContent":["import {\n Math as CesiumMath,\n Cesium3DTileFeature,\n Cartesian2,\n Cartesian3,\n Cartographic,\n SceneTransforms,\n defined,\n} from 'cesium';\nimport './index.less';\nimport util from './util';\n\n/**\n * 信息工具。\n *\n * @alias InfoTool\n * @constructor\n * @param {viewer} viewer Cesium视窗。\n */\nclass InfoTool {\n /**\n * 创建一个动态实体弹窗。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Number} options 选项。\n * @param {Cartesian3} options.position 弹出位置。\n * @param {HTMLElement} options.element 弹出窗元素容器。\n * @param {Function} callback 回调函数。\n * @ignore\n */\n static #createInfoTool(viewer, options, callback = undefined) {\n const cartographic = Cartographic.fromCartesian(options.position);\n const lon = CesiumMath.toDegrees(cartographic.longitude); //.toFixed(5);\n const lat = CesiumMath.toDegrees(cartographic.latitude); //.toFixed(5);\n\n // 回调\n callback();\n\n // 添加div弹窗\n setTimeout(function() {\n InfoTool.#popup(\n viewer,\n options.element,\n lon,\n lat,\n cartographic.height,\n // options.geometryType,\n options.offset,\n );\n }, 100);\n }\n\n /**\n * 弹出HTML元素弹窗。\n * @param {viewer} viewer Cesium视窗。\n * @param {Element|HTMLElement} element 弹窗元素。\n * @param {Number} lon 经度。\n * @param {Number} lat 纬度。\n * @param {Number} height 高度。\n * @ignore\n */\n static #popup(viewer, element, lon, lat, height, offset) {\n setTimeout(function() {\n // 设置元素效果\n util.setCss(element, 'opacity', '1');\n util.setCss(element, 'z-index', '0');\n }, 100);\n const divPosition = Cartesian3.fromDegrees(lon, lat, height);\n\n let x = offset?.x || 0;\n let y = offset?.y || 0;\n\n InfoTool.#hookToGlobe(\n viewer,\n element,\n divPosition,\n [-4 + x, -parseInt(util.getCss(element, 'offsetHeight') + y)],\n true,\n );\n viewer.scene.requestRender();\n }\n\n /**\n * 将HTML弹窗挂接到地球上。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Element} element 弹窗元素。\n * @param {Cartesian3} position 地图坐标点。\n * @param {Array} offset 偏移。\n * @param {Boolean} hideOnBehindGlobe 当元素在地球背面会自动隐藏,以减轻判断计算压力。\n * @ignore\n */\n static #hookToGlobe(viewer, element, position, offset, hideOnBehindGlobe) {\n const scene = viewer.scene,\n camera = viewer.camera;\n const cartesian2 = new Cartesian2();\n\n let _style = {};\n scene.preRender.addEventListener(function () {\n const canvasPosition = scene.cartesianToCanvasCoordinates(position, cartesian2); // 笛卡尔坐标到画布坐标\n\n if (defined(canvasPosition)) {\n const left = parseInt(canvasPosition.x + offset[0]);\n const top = parseInt(canvasPosition.y + offset[1]);\n\n if (_style.left) {\n _style.left = ((_style.left - left > 1) || (_style.left - left < -1)) ? left : _style.left;\n } else {\n _style.left = left;\n }\n\n _style.top = top;\n util.setCss(element, 'left', _style.left + 'px');\n util.setCss(element, 'top', _style.top + 'px');\n\n\n // 是否在地球背面隐藏\n if (hideOnBehindGlobe) {\n const cameraPosition = camera.position;\n let height = scene.globe.ellipsoid.cartesianToCartographic(cameraPosition)\n .height;\n height += scene.globe.ellipsoid.maximumRadius;\n if (!(Cartesian3.distance(cameraPosition, position) > height)) {\n // util.setCss(element, 'display', 'flex');\n } else {\n util.setCss(element, 'display', 'none');\n }\n }\n }\n });\n }\n\n #element;\n viewer;\n\n constructor(options) {\n this.viewer = options.map;\n // 在Cesium容器中添加元素\n this.#element = document.createElement('div');\n }\n\n /**\n * 添加。\n * @param {Object} options 选项。\n * @param {Element} options.element 弹窗元素。\n * @param {Cartesian2|Cartesian3} options.position 点击位置。\n * @param {Cesium3DTileFeature} [options.inputFeature] 模型要素。\n * @param {String} options.type 类型(默认值为default,即任意点击模式;如果设置为info,即信息模式,只有点击Feature才会响应)。\n * @param {String} options.content 内容(只有类型为default时才起作用)。\n * @param {Function} callback 回调函数。\n */\n add(options, callback = undefined) {\n this.element = options.element;\n // 判断参数为空返回\n if (!options) {\n return;\n }\n // 点\n let position, cartesian2d, cartesian3d, inputFeature;\n if (options instanceof Cesium3DTileFeature) {\n inputFeature = options;\n options = {};\n } else {\n if (options instanceof Cartesian2 || options instanceof Cartesian3) {\n position = options;\n options = {};\n } else {\n position = options.position;\n inputFeature = options.inputFeature;\n }\n // 判断点位为空返回\n if (!position) {\n return;\n }\n if (position instanceof Cartesian2) {\n // 二维转三维\n // 如果支持拾取模型则取模型值\n cartesian3d =\n this.viewer.scene.pickPositionSupported &&\n defined(this.viewer.scene.pick(options.position))\n ? this.viewer.scene.pickPosition(position)\n : this.viewer.camera.pickEllipsoid(\n position,\n this.viewer.scene.globe.ellipsoid,\n );\n cartesian2d = position;\n } else {\n cartesian3d = position;\n cartesian2d = SceneTransforms.wgs84ToWindowCoordinates(\n this.viewer.scene,\n cartesian3d,\n );\n }\n // 判断点位为空返回\n if (!cartesian3d) {\n return;\n }\n }\n\n const that = this;\n\n // 1.组织信息\n let info = '';\n if (options.type === 'info') {\n // 拾取要素\n const feature = inputFeature || this.viewer.scene.pick(cartesian2d);\n // 判断拾取要素为空返回\n if (!defined(feature)) {\n this.remove();\n return;\n }\n\n if (feature instanceof Cesium3DTileFeature) {\n // 3dtiles\n let propertyNames = feature.getPropertyNames();\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' + (propertyName + '\": \"' + feature.getProperty(propertyName)) + '\",\\n';\n }\n } else if (feature) {\n // Entity\n const properties = feature.properties;\n if (properties) {\n let propertyNames = properties._propertyNames;\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' +\n (propertyName + '\": \"' + properties[propertyName]._value) +\n '\",\\n';\n }\n }\n }\n } else {\n options.content && (info = options.content);\n }\n\n // 2.生成特效\n // 添加之前先移除\n this.remove();\n // if (!info) {\n // return;\n // }\n options.position = cartesian3d;\n options.element = options.element || this.#element;\n\n InfoTool.#createInfoTool(this.viewer, options, function() {\n util.setInnerText(options.element, info);\n typeof callback === 'function' && callback();\n });\n }\n\n /**\n * 移除。\n */\n remove(entityId = undefined) {\n util.setCss(this.element, 'opacity', '0');\n util.setCss(this.element, 'z-index', '-1');\n util.setCss(this.#element, 'opacity', '0');\n }\n}\n\nexport default InfoTool;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_cesium","require","_util","_interopRequireDefault","_InfoTool","obj","__esModule","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","prototype","_defineProperty","value","t","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","String","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","n","arguments","_element","WeakMap","InfoTool","options","viewer","map","document","createElement","add","callback","undefined","element","position","cartesian2d","cartesian3d","inputFeature","Cesium3DTileFeature","Cartesian2","Cartesian3","scene","pickPositionSupported","defined","pick","pickPosition","camera","pickEllipsoid","globe","ellipsoid","SceneTransforms","wgs84ToWindowCoordinates","that","info","type","feature","remove","_feature$getPropertyN","propertyNames","getPropertyNames","propertyName","getProperty","properties","_propertyNames","_value","content","_createInfoTool","util","setInnerText","entityId","setCss","cartographic","Cartographic","fromCartesian","lon","CesiumMath","toDegrees","longitude","lat","latitude","setTimeout","_popup","height","offset","divPosition","fromDegrees","x","y","_hookToGlobe","parseInt","getCss","requestRender","hideOnBehindGlobe","cartesian2","_style","preRender","addEventListener","canvasPosition","cartesianToCanvasCoordinates","left","top","cameraPosition","cartesianToCartographic","maximumRadius","distance","_default","exports"],"sources":["map/InfoTool/index.js"],"sourcesContent":["import {\n Math as CesiumMath,\n Cesium3DTileFeature,\n Cartesian2,\n Cartesian3,\n Cartographic,\n SceneTransforms,\n defined,\n} from 'cesium';\nimport './index.less';\nimport util from './util';\n\n/**\n * 信息工具。\n *\n * @alias InfoTool\n * @constructor\n * @param {viewer} viewer Cesium视窗。\n */\nclass InfoTool {\n /**\n * 创建一个动态实体弹窗。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Number} options 选项。\n * @param {Cartesian3} options.position 弹出位置。\n * @param {HTMLElement} options.element 弹出窗元素容器。\n * @param {Function} callback 回调函数。\n * @ignore\n */\n static #createInfoTool(viewer, options, callback = undefined) {\n const cartographic = Cartographic.fromCartesian(options.position);\n const lon = CesiumMath.toDegrees(cartographic.longitude); //.toFixed(5);\n const lat = CesiumMath.toDegrees(cartographic.latitude); //.toFixed(5);\n\n // 回调\n callback();\n\n // 添加div弹窗\n setTimeout(function() {\n InfoTool.#popup(\n viewer,\n options.element,\n lon,\n lat,\n cartographic.height,\n // options.geometryType,\n options.offset,\n );\n }, 100);\n }\n\n /**\n * 弹出HTML元素弹窗。\n * @param {viewer} viewer Cesium视窗。\n * @param {Element|HTMLElement} element 弹窗元素。\n * @param {Number} lon 经度。\n * @param {Number} lat 纬度。\n * @param {Number} height 高度。\n * @ignore\n */\n static #popup(viewer, element, lon, lat, height, offset) {\n setTimeout(function() {\n // 设置元素效果\n util.setCss(element, 'opacity', '1');\n util.setCss(element, 'z-index', '0');\n }, 100);\n const divPosition = Cartesian3.fromDegrees(lon, lat, height);\n\n let x = offset?.x || 0;\n let y = offset?.y || 0;\n\n InfoTool.#hookToGlobe(\n viewer,\n element,\n divPosition,\n [-4 + x, -parseInt(util.getCss(element, 'offsetHeight') + y)],\n true,\n );\n viewer.scene.requestRender();\n }\n\n /**\n * 将HTML弹窗挂接到地球上。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Element} element 弹窗元素。\n * @param {Cartesian3} position 地图坐标点。\n * @param {Array} offset 偏移。\n * @param {Boolean} hideOnBehindGlobe 当元素在地球背面会自动隐藏,以减轻判断计算压力。\n * @ignore\n */\n static #hookToGlobe(viewer, element, position, offset, hideOnBehindGlobe) {\n const scene = viewer.scene,\n camera = viewer.camera;\n const cartesian2 = new Cartesian2();\n\n let _style = {};\n scene.preRender.addEventListener(function () {\n const canvasPosition = scene.cartesianToCanvasCoordinates(position, cartesian2); // 笛卡尔坐标到画布坐标\n\n if (defined(canvasPosition)) {\n const left = parseInt(canvasPosition.x + offset[0]);\n const top = parseInt(canvasPosition.y + offset[1]);\n\n if (_style.left) {\n _style.left = ((_style.left - left > 1) || (_style.left - left < -1)) ? left : _style.left;\n } else {\n _style.left = left;\n }\n\n _style.top = top;\n util.setCss(element, 'left', _style.left + 'px');\n util.setCss(element, 'top', _style.top + 'px');\n\n\n // 是否在地球背面隐藏\n if (hideOnBehindGlobe) {\n const cameraPosition = camera.position;\n let height = scene.globe.ellipsoid.cartesianToCartographic(cameraPosition)\n .height;\n height += scene.globe.ellipsoid.maximumRadius;\n if (!(Cartesian3.distance(cameraPosition, position) > height)) {\n // util.setCss(element, 'display', 'flex');\n } else {\n util.setCss(element, 'display', 'none');\n }\n }\n }\n });\n }\n\n #element;\n viewer;\n\n constructor(options) {\n this.viewer = options.map;\n // 在Cesium容器中添加元素\n this.#element = document.createElement('div');\n }\n\n /**\n * 添加。\n * @param {Object} options 选项。\n * @param {Element} options.element 弹窗元素。\n * @param {Cartesian2|Cartesian3} options.position 点击位置。\n * @param {Cesium3DTileFeature} [options.inputFeature] 模型要素。\n * @param {String} options.type 类型(默认值为default,即任意点击模式;如果设置为info,即信息模式,只有点击Feature才会响应)。\n * @param {String} options.content 内容(只有类型为default时才起作用)。\n * @param {Function} callback 回调函数。\n */\n add(options, callback = undefined) {\n this.element = options.element;\n // 判断参数为空返回\n if (!options) {\n return;\n }\n // 点\n let position, cartesian2d, cartesian3d, inputFeature;\n if (options instanceof Cesium3DTileFeature) {\n inputFeature = options;\n options = {};\n } else {\n if (options instanceof Cartesian2 || options instanceof Cartesian3) {\n position = options;\n options = {};\n } else {\n position = options.position;\n inputFeature = options.inputFeature;\n }\n // 判断点位为空返回\n if (!position) {\n return;\n }\n if (position instanceof Cartesian2) {\n // 二维转三维\n // 如果支持拾取模型则取模型值\n cartesian3d =\n this.viewer.scene.pickPositionSupported &&\n defined(this.viewer.scene.pick(options.position))\n ? this.viewer.scene.pickPosition(position)\n : this.viewer.camera.pickEllipsoid(\n position,\n this.viewer.scene.globe.ellipsoid,\n );\n cartesian2d = position;\n } else {\n cartesian3d = position;\n cartesian2d = SceneTransforms.wgs84ToWindowCoordinates(\n this.viewer.scene,\n cartesian3d,\n );\n }\n // 判断点位为空返回\n if (!cartesian3d) {\n return;\n }\n }\n\n const that = this;\n\n // 1.组织信息\n let info = '';\n if (options.type === 'info') {\n // 拾取要素\n const feature = inputFeature || this.viewer.scene.pick(cartesian2d);\n // 判断拾取要素为空返回\n if (!defined(feature)) {\n this.remove();\n return;\n }\n\n if (feature instanceof Cesium3DTileFeature) {\n // 3dtiles\n let propertyNames = feature?.getPropertyNames?.() || [];\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' + (propertyName + '\": \"' + feature.getProperty(propertyName)) + '\",\\n';\n }\n } else if (feature) {\n // Entity\n const properties = feature.properties;\n if (properties) {\n let propertyNames = properties._propertyNames;\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' +\n (propertyName + '\": \"' + properties[propertyName]._value) +\n '\",\\n';\n }\n }\n }\n } else {\n options.content && (info = options.content);\n }\n\n // 2.生成特效\n // 添加之前先移除\n this.remove();\n // if (!info) {\n // return;\n // }\n options.position = cartesian3d;\n options.element = options.element || this.#element;\n\n InfoTool.#createInfoTool(this.viewer, options, function() {\n util.setInnerText(options.element, info);\n typeof callback === 'function' && callback();\n });\n }\n\n /**\n * 移除。\n */\n remove(entityId = undefined) {\n util.setCss(this.element, 'opacity', '0');\n util.setCss(this.element, 'z-index', '-1');\n util.setCss(this.#element, 'opacity', '0');\n }\n}\n\nexport default InfoTool;\n"],"mappings":"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","ignoreList":[]}
package/lib/map/index.js CHANGED
@@ -420,8 +420,9 @@ function Map(props) {
420
420
 
421
421
  // 获取 3DTiles feature 属性
422
422
  map.get3DTileFeatureProperties = function (feature) {
423
+ var _feature$getPropertyN;
423
424
  var properties = {};
424
- var propertyIds = feature.getPropertyNames();
425
+ var propertyIds = (feature === null || feature === void 0 || (_feature$getPropertyN = feature.getPropertyNames) === null || _feature$getPropertyN === void 0 ? void 0 : _feature$getPropertyN.call(feature)) || [];
425
426
  var length = propertyIds.length;
426
427
  for (var i = 0; i < length; ++i) {
427
428
  var propertyId = propertyIds[i];
@@ -749,11 +750,17 @@ function Map(props) {
749
750
  position: event.endPosition
750
751
  });
751
752
  if (feature) {
752
- var _map$getLayerByFeatur;
753
- var labelField = (_map$getLayerByFeatur = map.getLayerByFeature(feature)) === null || _map$getLayerByFeatur === void 0 ? void 0 : _map$getLayerByFeatur.labelField;
754
- if (labelField) {
753
+ var layer = map.getLayerByFeature(feature);
754
+ if (layer && (layer.labelField || layer.tipTemplate)) {
755
+ var labelField = layer.labelField,
756
+ tipTemplate = layer.tipTemplate;
755
757
  var properties = map.getProperties(feature);
756
- var label = properties ? properties[labelField] : '';
758
+ var label;
759
+ if (tipTemplate) {
760
+ label = tipTemplate(properties);
761
+ } else {
762
+ label = properties ? properties[labelField] : '';
763
+ }
757
764
  if (label) {
758
765
  map.showTip(label);
759
766
  } else {