model~Stretch(vector, showBorder, mapUnit, options)

3D白模。根据几何图形和指定高度将几何图形拔高,拔高后顶部、底部的形状和原始图形保持一致,顶部和底部相连构成垂直面,其中线拔高后效果类似没有厚度的墙,多边形拔高后效果是由顶部、底部及侧面包围的体。

Summary

Methods:
clone

克隆一个新的白模,新白模与原有白模相同。

getAttributes

获取白模的属性。

getBBox

计算该白模的三维包围盒。

getBorderStyle

获取边框样式

getGeometry

获取白模中的几何体。

getHeight

获取楼栋高度

getHighlight

获取高亮状态

getId

获取白模对象的id。

getShowBorder

获取边框的可见性

getVisibility

获取当前地理要素的可见性。

offClick

取消要素注册的单击事件。

offHover

取消白模注册的Hover(滑入滑出)事件。

onClick

注冊白模的单击事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。

onHover

注冊白模的Hover事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。

setApperance

修改白模样式

setBorderStyle

设置边框样式

setHeight

设置白模的高度

setHighlight

设置高亮状态

setShowBorder

设置边框的可见性

setVisibility

设置白模可见性(该方法会同步对应矢量要素对应属性)。

Constructor

new Stretch(vector, showBorder, mapUnit, options)

白模高度和颜色设置方式:在地理要素对象的属性对象上,携带白模的高度值和颜色值。高度属性命名是“height”,默认值是10-600,单位是米。
1、渲染模式为“single”(纯色)时,颜色属性命名为“surfaceColor”,默认值是hmap.style.Color(0, 211, 211, 0.7)。
2、渲染模式为“gradient”(渐变)时,颜色属性有两个,一个是底面颜色“baseColorGradient”,一个是顶面颜色“topColorGradient”
3、渲染模式为“texture”(纹理)时,纹理属性有两个,一个是侧面的纹理样式“surfaceStyle”,一个是顶面的纹理样式“topStyle”

Parameters:
Name Type Default Description
vector module:feature~Vector

地理要素对象。地理要素的几何图形可以是线(hmap.geom.Line), 多线(hmap.geom.MultiLine), 面(hmap.geom.Polygon), 多面(hmap.geom.MultiPolygon)的一种。

showBorder Boolean false

该功能暂不支持

mapUnit String degrees

地图单位,默认是degrees(废弃参数,将在下个版本删除)

options Object

白模选项

Name Type Description
surfaceModel String

渲染模式,有三个值single(纯色),gradient(渐变色),texture(纹理)

surfaceColor module:style~Color

纯色模式下的表面颜色

baseColorGradient module:style~Color

渐变色模式下的底面颜色

topColorGradient module:style~Color

渐变色模式下的顶面颜色

surfaceStyle module:style~TextureFill | style~Style

纹理模式下的侧面纹理

topStyle module:style~TextureFill | style~Style

纹理模式下的顶面纹理

borderStyle module:style~LineSymbol | style~Style

边框样式,目前仅支持设置线的宽度,实线或者虚线,其中虚线时dashRatio不支持

Example
let polygon = new hmap.geom.Polygon([lineRing])
let vector = new hmap.feature.Vector(polygon, {height: 100, surfaceColor: new hmap.style.Color(211, 0, 0, 1),
    topBorderColor: new hmap.style.Color(211, 0, 0, 1)})
let stretch = new hmap.model.Stretch(vector)

Methods

clone() → {module:model~Stretch}

克隆一个新的白模,新白模与原有白模相同。

Returns:
module:model~Stretch -

新的白模对象

getAttributes() → {Object}

获取白模的属性。

Returns:
Object -

当前要素的属性信息。

getBBox() → {module:basetype~BBox}

计算该白模的三维包围盒。

Returns:
module:basetype~BBox -

返回白模的三维包围盒。

getBorderStyle() → {module:style~LineSymbol}

获取边框样式

Returns:
module:style~LineSymbol -

style 边框样式

getGeometry() → {module:geom~Geometry}

获取白模中的几何体。

Returns:
module:geom~Geometry -

几何体对象

getHeight() → {Number}

获取楼栋高度

Returns:
Number

getHighlight() → {Boolean}

获取高亮状态

Returns:
Boolean -

高亮状态

getId() → {String}

获取白模对象的id。

Returns:
String -

返回白模对象的id

getShowBorder() → {Boolean}

获取边框的可见性

Returns:
Boolean

getVisibility() → {Boolean}

获取当前地理要素的可见性。

Returns:
Boolean -

true表示可见,false表示不可见。

Example
let visible = feature.getVisibility();

offClick()

取消要素注册的单击事件。

offHover()

取消白模注册的Hover(滑入滑出)事件。

onClick(callback)

注冊白模的单击事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。

Parameters:
Name Type Description
callback

回调处理函数,参数是event对象,event.feature 可以取到要素本身。event.lonlat可以去到点击位置的经纬度,event.mapPixel可以取到像素位置

Example
//map.enableInteractive();
stretch.onClick(this.click);

onHover(mouseoverCallback, mouseOutCallback)

注冊白模的Hover事件,需调用map.enableInteractive()开启点和白模的交互行为才有效。

Parameters:
Name Type Description
mouseoverCallback

回调处理函数,参数是event对象,event.feature 可以取到要素本身。event.lonlat可以去到点击位置的经纬度,event.mapPixel可以取到像素位置

mouseOutCallback

回调处理函数,参数是event对象,event.feature 可以取到要素本身。event.lonlat可以去到点击位置的经纬度,event.mapPixel可以取到像素位置

Example
//map.enableInteractive();
stretch.onHover(this.mouseoverCallback,this.mouseOutCallback);

setApperance(options)

修改白模样式

Parameters:
Name Type Description
options

样式选项

Name Type Description
surfaceModel String

渲染模式,有三个值single(纯色),gradient(渐变色),texture(纹理)

surfaceColor module:style~Color

纯色模式下的表面颜色

baseColorGradient module:style~Color

渐变色模式下的底面颜色

topColorGradient module:style~Color

渐变色模式下的顶面颜色

surfaceStyle module:style~TextureFill | style~Style

纹理模式下的侧面纹理,如果直接修改surfaceStyle,必须是TextureFill类型,不支持Style类型。

topStyle module:style~TextureFill | style~Style

纹理模式下的顶面纹理,如果直接修改topStyle,必须是TextureFill类型,不支持Style类型。

borderStyle module:style~LineSymbol | style~Style

边框样式,目前仅支持设置线的宽度,实线或者虚线,其中虚线时dashRatio不支持,如果直接修改borderStyle,

showBorder Boolean

是否显示边框,默认false。
必须是LineSymbol类型,不支持Style类型。

setBorderStyle(style)

设置边框样式

Parameters:
Name Type Description
style module:style~Style | style~LineSymbol

边框样式

setHeight(height)

设置白模的高度

Parameters:
Name Type Description
height *

白模高度

setHighlight(flag) → {module:model~Stretch}

设置高亮状态

Parameters:
Name Type Description
flag Boolean
Returns:
module:model~Stretch -

白模模型

setShowBorder(flag)

设置边框的可见性

Parameters:
Name Type Default Description
flag Boolean true

边框的可见性

Deprecated:
  • 即将弃用,请通过设置apperance属性中的showBorder,决定是否显示边框。

setVisibility(visible)

设置白模可见性(该方法会同步对应矢量要素对应属性)。

Parameters:
Name Type Description
visible Boolean

可见用true;不可见用false。

Example
feature.setVisibility(true);