layerservice
mapplat
平台可以自动生成 layerservice
服务, 如果你的项目不想独立部署一个独立的 Java
的 layerservice
, 新建项目时自动申请一个 layerservice
步骤
- 新建项目时点击
让mapplat帮我自动申请一个
按钮 - 填写你的数据库连接信息, 支持的数据库有
数据库 |
---|
SQL Server |
MySQL |
Postgres |
MariaDB |
- 点击
测试数据库连通性
按钮, 确保数据库可以连通, 如果你不配置数据库信息也可以, 只是你在配置图层的数据源时不可以配置SQL
了
提示
如果你想配置图层的数据源为 SQL
时, 测试数据库连通性
是必须的, 即使你填写了数据库的信息, 但是测试不通过也不行,必须保证数据库的测试通过,否则 mapplat
无法访问你的业务数据库了,当然就无法无法配置图层的数据源为 SQL
警告 提示
- 填写数据库的连接信息需要仔细和认真
- 确保你的数据库和
mapplat
部署的位置在一个网络内, 否则肯定连接测试不通过
适用场景
mapplat
平台可以项目的业务数据库可以连通,他们处于一个网段内
优点
- 一键就可以生成一个
layerservice
服务, 整个过程一分钟内完成
警告
只有管理员才能新建项目, 所以只有管理员才能看到该页面
- 无需再去部署
Java
版本的layerservice
服务,mapplat
可以帮你完全托管了
缺点
- 所有项目的
layerservice
服务都有mapplat
平台托管,会导致mapplat
的压力比较大 - 如果数据库信息测试不通过, 将不能配置图层的数据源为
SQL
说明
mapplat
自动生成的layerservice
服务是一个nodejs
服务- 整个项目的信息, 项目里有哪些页面, 每个页面里哪些图层, 图层的配置等信息都是保存在
sqlite
里 - 每个
layerservice
服务背后都对应这个一个独立的sqlite
存储, 方便快速迁移
Java layerservice 服务
如果由于各种原因无法在 mapplat
里 完成 layerservice
服务的托管, 那么你只能独立部署 Java
版本的 layerservice
联系方式
邮箱:mehudeyi@163.com
QQ:1390110605
数据存储
layerservice
服务会在你的业务数据库里面创建4张表
表名 | 表的描述 | 表里数据比较大的字段 | 对应的数据类型 |
---|---|---|---|
jiyue_map_tuceng_page | 整个项目的页面表 | config | text |
jiyue_map_tuceng | 图层表 | config | text |
jiyue_map_tucengstyle | 图层样式表 | style | text |
jiyue_map_tucengdetails | 上传的图层数据的数据表 | lnglats , property | text |
layerservice
会在你的业务系统里自动创建这几张表的, 并会自动设置这些数据字段类型为text
的, 如果你的业务系统报个错误, 一般都是你的业务系统里已经存在 这几张表且对应的数据字段类型设置的不对导致
DANGER
修复方法就是把这些数据字段改为 text
- 他们的
Java
实体代码如下
java
/**
* 页面
*/
@Data
@Entity
@Table(name = "jiyue_map_tuceng_page")
public class MapTucengPage implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
@Column(name = "\"id\"")
private String id;
@Column(name = "\"name\"")//页面名称
private String name;
@Column(name = "\"path\"")//页面地址
private String path;
@Column(name = "\"comment\"")//说明
private String comment;
@Column(name="\"config\"",columnDefinition="TEXT") //储存json配置
private String config;
}
//图层
@Data
@Entity
@Table(name="jiyue_map_tuceng")
public class Maptuceng implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
private String id;
@Column(length=50)
private String code;
@Column(length=100)
private String name;
@Column(name="\"layername\"")
private String layername;
@Column(name="\"pid\"")
private String pid;
@Column(name="\"type\"")
private String type;
@Column(name="\"show\"")
private String show;
@Column(name="\"comment\"")
private String comment;
@Column(name="\"sql\"",columnDefinition="TEXT")
private String sql;
@Column(name="\"order\"")
private String order;
@Column(name="\"mapView\"",columnDefinition="TEXT")
private String mapView;//记录地图的视角
@Column(name="\"icon\"",columnDefinition="TEXT")
private String icon;//记录树形结构前面的目录icon
@Column(name="\"pageId\"")
private String pageId;//和 jiyue_map_tuceng_page 表进行关联
@Column(name="\"linkId\"")
private String linkId;//和 链接ID
@Column(name="\"config\"",columnDefinition="TEXT")
private String config;//储存json配置
}
//图层样式
@Data
@Entity
@Table(name="jiyue_map_tucengstyle")
public class MaptucengStyle implements java.io.Serializable {
private static final long serialVersionUID = -1187301020388304410L;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name="\"id\"")
private String id;
@Column(name="\"layername\"")
private String layername;
@Column(name="\"updatetime\"")
private Date updatetime;
@Column(name="\"markerFile\"",columnDefinition="TEXT")
private String markerFile;
@Column(name="\"style\"",columnDefinition="TEXT")
private String style;
}
//图层上传的数据详情
@Data
@Entity
@Table(name = "jiyue_map_tucengdetails")
public class MapTucengDetails implements java.io.Serializable {
private static final long serialVersionUID = -2743330570542392608L;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name = "\"id\"")
private String id;
@Column(name = "\"name\"")
private String name;
@Column(name = "\"layername\"")
private String layername;
@Column(name = "\"type\"")
private String type;
@Column(name = "\"lnglats\"", columnDefinition = "TEXT")
private String lnglats;
@Column(name = "\"show\"")
private String show;
@Column(name = "\"property\"", columnDefinition = "TEXT")
private String property;
}