PanoScene~PanoScene(container, serviceUrl, callback)

全景图服务类,主要用于对接空间信息平台发布的全景图服务

Summary

Methods:
addControl

添加指定控件

addFeatures

添加要素

addPopups

添加弹窗

addSolutions

添加解决方案

destroy

销毁全景图服务

detectFeaturesAtPixel

拾取要素

flyTo

旋转/缩放动画在于缩放和旋转在效果体现上可能不是同时,以及动画的时间会根据参数进行相应计算

getAllControls

返回当前场景所有的控件

getAutorotateStatus

检查是否处于自动旋转状态

getCenter

返回全景图的中心点

getControlsByType

根据控件类型返回相应控件

getCoordinateFromPixel

转换屏幕坐标变成球体经纬度坐标

getCurrentView

获取当前视图参数

getDebugEnable

获得当前辅助显示是否开启的状态

getFeatures

获取要素数

getFullScreenEnabled

检查页面是否全屏状态

getId

返回全景实例的唯一标志

getLatitudeRange

获得设置latitudeRange 纬度范围

getLongitudeRange

获得longitudeRange 经度范围

getPanEnable

获取当前全景图是否允许拖拽

getPixelFromCoordinate

球体经纬度坐标转换到屏幕坐标

getPopups

获取弹窗,以数组形式返回

getSize

返回当前视图的大小

getStereoViewEnabled

获取立体状态是否开启

getType

返回当前类型

getZoomEnable

获取当前全景图是否允许缩放

getZoomLevel

返回当前全景图的缩放级别

off

结束事件

on

绑定事件

once

事件绑定一次失效

print

打印全景图

refresh

刷新场景

removeControl

移除指定控件

removeFeatures

删除要素

removePopups

删除弹窗

removeSolutions

移除解决方案

resize

重置容器大小

rotate

根据经纬度旋转场景

setDebugEnable

开启/关闭显示辅助调试控件,可以辅助显示全景正在观看的中心和右下角显示全景坐标

setFullScreenEnable

开启或者关闭全屏 由于js的安全性考虑,此方法只能通过用户鼠标、键盘等事件中才能触发,即“对于一些非用户事件,比如onload、timeout等之类的事件中调用requestFullScreen是无法生效的

setLatitudeRange

设置latitudeRange 垂直旋转范围(纬度范围)

setLongitudeRange

设置longitudeRange 水平旋转范围(经度范围)

setMaxZoom

设置全景最大缩放级别

setMinZoom

设置全景最小缩放级别

setPanEnable

开启或者关闭全景图拖拽功能,包括鼠标动作和键盘动作

setStereoViewEnabled

开启/关闭立体视图

setZoomEnable

开启或者关闭全景图缩放功能,包括鼠标动作和键盘动作

startAutorotate

开启自动旋转

startCrystalBall

开启水晶球效果

startFisheye

开启鱼眼效果

stopAutorotate

停止自动旋转

stopCrystalBall

关闭水晶球效果

stopFisheye

停止鱼眼效果

stopFly

停止动画

zoom

缩放到指定级别

zoomIn

放大全景

zoomOut

缩小全景

Constructor

new PanoScene(container, serviceUrl, callback)

Parameters:
Name Type Description
container HTMLElement | String

全景图容器,div元素容器或者容器id

serviceUrl String

空间信息平台的全景图服务地址

callback function

回调方法

Throws:
  • 当浏览器不支持canvas抛出错误

  • 当没有传全景图图片时候抛出错误

  • 当div容器没有传入的时候

Example
let pano=hmapEx.PanoScene('div',serviceUrl,callback);

Methods

addControl(control)

添加指定控件

Parameters:
Name Type Description
control module:control~Control

控件。

addFeatures(features, groupNameopt)

添加要素

Parameters:
Name Type Attributes Description
features Array.<module:feature>

要素数组

groupName String <optional>

组名称(可选参数),内部会按照这个组名称进行分类归组,方便逻辑管理

Throws:

features 不是数组的时候抛出异常

addPopups(popups, groupNameopt)

添加弹窗

Parameters:
Name Type Attributes Description
popups Array.<module:Popup>

弹窗数组,必须为数组

groupName String <optional>

组名称(可选参数),内部会按照这个组名称进行分类归组,方便逻辑管理

Throws:

popup 不是数组的时候抛出异常

addSolutions(solutions)

添加解决方案

Parameters:
Name Type Description
solutions Array.<module:solution~Solution>

destroy()

销毁全景图服务

