| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
PAL Node.js binding
PAL是一个成熟C++的标注库. 提供高效的meta-heuristic算法用于寻找点,线,多边形的标注摆放位置. 通过JPAL JNI wrapper同样可以在Java平台使用, 基于LGPL, GNU许可证协议
 关于PAL的更多内容(下载, 文档, 效果, 使用实例)参看官方网站
var opts = {
dpi: 72,
pointP: 1, // 点候选位置数量
lineP: 1, // 线候选位置数量
polyP: 1, // 多边形候选位置数量
bbox: [0, 0, 100, 100] // label范围
}
var data = [
{
name: 'layer1',
features: [
{
wkt: 'POLYGON((1 1,50 1,50 50,1 50,1 1))', // feature wkt表示
label: 'first label', // label内容
width: 30, // 宽度
height: 10 // 高度
}
]
}
]
var pal = require('node-pal')
var labels = pal.labeller(data, opts) // 进行label计算
// 结果
[
{
origX: 25.5, //原始点x坐标
origY: 25.5, //原始点y坐标
x1: 25.5, //左上角x
y1: 25.5, //左上角y
x2: 55.5, //右上角x
y2: 25.5, //右上角y
x3: 55.5, //右下角x
y3: 35.5, //右下角y
x4: 25.5, //左下角x
y4: 35.5, //左下角y
rotation: 0, //旋转角度
featureId: 'f0' //
}
]
label position 计算接口
pa.labeller(data, opt)
data为layer(name, features数组必选)数组, layer地理数据为features数组(feature包含: wkt, width, height, name) :
[
{
name: 'layer_name',
obstacle: false, // 是否为障碍物
unit: 'PIXEL', // 计算单位
priority: 0.5, // 优先级
arrange: 'P_LINE', // 摆放模式
features: [{wkt: "LINESTRING(x1 y1, x2 y2, x3 y3)", width: 40, height: 10, name: '东直门内大街 '}]
}
]
配置选项opt(可选):
| Back | FazBrowse Home | New Git URL |