# new Geometry(options)
å‡ ä½•å›¾å½¢å¯¹è±¡åŸºç±»
[ES5引入方å¼]:
Zondy.Geometry.Geometry()
[ES6引入方å¼]:
import { Geometry } from "@mapgis/webclient-common"
傿•°
åç§° | 类型 | 默认值 | æè¿° |
---|---|---|---|
options |
Object | æž„é€ å‚æ•° |
|
spatialReference |
SpatialReference | new Zondy.SpatialReference('EPSG:4326') | å‡ ä½•ç‚¹çš„ç©ºé—´å‚考系,默认4326 |
继承关系
æˆå‘˜å˜é‡
æˆå‘˜å˜é‡æ¦‚è¿°
åç§° | 类型 | æè¿° |
---|---|---|
extent |
Number
|
|
hasZ |
Boolean
|
|
spatialReference |
SpatialReference
|
|
æˆå‘˜å˜é‡è¯¦æƒ…
方法
方法概述
åç§° | 返回值类型 | æè¿° |
---|---|---|
fromJSON |
Geometry
|
|
fromRings |
Array
|
|
isClockwise |
Boolean
|
|
clone |
Geometry
|
|
fromGeoJSON |
|
|
getGeometryType |
String
|
|
getIGSType |
String
|
|
getType |
String
|
|
off |
Object
|
|
on |
Object
|
|
toGeoJSON |
Object
|
|
toJSON |
Object
|
|
toString |
String
|
|
toXML |
String
|
|
方法详情
# static fromJSON(json)
通过一个JSONå¯¹è±¡åˆ›å»ºä¸€ä¸ªå‡ ä½•å¯¹è±¡
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
json |
Object | JSON对象 |
å‡ ä½•å¯¹è±¡
示例
通过一个JSONå¯¹è±¡åˆ›å»ºä¸€ä¸ªå‡ ä½•å¯¹è±¡
// ES5引入方å¼
const { Geometry } = Zondy
const { GeometryType } = Zondy.Enum
// ES6引入方å¼
import { Geometry, GeometryType } from "@mapgis/webclient-common"
// 通过jsonæž„é€ ä¸€ä¸ªå‡ ä½•å¯¹è±¡
const polygon = Geometry.fromJSON({
// 注æ„å¿…é¡»ä¼ å…¥ä¸€ä¸ªå‡ ä½•ç±»åž‹
type: GeometryType.polygon,
coordinates: [
[
[113, 29],
[114, 29],
[114, 30],
[113, 30],
[113, 29]
]
]
})
# static fromRings(pointArr, spatialReference)
对入å‚进行判æ–处ç†ï¼Œæž„建polygon;
支æŒçš„傿•°ç±»åž‹ä¸ºé—åˆçš„三维点数组(多个ringæž„æˆçš„æ•°ç»„),ä¸åŒºåˆ†é¡ºé€†æ—¶é’ˆ;
示例如下:
[1ã€æ ¹æ®å…¥å‚构建polygon]
[1ã€æ ¹æ®å…¥å‚构建polygon,指定ringsåæ ‡ç³»]
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
pointArr |
Array | 点数组 |
spatialReference |
SpatialReference | å‡ ä½•ç‚¹çš„ç©ºé—´å‚考系,默认4326,éžå¿…å¡«ï¼Œå½“ä¸æ˜¯4326æ—¶è¯·æŒ‡å®šåæ ‡ç³»ï¼Œæ–¹ä¾¿è¿›è¡ŒæŠ•å½±è½¬æ¢ |
构建的polygon组æˆçš„对象数组
示例
点数组构建polygon
// ES5引入方å¼
const { Geometry} = Zondy.Geometry
// ES6引入方å¼
import { Geometry } from "@mapgis/webclient-common"
// 输入三维点数组
const pointArr = [
[
[108, 30],
[108, 33],
[115, 33],
[115, 30],
[108, 30],
],
[
[110, 31],
[113, 31],
[113, 32],
[110, 32],
[110, 31],
],
[
[110, 20],
[110, 25],
[115, 25],
[115, 20],
[110, 20],
],
];
// 点数组构建polygon
const fromRings = Geometry.fromRings(pointArr)
console.log("构建的多边形对象:", fromRings)
æŒ‡å®šåæ ‡ç³»çš„点数组构建polygon
// ES5引入方å¼
const { Geometry,SpatialReference} = Zondy.Geometry
// ES6引入方å¼
import { Geometry,SpatialReference } from "@mapgis/webclient-common"
// è¾“å…¥æŒ‡å®šåæ ‡ç³»çš„点数组
const pointArr_4547 = [
[
[-79450.434008356, 3335318.50110312],
[-61138.8507993389, 3668785.80194059],
[593455.16027313, 3653192.25094895],
[596488.74806744, 3320534.43645214],
[-79450.434008356, 3335318.50110312],
],
[
[22192.1178133016, 3441729.02787479],
[213425.289259696, 3434840.60529103],
[216463.35881388, 3545788.2250497],
[27269.5496056064, 3552800.06686639],
[22192.1178133016, 3441729.02787479],
],
[
[307007.697900227, 3441729.02787479],
[500000.000000819, 3441729.02787479],
[500000.00000081, 3545788.2250497],
[308973.125268913, 3545788.2250497],
[307007.697900227, 3441729.02787479],
],
[
[81149.2212748193, 2217372.5132106],
[81149.2212748193, 2766426.51455527],
[600953.408059909, 2766426.51455527],
[600953.408059909, 2217372.5132106],
[81149.2212748193, 2217372.5132106],
],
];
// åˆ›å»ºåæ ‡ç³»
const spatialReference = new SpatialReference({
wkid: 4547,
});
// 点数组构建polygon
const fromRings = Geometry.fromRings(pointArr_4547, spatialReference)
console.log("æž„å»ºçš„æŒ‡å®šåæ ‡ç³»çš„多边形对象:", fromRings)
# static isClockwise(pointArr)
对点数组进行是å¦ä¸ºé¡ºæ—¶é’ˆåˆ¤æ–;
支æŒçš„傿•°ç±»åž‹ä¸ºé—åˆçš„二维点数组;
示例如下:
[对点数组进行顺时针判æ–]
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
pointArr |
Array | 点数组 |
是å¦ä¸ºé¡ºæ—¶é’ˆ
示例
对点数组进行顺时针判æ–
// ES5引入方å¼
const { Geometry } = Zondy.Geometry
// ES6引入方å¼
import { Geometry } from "@mapgis/webclient-common"
// æž„é€ çº¿å‡ ä½•å¯¹è±¡
const pointArr = [
[112, 30],
[114, 30],
[114, 32],
[112, 30],
];
// 对点数组进行顺时针判æ–
const isClockwise = Geometry.isClockwise(pointArr)
console.log("是å¦ä¸ºé¡ºæ—¶é’ˆ:", isClockwise)
# off(typesopt, fnopt, contextopt)
移除事件
示例如下:
[1ã€ç§»é™¤ä¸€ä¸ªäº‹ä»¶çš„æŒ‡å®šå›žè°ƒå‡½æ•°]
[2ã€ç§»é™¤ä¸€ä¸ªäº‹ä»¶çš„æ‰€æœ‰å›žè°ƒå‡½æ•°]
[3ã€ç§»é™¤å¤šä¸ªäº‹ä»¶çš„åŒä¸€ä¸ªæŒ‡å®šçš„回调函数]
[4ã€ç§»é™¤å¤šä¸ªæŒ‡å®šäº‹ä»¶çš„回调函数]
[5ã€åˆ 除时指定上下文 - types类型为å—符串]
[6ã€åˆ 除时指定上下文 - types类型为对象]
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
types |
string | 移除指定事件类型上绑定的回调函数 |
fn |
function | 事件回调函数,当types为å—ç¬¦ä¸²ï¼Œä¸”ä¸æŒ‡å®šè¦åˆ é™¤çš„å›žè°ƒå‡½æ•°æ—¶ï¼Œåˆ é™¤è¯¥äº‹ä»¶ä¸Šçš„æ‰€æœ‰å›žè°ƒå‡½æ•° |
context |
Object | 事件回调函数的this关键å—将指å‘的对象 |
- Inherited From:
当å‰å®žä¾‹
示例
移除一个事件的指定回调函数
// 一个事件的回调函数
const clickFunction = function (event) {
console.log("点击事件:", event)
}
// 调用MapView或SceneView的off方法移除一个事件的回调函数
view.off('click', clickFunction)
移除一个事件的所有回调函数
// 一个事件的回调函数1
const clickFunction1 = function (event) {
console.log("点击事件1:", event)
}
// 一个事件的回调函数2
const clickFunction2 = function (event) {
console.log("点击事件2:", event)
}
// 调用MapView或SceneView的off方法移除一个事件的所有回调函数
// 䏿Œ‡å®šå›žè°ƒå‡½æ•°ï¼Œåˆ™ç§»é™¤è¯¥äº‹ä»¶ä¸Šçš„æ‰€æœ‰ç»‘定的回调函数
view.off('click')
移除多个事件的åŒä¸€ä¸ªæŒ‡å®šçš„回调函数
// 多个事件的åŒä¸€ä¸ªå›žè°ƒå‡½æ•°
const eventFunction = function (event) {
console.log("事件:", event)
}
// 调用MapView或SceneViewçš„off方法移除多个事件的åŒä¸€ä¸ªæŒ‡å®šçš„回调函数
view.off('click double-click', eventFunction)
移除多个指定事件的回调函数
// 一个事件的回调函数
const clickFunction = function (event) {
console.log("click事件:", event)
}
// 调用MapView或SceneView的off方法移除多个指定事件的回调函数
view.off({
// 移除click事件上一个指定的函数
"click": clickFunction,
// 移除double-click上所有指定的函数
"double-click": undefined
})
åˆ é™¤æ—¶æŒ‡å®šä¸Šä¸‹æ–‡ - types类型为å—符串
// 一个事件的回调函数
const clickFunction = function (event) {
console.log("点击事件:", event)
}
// 调用MapView或SceneView的off方法移除一个事件的回调函数
view.off('click', clickFunction, view)
// 调用MapView或SceneView的off方法移除一个事件的所有回调函数
view.off('click', undefined, view)
åˆ é™¤æ—¶æŒ‡å®šä¸Šä¸‹æ–‡ - types类型为对象
// 一个事件的回调函数
const clickFunction = function (event) {
console.log("click事件:", event)
}
// 调用MapView或SceneView的off方法移除多个指定事件的回调函数
view.off({
// 移除click事件上一个指定的函数
"click": clickFunction,
// 移除double-click上所有指定的函数
"double-click": undefined
}, view)
# on(typesopt, fnopt, contextopt)
注册一个新的监å¬äº‹ä»¶;
示例如下:
[1ã€æ³¨å†Œä¸€ä¸ªäº‹ä»¶]
[2ã€ä¸€æ¬¡æ³¨å†Œå¤šä¸ªäº‹ä»¶ - åŒä¸€ä¸ªå›žè°ƒå‡½æ•°]
[3ã€ä¸€æ¬¡æ³¨å†Œå¤šä¸ªäº‹ä»¶ - 分别指回调应函数]
[4ã€å½“types为å—符串时 - 指定上下文]
[5ã€å½“types为对象时 - 指定上下文]
傿•°
åç§° | 类型 | 默认值 | æè¿° |
---|---|---|---|
types |
String | Object | null | 事件类型 |
fn |
function | null | 事件回调函数 |
context |
Object | null | 事件回调函数的this关键å—将指å‘的对象 |
- Inherited From:
当å‰å®žä¾‹
示例
注册一个事件
// åˆå§‹åŒ–一个点击事件回调函数
const clickFunction = function (event) {
console.log("点击事件:", event)
}
// 调用MapView或SceneView的on方法注册一个点击事件
view.on('click', clickFunction)
一次注册多个事件 - åŒä¸€ä¸ªå›žè°ƒå‡½æ•°
// åˆå§‹åŒ–一个事件回调函数
const eventFunction = function (event) {
console.log("事件:", event)
}
// 调用MapView或SceneView的on方法注册多个事件
// 多个事件类型使用åŒä¸€ä¸ªå›žè°ƒå‡½æ•°
view.on('click right-click-down', eventFunction)
一次注册多个事件 - 分别指回调应函数
// åˆå§‹åŒ–一个左键点击事件回调函数
const clickFunction = function (event) {
console.log("click事件:", event)
}
// åˆå§‹åŒ–一个å³é”®æŒ‰ä¸‹äº‹ä»¶å›žè°ƒå‡½æ•°
const rightClickFunction = function (event) {
console.log("right-click-down事件:", event)
}
// 调用MapView或SceneView的on方法注册多个事件
// æ¯ä¸€ä¸ªäº‹ä»¶ç±»åž‹ï¼Œä½¿ç”¨å•独的回调函数
// 注æ„使用æ¤ç§æ–¹å¼ï¼Œä¸€ç§ç±»åž‹çš„事件仅能指定一个回调函数
view.on({
"click": clickFunction,
"right-click-down": rightClickFunction
})
指定上下文 - types类型为å—符串
// åˆå§‹åŒ–一个点击事件回调函数
const clickFunction = function (event) {
console.log("点击事件:", event)
console.log("上下文对象:", this)
}
// 调用MapView或SceneView的on方法注册一个点击事件
// 指定view为回调函数的上下文对象
view.on('click', clickFunction, view)
指定上下文 - types类型为对象
// åˆå§‹åŒ–一个点击事件回调函数
const clickFunction = function (event) {
console.log("点击事件:", event)
console.log("上下文对象:", this)
}
// 调用MapView或SceneView的on方法注册一个点击事件
// 指定view为回调函数的上下文对象
view.on({
"click": clickFunction,
"right-click-down": clickFunction
}, view)
# toString()
导出为å—符串,å类实现,这里必须是igsè¦æ±‚çš„å—符串
å—符串