detectFeaturesAtPixel(pixel, groupName) → {Array.<module:feature>}

拾取要素

Parameters:
Name Type Description
pixel Object

一个屏幕像素,可由事件对象上获得

Name Type Description
x Number

X方向上屏幕的值

y Number

Y方向上屏幕的值

groupName string

组名称 可用于查询特定图层的数据 当不传值得时候默认为查询全部图层

Returns:
Array.<module:feature>

flyTo(options) → {Promise}

旋转/缩放动画在于缩放和旋转在效果体现上可能不是同时,以及动画的时间会根据参数进行相应计算

Parameters:
Name Type Description
options Object

旋转或者放大的配置参数 {longitude:0,latitude:0,zoom}

Name Type Attributes Description
position Array.<Number>

转转目标位置

zoom Number

缩放大小

duration Number <optional>

动画时长默认1.5s 单位秒

way string <optional>

动画旋转方式 默认 ANIMATION_TYPE.IN_OUT_SINE 其他参数应看 ANIMATION_TYPE 的其他值

Returns:
Promise

getAllControls()

返回当前场景所有的控件

getAutorotateStatus() → {Boolean}

检查是否处于自动旋转状态

Returns:
Boolean

getCenter() → {Object|Number|Number}

返回全景图的中心点

Returns:
  • Object -

    obj

  • Number -

    obj.longitude 经度

  • Number -

    obj.latitude 纬度

getControlsByType(type) → {Array.<module:control~Control>}

根据控件类型返回相应控件

Parameters:
Name Type Description
type String

控件类型

Returns:
Array.<module:control~Control>

getCoordinateFromPixel(viewerPoint) → {Array.<Number>}

转换屏幕坐标变成球体经纬度坐标

Parameters:
Name Type Description
viewerPoint Object

返回经纬度坐标

Name Type Description
x Number

屏幕坐标 x

y Number

屏幕坐标 y

Returns:
Array.<Number> -

position

getCurrentView() → {Object|Number|Number|Number|Number|Number}

获取当前视图参数

Returns:
  • Object -

    object 视图参数

  • Number -

    object.maxZoom 当前最大缩放级别

  • Number -

    object.minZoom 当前最小缩放级别

  • Number -

    object.longitude 当前全景中心点经度

  • Number -

    object.latitude 当前全景中心点纬度

  • Number -

    object.zoomLevel 当前缩放级别

getDebugEnable() → {Boolean}

获得当前辅助显示是否开启的状态

Returns:
Boolean

getFeatures(groupName) → {Array.<module:feature>}

获取要素数

Parameters:
Name Type Description
groupName String

传入字符串根据组名去获取,不传入参数则获取所有要素

Returns:
Array.<module:feature>

getFullScreenEnabled() → {boolean}

检查页面是否全屏状态

Returns:
boolean

getId() → {String}

返回全景实例的唯一标志

Returns:
String

getLatitudeRange() → {Array.<Number>}

获得设置latitudeRange 纬度范围

Returns:
Array.<Number>

getLongitudeRange() → {Array.<Number>}

获得longitudeRange 经度范围

Returns:
Array.<Number>

getPanEnable() → {Boolean}

获取当前全景图是否允许拖拽

Returns:
Boolean

getPixelFromCoordinate(position) → {Object|Number|Number}

球体经纬度坐标转换到屏幕坐标

Parameters:
Name Type Description
position Array.<Number>

球体经纬度坐标

Returns:
  • Object -

    position

  • Number -

    position.x 屏幕X坐标

  • Number -

    position.y 屏幕Y坐标

getPopups(groupName)

获取弹窗,以数组形式返回

Parameters:
Name Type Description
groupName String

传入字符串根据组名去获取,不传入参数则获取所有

getSize() → {Object|Number|Number}

返回当前视图的大小

Returns:
  • Object -

    size

  • Number -

    size.width 宽度

  • Number -

    size.height 高度

getStereoViewEnabled() → {Boolean}

获取立体状态是否开启

Returns:
Boolean

getType() → {String}

返回当前类型

Returns:
String

getZoomEnable() → {Boolean}

获取当前全景图是否允许缩放

Returns:
Boolean

getZoomLevel() → {number}

返回当前全景图的缩放级别

Returns:
number

off(eventType, callback)

结束事件

Parameters:
Name Type Description
eventType String

事件类型

callback function

注册事件监听的回调函数

on(eventType, callback)

绑定事件

Parameters:
Name Type Description
eventType String

事件类型

callback function

注册事件监听的回调函数

once(eventType, callback)

事件绑定一次失效

Parameters:
Name Type Description
eventType String

事件类型

callback function

注册事件监听的回调函数

print()

打印全景图

refresh()

刷新场景

removeControl(control)

移除指定控件

Parameters:
Name Type Description
control module:control~Control | String

控件对象或者控件类型名称

removeFeatures(features)

删除要素

Parameters:
Name Type Description
features Array.<module:feature> | String

要删除的数组数据,传入数组则删除数组的要素,传入组名则删除这个组的弹窗,不传任何参数则删除所有要素

removePopups(popups)

删除弹窗

Parameters:
Name Type Description
popups Array.<module:Popup> | String

要删除的数组数据,传入数组则删除数组的要素,传入组名则删除这个组的弹窗,不传任何参数则删除所有弹窗

removeSolutions(solutions,参数可以是数组或者没有参数,没有参数则认为删除所有,数组则按照数组删除)

移除解决方案

Parameters:
Name Type Description
solutions,参数可以是数组或者没有参数,没有参数则认为删除所有,数组则按照数组删除 Array.<module:solution~Solution>

resize(size)

重置容器大小

Parameters:
Name Type Description
size Object

容器大小

Name Type Description
width Number

宽度

height Number

高度

rotate(position, ignoreRangeopt)

根据经纬度旋转场景

Parameters:
Name Type Attributes Default Description
position Array.<Number>
ignoreRange boolean <optional>
false

忽视经度和纬度的范围限制

setDebugEnable(enableDebug)

开启/关闭显示辅助调试控件,可以辅助显示全景正在观看的中心和右下角显示全景坐标

Parameters:
Name Type Description
enableDebug Boolean

setFullScreenEnable(enableFullScreen)

开启或者关闭全屏 由于js的安全性考虑,此方法只能通过用户鼠标、键盘等事件中才能触发,即“对于一些非用户事件,比如onload、timeout等之类的事件中调用requestFullScreen是无法生效的

Parameters:
Name Type Description
enableFullScreen Boolean

setLatitudeRange(value)

设置latitudeRange 垂直旋转范围(纬度范围)

Parameters:
Name Type Description
value Array.<Number>

垂直旋转范围 当不传入参数的时候为不限制旋转,即焦点可以到[-π/2,π/2]

setLongitudeRange(value)

设置longitudeRange 水平旋转范围(经度范围)

Parameters:
Name Type Description
value Array.<Number>

水平旋转范围,当不传入参数的时候不进行水平方向旋转的限制,即焦点可以到[0,2π]

setMaxZoom(maxzoom, iszoom)

设置全景最大缩放级别

Parameters:
Name Type Default Description
maxzoom Number

最大缩放级别

iszoom Boolean false

是否执行放大操作,默认false

setMinZoom(minZoom, iszoom)

设置全景最小缩放级别

Parameters:
Name Type Default Description
minZoom Number

最小缩放级别

iszoom Boolean false

是否执行缩小操作,默认false

setPanEnable(enablePan)

开启或者关闭全景图拖拽功能,包括鼠标动作和键盘动作

Parameters:
Name Type Description
enablePan Boolean

setStereoViewEnabled(enable)

开启/关闭立体视图

Parameters:
Name Type Description
enable Boolean

setZoomEnable(enableZoom)

开启或者关闭全景图缩放功能,包括鼠标动作和键盘动作

Parameters:
Name Type Description
enableZoom Boolean

startAutorotate(options)

开启自动旋转

Parameters:
Name Type Description
options Object

配置参数

Name Type Attributes Description
stopDelay Number <optional>

多少秒之后开启自动旋转 默认0秒

inactivityDelay Number <optional>

用户停止活动之后多少秒开启自动旋转,默认5秒

startCrystalBall(value)

开启水晶球效果

Parameters:
Name Type Default Description
value Number 155

设置球与相机的距离,默认155,现在范围在1-200

startFisheye(value)

开启鱼眼效果

Parameters:
Name Type Default Description
value Number 80

开启鱼眼的时候限制的最大zoom值,默认是80

stopAutorotate()

停止自动旋转

stopCrystalBall()

关闭水晶球效果

stopFisheye()

停止鱼眼效果

stopFly() → {Promise}

停止动画

Returns:
Promise

zoom(level)

缩放到指定级别

Parameters:
Name Type Description
level Number

缩放层级 [1,100]

zoomIn()

放大全景

zoomOut()

缩小全景