From 81f90ba61808d4ca15198e692b511f00e46cfbe3 Mon Sep 17 00:00:00 2001 From: peihao <1280253838@qq.com> Date: Sun, 19 Sep 2021 11:31:47 +0800 Subject: [PATCH] =?UTF-8?q?1.1.0=20=E4=BF=AE=E6=94=B9ios=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=BC=93=E6=85=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AppletsMapController.java | 13 ++-- .../LandListedLonLatController.java | 3 +- .../LandToListLonLatController.java | 3 +- .../applets/convert/LandLonLatConvert.java | 70 +++++++++++++++++++ .../com/air/applets/dto/CoordinatePoint.java | 21 ++++++ .../java/com/air/applets/dto/Feature.java | 23 ++++++ .../com/air/applets/dto/LandLonLatDto.java | 27 +++++++ .../com/air/applets/dto/LandProperties.java | 21 ++++++ .../applets/entity/CityAreaLonLatBase.java | 40 +++++++++++ .../java/com/air/applets/entity/Dazutuan.java | 5 -- .../java/com/air/applets/entity/Huanxian.java | 7 +- .../com/air/applets/entity/Xiaozutuan.java | 2 - .../com/air/applets/entity/Xingzhengqu.java | 7 +- .../air/applets/mapper/AppletsMapMapper.java | 12 ++-- .../applets/serivce/AppletsMapService.java | 13 ++-- .../serivce/impl/AppletsMapServiceImpl.java | 45 ++++++++---- .../main/java/com/air/entity/PolygonGeom.java | 32 +++++++++ .../{LocateInfo.java => PolygonPoint.java} | 14 ++-- .../LandListedLonLatController.java | 10 +-- .../LandToListLonLatController.java | 7 +- .../com/air/land/entity/LandListedLonLat.java | 11 +-- .../com/air/land/entity/LandToListLonLat.java | 11 --- .../land/mapper/LandToListLonLatMapper.java | 2 +- .../land/service/LandListedLonLatService.java | 3 +- .../land/service/LandToListLonLatService.java | 3 +- .../impl/LandListedLonLatServiceImpl.java | 9 ++- .../impl/LandToListLonLatServiceImpl.java | 10 ++- .../impl/LandToListSendServiceImpl.java | 2 +- .../com/air/land/vo/LandListedLonLatVo.java | 2 +- .../com/air/land/vo/LandToListLonLatVo.java | 2 +- .../controller/SysMessageController.java | 1 - .../main/java/com/air/utils/GeomUtils.java | 69 ++++++++++++++++++ air/src/main/java/com/air/utils/WgsUtil.java | 66 +++++++++-------- .../resources/mapper/AppletsMapMapper.xml | 67 +++++++++--------- .../mapper/LandListedLonLatMapper.xml | 10 +-- .../mapper/LandToListLonLatMapper.xml | 14 +--- 36 files changed, 471 insertions(+), 186 deletions(-) create mode 100644 air/src/main/java/com/air/applets/convert/LandLonLatConvert.java create mode 100644 air/src/main/java/com/air/applets/dto/CoordinatePoint.java create mode 100644 air/src/main/java/com/air/applets/dto/Feature.java create mode 100644 air/src/main/java/com/air/applets/dto/LandLonLatDto.java create mode 100644 air/src/main/java/com/air/applets/dto/LandProperties.java create mode 100644 air/src/main/java/com/air/applets/entity/CityAreaLonLatBase.java create mode 100644 air/src/main/java/com/air/entity/PolygonGeom.java rename air/src/main/java/com/air/entity/{LocateInfo.java => PolygonPoint.java} (63%) create mode 100644 air/src/main/java/com/air/utils/GeomUtils.java diff --git a/air/src/main/java/com/air/applets/controller/AppletsMapController.java b/air/src/main/java/com/air/applets/controller/AppletsMapController.java index 71b0a01..5993f30 100644 --- a/air/src/main/java/com/air/applets/controller/AppletsMapController.java +++ b/air/src/main/java/com/air/applets/controller/AppletsMapController.java @@ -1,5 +1,6 @@ package com.air.applets.controller; +import com.air.applets.dto.LandLonLatDto; import com.air.applets.serivce.AppletsMapService; import com.cinderella.framework.common.core.util.R; import io.swagger.annotations.Api; @@ -33,7 +34,7 @@ public class AppletsMapController { */ @ApiOperation(value = "根据定位经纬度范围行政区数据", notes = "根据定位经纬度范围行政区数据") @GetMapping("getRegionByLocation") - public R>> getRegionByLocation(String city) { + public R> getRegionByLocation(String city) { return R.ok(mapService.getRegionByLocation(city), "查询成功"); } @@ -63,7 +64,7 @@ public class AppletsMapController { */ @ApiOperation(value = "根据定位经纬度返回5公里范围内的大组团小组团", notes = "根据定位经纬度返回5公里范围内的大组团小组团") @GetMapping("getTypeRegionByLocation") - public R>> getTypeRegionByLocation(@RequestParam String type,String city) { + public R> getTypeRegionByLocation(@RequestParam String type,String city) { return R.ok(mapService.getTypeRegionByLocation(type,city), "查询成功"); } @@ -74,7 +75,7 @@ public class AppletsMapController { */ @ApiOperation(value = "根据定位经纬度范围行政区数据", notes = "根据定位经纬度范围行政区数据") @GetMapping("getLoopLine") - public R>> getLoopLine(String city) { + public R> getLoopLine(String city) { return R.ok(mapService.getLoopLine(city), "查询成功"); } @@ -85,7 +86,7 @@ public class AppletsMapController { */ @ApiOperation(value = "获取拟挂牌地块数据", notes = "获取拟挂牌地块数据") @GetMapping("getLandToList") - public R>> getLandToList(String city) { + public R> getLandToList(String city) { return R.ok(mapService.getLandToList(city), "查询成功"); } @@ -96,7 +97,7 @@ public class AppletsMapController { */ @ApiOperation(value = "获取挂牌中数据", notes = "获取挂牌中数据") @GetMapping("getLandListing") - public R>> getLandListing(String city) { + public R> getLandListing(String city) { return R.ok(mapService.getLandListing(city), "查询成功"); } @@ -107,7 +108,7 @@ public class AppletsMapController { */ @ApiOperation(value = "获取出让地块数据", notes = "获取出让地块数据") @GetMapping("getLandList") - public R>> getLandList(@RequestParam String start, @RequestParam String end,String city) { + public R> getLandList(@RequestParam String start, @RequestParam String end,String city) { return R.ok(mapService.getLandList(start, end,city), "查询成功"); } diff --git a/air/src/main/java/com/air/applets/controller/LandListedLonLatController.java b/air/src/main/java/com/air/applets/controller/LandListedLonLatController.java index 4aa6bc2..7102cbe 100644 --- a/air/src/main/java/com/air/applets/controller/LandListedLonLatController.java +++ b/air/src/main/java/com/air/applets/controller/LandListedLonLatController.java @@ -1,5 +1,6 @@ package com.air.applets.controller; +import com.air.applets.dto.LandLonLatDto; import com.air.land.entity.LandListedLonLat; import com.air.land.service.LandListedLonLatService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -36,7 +37,7 @@ public class LandListedLonLatController { */ @ApiOperation(value = "通过公告序号经纬度列表查询", notes = "通过公告序号经纬度列表查询") @GetMapping("/list/{landListedId}") - public R> getLandListedLonLat(@PathVariable String landListedId) { + public R> getLandListedLonLat(@PathVariable String landListedId) { return R.ok(landListedLonLatService.getLandListedLonLat(landListedId), "查询成功"); } } diff --git a/air/src/main/java/com/air/applets/controller/LandToListLonLatController.java b/air/src/main/java/com/air/applets/controller/LandToListLonLatController.java index 31ba60d..433fa6e 100644 --- a/air/src/main/java/com/air/applets/controller/LandToListLonLatController.java +++ b/air/src/main/java/com/air/applets/controller/LandToListLonLatController.java @@ -1,5 +1,6 @@ package com.air.applets.controller; +import com.air.applets.dto.LandLonLatDto; import com.air.land.entity.LandToListLonLat; import com.air.land.service.LandToListLonLatService; import com.cinderella.framework.common.core.util.R; @@ -35,7 +36,7 @@ public class LandToListLonLatController { */ @ApiOperation(value = "通过拟公告序号经纬度列表查询", notes = "通过拟公告序号经纬度列表查询") @GetMapping("/list/{proposedseriaId}") - public R> getLandListedLonLatPage(@PathVariable String proposedseriaId) { + public R> getLandListedLonLatPage(@PathVariable String proposedseriaId) { return R.ok(landToListLonLatService.getLandToListLonLat(proposedseriaId), "查询成功"); } } diff --git a/air/src/main/java/com/air/applets/convert/LandLonLatConvert.java b/air/src/main/java/com/air/applets/convert/LandLonLatConvert.java new file mode 100644 index 0000000..c4e5e59 --- /dev/null +++ b/air/src/main/java/com/air/applets/convert/LandLonLatConvert.java @@ -0,0 +1,70 @@ +package com.air.applets.convert; + +import cn.hutool.core.collection.CollectionUtil; +import com.air.applets.dto.CoordinatePoint; +import com.air.applets.dto.Feature; +import com.air.applets.dto.LandLonLatDto; +import com.air.applets.dto.LandProperties; +import com.air.applets.entity.CityAreaLonLatBase; +import com.air.entity.PolygonGeom; +import com.air.land.entity.LandListedLonLat; +import com.air.utils.GeomUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 地块、经纬度转换 + * + * @author peihao + * @date 2021-09-16 + **/ +public class LandLonLatConvert { + + public static List getCityAreaLonLat(List list, Integer id){ + if (CollectionUtil.isEmpty(list)){ + return null; + } + List landLonLatDtos = new ArrayList<>(); + list.forEach(e ->{ + LandLonLatDto landLonLatDto = new LandLonLatDto(); + + CoordinatePoint coordinatePoint = GeomUtils.lonLatConvertPoint(e.getPos()); + PolygonGeom polygonGeom = GeomUtils.computeGemo(coordinatePoint.getPolygonPoints(), e.getLineColor() + , e.getLineOpaqueness(), e.getLineWidth(), e.getFillColor(), e.getFillOpaqueness()); + polygonGeom.setId(id); + landLonLatDto.setPolygon(polygonGeom); + landLonLatDtos.add(landLonLatDto); + }); + return landLonLatDtos; + } + + public static List getLandLonLatDto(List landList, Integer id){ + if (CollectionUtil.isEmpty(landList)){ + return null; + } + List landLonLatDtos = new ArrayList<>(); + landList.forEach(e ->{ + LandLonLatDto landLonLatDto = new LandLonLatDto(); + + Feature feature = new Feature(); + LandProperties landProperties = new LandProperties(); + landProperties.setLatId(e.getLatId()); + landProperties.setLandId(e.getLandListedId()); + feature.setProperties(landProperties); + feature.setId(id); + + CoordinatePoint coordinatePoint = GeomUtils.lonLatConvertPoint(e.getLandLonLat()); + feature.setCoordinates(coordinatePoint.getCoordinates()); + landLonLatDto.setFeature(feature); + landLonLatDto.setCenterPoint(coordinatePoint.getCenPoint()); + + PolygonGeom polygonGeom = GeomUtils.computeGemo(coordinatePoint.getPolygonPoints(), e.getLineColor(), Integer.valueOf(e.getLineOpaqueness()), + Integer.valueOf(e.getLineWidth()), e.getFillColor(), Integer.valueOf(e.getFillOpaqueness())); + polygonGeom.setId(id); + landLonLatDto.setPolygon(polygonGeom); + landLonLatDtos.add(landLonLatDto); + }); + return landLonLatDtos; + } +} diff --git a/air/src/main/java/com/air/applets/dto/CoordinatePoint.java b/air/src/main/java/com/air/applets/dto/CoordinatePoint.java new file mode 100644 index 0000000..523c1fb --- /dev/null +++ b/air/src/main/java/com/air/applets/dto/CoordinatePoint.java @@ -0,0 +1,21 @@ +package com.air.applets.dto; + +import com.air.entity.PolygonPoint; +import lombok.Data; + +import java.util.List; + +/** + * @author peihao + * @date 2021-09-15 + **/ +@Data +public class CoordinatePoint { + + private List polygonPoints; + + private List> coordinates; + + private List cenPoint; + +} diff --git a/air/src/main/java/com/air/applets/dto/Feature.java b/air/src/main/java/com/air/applets/dto/Feature.java new file mode 100644 index 0000000..0614dea --- /dev/null +++ b/air/src/main/java/com/air/applets/dto/Feature.java @@ -0,0 +1,23 @@ +package com.air.applets.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author peihao + * @date 2021-09-15 + **/ +@Data +public class Feature { + + @ApiModelProperty(value = "地块,经纬度信息") + private LandProperties properties; + + @ApiModelProperty(value = "坐标点") + private List> coordinates; + + @ApiModelProperty(value = "id") + private Integer id; +} diff --git a/air/src/main/java/com/air/applets/dto/LandLonLatDto.java b/air/src/main/java/com/air/applets/dto/LandLonLatDto.java new file mode 100644 index 0000000..93b203a --- /dev/null +++ b/air/src/main/java/com/air/applets/dto/LandLonLatDto.java @@ -0,0 +1,27 @@ +package com.air.applets.dto; + +import com.air.entity.PolygonGeom; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 小程序土地地块经纬度 + * + * @author peihao + * @date 2021-09-15 + **/ +@ApiModel +@Data +public class LandLonLatDto { + + @ApiModelProperty(value = "图形坐标颜色等信息") + private PolygonGeom polygon; + @ApiModelProperty(value = "中间点位") + private List centerPoint; + @ApiModelProperty(value = "图形坐标颜色等信息") + private Feature feature; + +} diff --git a/air/src/main/java/com/air/applets/dto/LandProperties.java b/air/src/main/java/com/air/applets/dto/LandProperties.java new file mode 100644 index 0000000..3afbb0b --- /dev/null +++ b/air/src/main/java/com/air/applets/dto/LandProperties.java @@ -0,0 +1,21 @@ +package com.air.applets.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 地块,经纬度信息 + * + * @author peihao + * @date 2021-09-15 + **/ +@ApiModel +@Data +public class LandProperties { + + @ApiModelProperty(value = "地块id") + private String landId; + @ApiModelProperty(value = "经纬度id") + private Long latId; +} diff --git a/air/src/main/java/com/air/applets/entity/CityAreaLonLatBase.java b/air/src/main/java/com/air/applets/entity/CityAreaLonLatBase.java new file mode 100644 index 0000000..8cc2043 --- /dev/null +++ b/air/src/main/java/com/air/applets/entity/CityAreaLonLatBase.java @@ -0,0 +1,40 @@ +package com.air.applets.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 行政区,大组团,小组团,环线通用 + * + * @author peihao + * @date 2021-09-15 + **/ +@ApiModel +@Data +public class CityAreaLonLatBase { + @ApiModelProperty(value="") + private Integer id; + @ApiModelProperty(value="") + private String name; + @ApiModelProperty(value="") + private String pos; + @ApiModelProperty(value="") + private Integer lineWidth; + @ApiModelProperty(value="") + private String lineColor; + @ApiModelProperty(value="") + private Integer lineOpaqueness; + @ApiModelProperty(value="") + private String fillColor; + @ApiModelProperty(value="") + private Integer fillOpaqueness; + @ApiModelProperty(value="") + private Integer attr; + @ApiModelProperty(value="") + private String comment; + @ApiModelProperty(value="") + private String geom; + @ApiModelProperty(value = "城市") + private String city; +} diff --git a/air/src/main/java/com/air/applets/entity/Dazutuan.java b/air/src/main/java/com/air/applets/entity/Dazutuan.java index ae91295..851d9fb 100644 --- a/air/src/main/java/com/air/applets/entity/Dazutuan.java +++ b/air/src/main/java/com/air/applets/entity/Dazutuan.java @@ -46,11 +46,6 @@ public class Dazutuan extends Model { private Integer attr; @ApiModelProperty(value="") private String comment; - @ApiModelProperty(value="") - private String geom; @ApiModelProperty(value = "城市") private String city; - @TableField(exist = false) - @ApiModelProperty(value="") - private String geoms; } diff --git a/air/src/main/java/com/air/applets/entity/Huanxian.java b/air/src/main/java/com/air/applets/entity/Huanxian.java index 987700d..e51ed88 100644 --- a/air/src/main/java/com/air/applets/entity/Huanxian.java +++ b/air/src/main/java/com/air/applets/entity/Huanxian.java @@ -46,12 +46,7 @@ public class Huanxian extends Model { private Integer attr; @ApiModelProperty(value="") private String comment; - @ApiModelProperty(value="") - private String geom; - @ApiModelProperty(value = "城市") private String city; - @TableField(exist = false) - @ApiModelProperty(value="") - private String geoms; + } diff --git a/air/src/main/java/com/air/applets/entity/Xiaozutuan.java b/air/src/main/java/com/air/applets/entity/Xiaozutuan.java index 85a2914..0e230e9 100644 --- a/air/src/main/java/com/air/applets/entity/Xiaozutuan.java +++ b/air/src/main/java/com/air/applets/entity/Xiaozutuan.java @@ -45,8 +45,6 @@ public class Xiaozutuan extends Model { private Integer attr; @ApiModelProperty(value="") private String comment; - @ApiModelProperty(value="") - private String geom; @ApiModelProperty(value = "城市") private String city; diff --git a/air/src/main/java/com/air/applets/entity/Xingzhengqu.java b/air/src/main/java/com/air/applets/entity/Xingzhengqu.java index 2e6b11b..dc32e65 100644 --- a/air/src/main/java/com/air/applets/entity/Xingzhengqu.java +++ b/air/src/main/java/com/air/applets/entity/Xingzhengqu.java @@ -48,12 +48,7 @@ public class Xingzhengqu extends Model { private Double attr; @ApiModelProperty(value="") private String comment; - @ApiModelProperty(value="") - private String geom; - @ApiModelProperty(value = "城市") private String city; - @TableField(exist = false) - @ApiModelProperty(value="") - private String geoms; + } diff --git a/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java b/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java index 94f0932..4e6225c 100644 --- a/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java +++ b/air/src/main/java/com/air/applets/mapper/AppletsMapMapper.java @@ -23,7 +23,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getRegionByLocation(@Param("city") String city); + List getRegionByLocation(@Param("city") String city); /** * 根据定位经纬度范围行政区数据 @@ -43,7 +43,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getTypeRegionByLocation(@Param("type") String type,@Param("city") String city); + List getTypeRegionByLocation(@Param("type") String type,@Param("city") String city); /** * 获取环线数据 @@ -51,7 +51,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getLoopLine(@Param("city") String city); + List getLoopLine(@Param("city") String city); /** * 获取拟挂牌地块数据 @@ -59,7 +59,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getLandToList(@Param("city") String city); + List getLandToList(@Param("city") String city); /** * 获取挂牌中数据 @@ -69,7 +69,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getLandListing(@Param("nowDate")String nowDate,@Param("city")String city); + List getLandListing(@Param("nowDate")String nowDate,@Param("city")String city); /** * 获取出让地块数据 @@ -80,7 +80,7 @@ public interface AppletsMapMapper{ * @date 2021/6/7 * @return **/ - List> getLandList(@Param("start") String start , @Param("end") String end,@Param("nowDate") String nowDate,@Param("city")String city); + List getLandList(@Param("start") String start , @Param("end") String end,@Param("nowDate") String nowDate,@Param("city")String city); List getXingzhengqu(); diff --git a/air/src/main/java/com/air/applets/serivce/AppletsMapService.java b/air/src/main/java/com/air/applets/serivce/AppletsMapService.java index 8aea147..a2cb67f 100644 --- a/air/src/main/java/com/air/applets/serivce/AppletsMapService.java +++ b/air/src/main/java/com/air/applets/serivce/AppletsMapService.java @@ -1,5 +1,6 @@ package com.air.applets.serivce; +import com.air.applets.dto.LandLonLatDto; import com.air.applets.entity.*; import com.air.land.entity.LandListedLonLat; import com.air.land.entity.LandToListLonLat; @@ -23,7 +24,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getRegionByLocation(String city); + List getRegionByLocation(String city); /** * 根据定位经纬度范围行政区数据 @@ -43,7 +44,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getTypeRegionByLocation(String type,String city); + List getTypeRegionByLocation(String type,String city); /** * 获取环线数据 @@ -51,7 +52,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getLoopLine(String city); + List getLoopLine(String city); /** * 获取拟挂牌地块数据 @@ -59,7 +60,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getLandToList(String city); + List getLandToList(String city); /** * 获取挂牌中数据 @@ -67,7 +68,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getLandListing(String city); + List getLandListing(String city); /** * 获取出让地块数据 @@ -77,7 +78,7 @@ public interface AppletsMapService{ * @date 2021/6/7 * @return **/ - List> getLandList(String start , String end,String city); + List getLandList(String start , String end,String city); /** * 设置行政区,环线,大组团,小组团经纬度 diff --git a/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java b/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java index 61ed488..a6c78cd 100644 --- a/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java +++ b/air/src/main/java/com/air/applets/serivce/impl/AppletsMapServiceImpl.java @@ -1,17 +1,26 @@ package com.air.applets.serivce.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.air.applets.convert.LandLonLatConvert; +import com.air.applets.dto.CoordinatePoint; +import com.air.applets.dto.Feature; +import com.air.applets.dto.LandLonLatDto; +import com.air.applets.dto.LandProperties; import com.air.applets.entity.*; import com.air.applets.mapper.AppletsMapMapper; import com.air.applets.serivce.AppletsMapService; +import com.air.entity.PolygonGeom; import com.air.land.entity.LandListedLonLat; import com.air.land.entity.LandToListLonLat; +import com.air.utils.GeomUtils; import com.air.utils.WgsUtil; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -23,8 +32,9 @@ public class AppletsMapServiceImpl implements AppletsMapService { private AppletsMapMapper mapMapper; @Override - public List> getRegionByLocation(String city) { - return mapMapper.getRegionByLocation(city); + public List getRegionByLocation(String city) { + List list = mapMapper.getRegionByLocation(city); + return LandLonLatConvert.getCityAreaLonLat(list,4); } @Override @@ -33,28 +43,39 @@ public class AppletsMapServiceImpl implements AppletsMapService { } @Override - public List> getTypeRegionByLocation(String type,String city) { - return mapMapper.getTypeRegionByLocation(type,city); + public List getTypeRegionByLocation(String type,String city) { + List list = mapMapper.getTypeRegionByLocation(type, city); + int id = 0; + if ("dazutuan".equals(type)){ + id = 5; + }else if ("xiaozutuan".equals(type)){ + id = 6; + } + return LandLonLatConvert.getCityAreaLonLat(list,id); } @Override - public List> getLoopLine(String city) { - return mapMapper.getLoopLine(city); + public List getLoopLine(String city) { + List huanxians = mapMapper.getLoopLine(city); + return LandLonLatConvert.getCityAreaLonLat(huanxians,8); } @Override - public List> getLandToList(String city) { - return mapMapper.getLandToList(city); + public List getLandToList(String city) { + List landToList = mapMapper.getLandToList(city); + return LandLonLatConvert.getLandLonLatDto(landToList,3); } @Override - public List> getLandListing(String city) { - return mapMapper.getLandListing(DateUtil.formatDate(new Date()),city); + public List getLandListing(String city) { + List landListing = mapMapper.getLandListing(DateUtil.formatDate(new Date()), city); + return LandLonLatConvert.getLandLonLatDto(landListing,2); } @Override - public List> getLandList(String start , String end,String city) { - return mapMapper.getLandList(start,end,DateUtil.formatDate(new Date()),city); + public List getLandList(String start , String end,String city) { + List list = mapMapper.getLandList(start, end, DateUtil.formatDate(new Date()), city); + return LandLonLatConvert.getLandLonLatDto(list,1); } @Override diff --git a/air/src/main/java/com/air/entity/PolygonGeom.java b/air/src/main/java/com/air/entity/PolygonGeom.java new file mode 100644 index 0000000..728a9b4 --- /dev/null +++ b/air/src/main/java/com/air/entity/PolygonGeom.java @@ -0,0 +1,32 @@ +package com.air.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 小程序坐标渲染对象 + * + * @author peihao + * @date 2021-09-15 + **/ +@ApiModel("小程序坐标渲染对象") +@Data +public class PolygonGeom { + + @ApiModelProperty(value = "填充颜色") + private String fillColor; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "线条颜色") + private String strokeColor; + @ApiModelProperty(value = "线条宽度") + private Integer strokeWidth; + @ApiModelProperty(value = "层级(默认1)") + private int zIndex = 1; + @ApiModelProperty(value = "坐标点位") + private List points; + +} diff --git a/air/src/main/java/com/air/entity/LocateInfo.java b/air/src/main/java/com/air/entity/PolygonPoint.java similarity index 63% rename from air/src/main/java/com/air/entity/LocateInfo.java rename to air/src/main/java/com/air/entity/PolygonPoint.java index 8a38a03..829eb51 100644 --- a/air/src/main/java/com/air/entity/LocateInfo.java +++ b/air/src/main/java/com/air/entity/PolygonPoint.java @@ -5,21 +5,17 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** - * 定位信息 + * 坐标点位 * * @author peihao - * @date 2021-07-19 + * @date 2021-09-15 **/ +@ApiModel(value = "坐标点位") @Data -@ApiModel -public class LocateInfo { +public class PolygonPoint { @ApiModelProperty(value = "经度") private double longitude; - @ApiModelProperty(value = "纬度") - private double Latitude; - - @ApiModelProperty(value = "") - private boolean isChina; + private double latitude; } diff --git a/air/src/main/java/com/air/land/controller/LandListedLonLatController.java b/air/src/main/java/com/air/land/controller/LandListedLonLatController.java index 8d023e7..c9554c2 100644 --- a/air/src/main/java/com/air/land/controller/LandListedLonLatController.java +++ b/air/src/main/java/com/air/land/controller/LandListedLonLatController.java @@ -72,7 +72,7 @@ public class LandListedLonLatController { landListedLonLat.setLandLonLat(new StringBuffer(landLonLat).append(";").append(split[0]).toString()); } //转换经纬度标准格式 - landListedLonLat.setGeom(WgsUtil.wgs84_To_Gcj02(landListedLonLat.getLandLonLat())); + landListedLonLat.setLandLonLat(WgsUtil.wgs84_To_Gcj02(landListedLonLat.getLandLonLat())); return R.ok(landListedLonLatService.save(landListedLonLat), "保存成功"); } @@ -91,7 +91,7 @@ public class LandListedLonLatController { LandListedLonLat landListedLonLat = new LandListedLonLat(); BeanUtil.copyProperties(landListedLonLatVo, landListedLonLat); //转换经纬度标准格式 - landListedLonLat.setGeom(null); + landListedLonLat.setLandLonLat(null); landListedLonLatService.update(landListedLonLat, Wrappers.query().lambda() .eq(LandListedLonLat::getLatId, landListedLonLatVo.getLatId())); return R.ok("修改成功"); @@ -129,14 +129,14 @@ public class LandListedLonLatController { @ApiOperation(value = "经纬度转换(wgs84_To_Gcj02)", notes = "经纬度转换(wgs84_To_Gcj02)") @GetMapping("/landListLonLatConversion") public R landListLonLatConversion() { - List list = landListedLonLatService.list(Wrappers.query() - .lambda().isNull(LandListedLonLat::getGeom)); + List list = landListedLonLatService.list(); if (CollectionUtil.isNotEmpty(list)){ list.forEach(landListedLonLat -> { if(StrUtil.isNotEmpty(landListedLonLat.getLandLonLat())){ try{ String[] split = landListedLonLat.getLandLonLat().split(";"); - landListedLonLat.setLandLonLat(new StringBuffer(landListedLonLat.getLandLonLat()).append(";").append(split[0]).toString()); + String lonlat = new StringBuffer(landListedLonLat.getLandLonLat()).append(";").append(split[0]).toString(); + landListedLonLat.setLandLonLat(lonlat); }catch (Exception e){ log.error(landListedLonLat.getLandListedId()+"已挂牌经纬度转换出错!",e); } diff --git a/air/src/main/java/com/air/land/controller/LandToListLonLatController.java b/air/src/main/java/com/air/land/controller/LandToListLonLatController.java index c6dfc9f..1941944 100644 --- a/air/src/main/java/com/air/land/controller/LandToListLonLatController.java +++ b/air/src/main/java/com/air/land/controller/LandToListLonLatController.java @@ -73,7 +73,7 @@ public class LandToListLonLatController { landToListLonLat.setLandLonLat(new StringBuffer(landLonLat).append(";").append(split[0]).toString()); } //转换经纬度标准格式 - landToListLonLat.setGeom(WgsUtil.wgs84_To_Gcj02(landToListLonLat.getLandLonLat())); + landToListLonLat.setLandLonLat(WgsUtil.wgs84_To_Gcj02(landToListLonLat.getLandLonLat())); return R.ok(landToListLonLatService.save(landToListLonLat), "保存成功"); } @@ -89,7 +89,7 @@ public class LandToListLonLatController { LandToListLonLat landToListLonLat = new LandToListLonLat(); BeanUtil.copyProperties(landToListLonLatVo, landToListLonLat); //转换经纬度标准格式 - landToListLonLat.setGeom(null); + landToListLonLat.setLandLonLat(null); landToListLonLatService.update(landToListLonLat, Wrappers.query().lambda() .eq(LandToListLonLat::getLatId, landToListLonLatVo.getLatId())); return R.ok("修改成功"); @@ -127,8 +127,7 @@ public class LandToListLonLatController { @ApiOperation(value = "经纬度转换(wgs84_To_Gcj02)", notes = "经纬度转换(wgs84_To_Gcj02)") @GetMapping("/landToListLonLatConversion") public R landToListLonLatConversion() { - List list = landToListLonLatService.list(Wrappers.query() - .lambda().isNull(LandToListLonLat::getGeom)); + List list = landToListLonLatService.list(); if (CollectionUtil.isNotEmpty(list)){ list.forEach(landToListLonLat -> { if(StrUtil.isNotEmpty(landToListLonLat.getLandLonLat())){ diff --git a/air/src/main/java/com/air/land/entity/LandListedLonLat.java b/air/src/main/java/com/air/land/entity/LandListedLonLat.java index 7195b9f..3bc4655 100644 --- a/air/src/main/java/com/air/land/entity/LandListedLonLat.java +++ b/air/src/main/java/com/air/land/entity/LandListedLonLat.java @@ -81,15 +81,8 @@ public class LandListedLonLat extends Model { private String remark; @TableField(exist = false) - @ApiModelProperty(value = "空间坐标point") - private String centerPoint; - - @ApiModelProperty(value = "空间坐标") - private String geom; - - @TableField(exist = false) - @ApiModelProperty(value = "空间中标s") - private String geoms; + @ApiModelProperty(value = "坐标渲染对象") + private String polygons; @TableField(exist = false) @ApiModelProperty(value = "交易状态") diff --git a/air/src/main/java/com/air/land/entity/LandToListLonLat.java b/air/src/main/java/com/air/land/entity/LandToListLonLat.java index b7a1337..f707453 100644 --- a/air/src/main/java/com/air/land/entity/LandToListLonLat.java +++ b/air/src/main/java/com/air/land/entity/LandToListLonLat.java @@ -76,15 +76,4 @@ public class LandToListLonLat extends Model { @ApiModelProperty(value = "备注") private String remark; - - @TableField(exist = false) - @ApiModelProperty(value = "空间坐标point") - private String centerPoint; - - @ApiModelProperty(value = "空间坐标") - private String geom; - - @TableField(exist = false) - @ApiModelProperty(value = "空间中标s") - private String geoms; } diff --git a/air/src/main/java/com/air/land/mapper/LandToListLonLatMapper.java b/air/src/main/java/com/air/land/mapper/LandToListLonLatMapper.java index ed5f6a7..5b32a27 100644 --- a/air/src/main/java/com/air/land/mapper/LandToListLonLatMapper.java +++ b/air/src/main/java/com/air/land/mapper/LandToListLonLatMapper.java @@ -17,5 +17,5 @@ public interface LandToListLonLatMapper extends BaseMapper { int insert(LandToListLonLat landListedLonLat); - List getLandToListLonLat(@Param("proposedseriaId") String proposedseriaId); + List getLandToListLonLat(@Param("proposedseriaId") String proposedseriaId); } diff --git a/air/src/main/java/com/air/land/service/LandListedLonLatService.java b/air/src/main/java/com/air/land/service/LandListedLonLatService.java index c933a29..754d60b 100644 --- a/air/src/main/java/com/air/land/service/LandListedLonLatService.java +++ b/air/src/main/java/com/air/land/service/LandListedLonLatService.java @@ -1,5 +1,6 @@ package com.air.land.service; +import com.air.applets.dto.LandLonLatDto; import com.air.land.entity.LandListedLonLat; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.web.multipart.MultipartFile; @@ -16,6 +17,6 @@ public interface LandListedLonLatService extends IService { boolean importLandListedLonLatExcel(MultipartFile file,String landListedId); - List getLandListedLonLat(String landListedId); + List getLandListedLonLat(String landListedId); } diff --git a/air/src/main/java/com/air/land/service/LandToListLonLatService.java b/air/src/main/java/com/air/land/service/LandToListLonLatService.java index 1c52e59..ddbdd3b 100644 --- a/air/src/main/java/com/air/land/service/LandToListLonLatService.java +++ b/air/src/main/java/com/air/land/service/LandToListLonLatService.java @@ -1,5 +1,6 @@ package com.air.land.service; +import com.air.applets.dto.LandLonLatDto; import com.air.land.entity.LandToListLonLat; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.web.multipart.MultipartFile; @@ -16,5 +17,5 @@ public interface LandToListLonLatService extends IService { boolean importLandToListedLonLatExcel(MultipartFile file,String proposedseriaId); - List getLandToListLonLat(String proposedseriaId); + List getLandToListLonLat(String proposedseriaId); } diff --git a/air/src/main/java/com/air/land/service/impl/LandListedLonLatServiceImpl.java b/air/src/main/java/com/air/land/service/impl/LandListedLonLatServiceImpl.java index ddb3738..6b05370 100644 --- a/air/src/main/java/com/air/land/service/impl/LandListedLonLatServiceImpl.java +++ b/air/src/main/java/com/air/land/service/impl/LandListedLonLatServiceImpl.java @@ -3,6 +3,8 @@ package com.air.land.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.air.applets.convert.LandLonLatConvert; +import com.air.applets.dto.LandLonLatDto; import com.air.land.entity.LandListed; import com.air.land.entity.LandListedLonLat; import com.air.land.entity.LandToListLonLat; @@ -45,8 +47,9 @@ public class LandListedLonLatServiceImpl extends ServiceImpl getLandListedLonLat(String landListedId) { - return baseMapper.getLandListedLonLat(landListedId); + public List getLandListedLonLat(String landListedId) { + List list = baseMapper.getLandListedLonLat(landListedId); + return LandLonLatConvert.getLandLonLatDto(list,2); } private List listToEntity(List> dataList,String landListedId) { @@ -67,7 +70,7 @@ public class LandListedLonLatServiceImpl extends ServiceImpl getLandToListLonLat(String proposedseriaId) { - return baseMapper.getLandToListLonLat(proposedseriaId); + public List getLandToListLonLat(String proposedseriaId) { + List list = baseMapper.getLandToListLonLat(proposedseriaId); + return LandLonLatConvert.getLandLonLatDto(list,3); } private List listToEntity(List> dataList,String proposedseriaId) { @@ -64,7 +68,7 @@ public class LandToListLonLatServiceImpl extends ServiceImpl result = sysMessageService.page(page.toPage(), Wrappers.query().lambda() .eq(StrUtil.isNotEmpty(messageType),SysMessage::getMessageType, messageType) - .eq(SysMessage::getStatusCd, SysMessageStatusEnum.SYS_MESSAGE_STATUS_1000.getCode()) .orderByDesc(SysMessage::getCreateDate)); return R.ok(result); } diff --git a/air/src/main/java/com/air/utils/GeomUtils.java b/air/src/main/java/com/air/utils/GeomUtils.java new file mode 100644 index 0000000..51d99bf --- /dev/null +++ b/air/src/main/java/com/air/utils/GeomUtils.java @@ -0,0 +1,69 @@ +package com.air.utils; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.air.applets.dto.CoordinatePoint; +import com.air.entity.PolygonGeom; +import com.air.entity.PolygonPoint; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @author peihao + * @date 2021-09-14 + **/ +public class GeomUtils { + + public static PolygonGeom computeGemo(List polygonPoints,String lineColor,Integer lineOpaqueness,Integer lineWidth,String fillColor,Integer fillOpaqueness){ + PolygonGeom polygonGeom = new PolygonGeom(); + polygonGeom.setStrokeColor(computeColor(lineColor,lineOpaqueness)); + polygonGeom.setFillColor(computeColor(fillColor,fillOpaqueness)); + polygonGeom.setStrokeWidth(Integer.valueOf(lineWidth)); + polygonGeom.setPoints(polygonPoints); + return polygonGeom; + } + + public static CoordinatePoint lonLatConvertPoint(String lonLat){ + List lonLatList = Arrays.asList(lonLat.split(";")); + + CoordinatePoint coordinatePoint = new CoordinatePoint(); + //绘图经纬度 + List polygonPoints = new ArrayList<>(); + //坐标数组 + List> coordinates = new ArrayList<>(); + //导航中间点 + List cenPoint = new ArrayList<>(2); + for (int i = 0;i coordinate = new ArrayList<>(); + coordinate.add(lon); + coordinate.add(lat); + polygonPoints.add(point); + coordinates.add(coordinate); + } + coordinatePoint.setCoordinates(coordinates); + coordinatePoint.setPolygonPoints(polygonPoints); + coordinatePoint.setCenPoint(cenPoint); + return coordinatePoint; + } + + public static String computeColor(String color,Integer opaqueness){ + if (StrUtil.isEmpty(color) || opaqueness == null){ + return null; + } + String hex = Integer.toHexString(opaqueness); + return color+hex; + } +} diff --git a/air/src/main/java/com/air/utils/WgsUtil.java b/air/src/main/java/com/air/utils/WgsUtil.java index abf0c70..c7bc4f7 100644 --- a/air/src/main/java/com/air/utils/WgsUtil.java +++ b/air/src/main/java/com/air/utils/WgsUtil.java @@ -1,17 +1,14 @@ package com.air.utils; -import com.air.entity.LocateInfo; -import com.air.land.entity.LandListedLonLat; -import com.cinderella.framework.common.core.exception.BusinessException; -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.GeometryFactory; -import com.vividsolutions.jts.geom.Polygon; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.air.entity.PolygonPoint; +import com.vividsolutions.jts.geom.*; import lombok.extern.slf4j.Slf4j; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.awt.geom.Point2D; +import java.math.BigDecimal; +import java.util.*; /** * 地图转换工具 @@ -29,10 +26,15 @@ public class WgsUtil { public static GeometryFactory geometryFactory = new GeometryFactory(); - public static LocateInfo wgs84_To_Gcj02(double lat, double lon) { - LocateInfo info = new LocateInfo(); + /** + * 平均半径,单位:m + **/ + private static final double EARTH_RADIUS = 6371393; + + public static PolygonPoint wgs84_To_Gcj02(double lat, double lon) { + PolygonPoint info = new PolygonPoint(); if (outOfChina(lat, lon)) { - info.setChina(false); + //info.setChina(false); info.setLatitude(lat); info.setLongitude(lon); } else { @@ -46,19 +48,19 @@ public class WgsUtil { dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; - info.setChina(true); + //info.setChina(true); info.setLatitude(mgLat); info.setLongitude(mgLon); } return info; } - public static LocateInfo gcj02_To_Wgs84(double lat, double lon) { - LocateInfo info = new LocateInfo(); - LocateInfo gps = transform(lat, lon); + public static PolygonPoint gcj02_To_Wgs84(double lat, double lon) { + PolygonPoint info = new PolygonPoint(); + PolygonPoint gps = transform(lat, lon); double lontitude = lon * 2 - gps.getLongitude(); double latitude = lat * 2 - gps.getLatitude(); - info.setChina(gps.isChina()); + //info.setChina(gps.isChina()); info.setLatitude(latitude); info.setLongitude(lontitude); return info; @@ -90,10 +92,10 @@ public class WgsUtil { return ret; } - private static LocateInfo transform(double lat, double lon) { - LocateInfo info = new LocateInfo(); + private static PolygonPoint transform(double lat, double lon) { + PolygonPoint info = new PolygonPoint(); if (outOfChina(lat, lon)) { - info.setChina(false); + //info.setChina(false); info.setLatitude(lat); info.setLongitude(lon); return info; @@ -108,7 +110,7 @@ public class WgsUtil { dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); double mgLat = lat + dLat; double mgLon = lon + dLon; - info.setChina(true); + //info.setChina(true); info.setLatitude(mgLat); info.setLongitude(mgLon); @@ -118,17 +120,19 @@ public class WgsUtil { public static String wgs84_To_Gcj02(String lonLat) { try { List lonLatList = Arrays.asList(lonLat.split(";")); - List coordinates = new ArrayList<>(); - lonLatList.forEach(lonLatVo -> { - String[] lntlat = lonLatVo.split(","); + StringBuffer polygon = new StringBuffer(); + for(int i = 0;i - + select * from xingzhengqu city = #{city} @@ -26,8 +26,8 @@ ST_SRID ( geom, 4326 )) < #{ radius} - + select * from ${type} city = #{city} @@ -35,8 +35,8 @@ - + select * from huanxian city = #{city} @@ -44,53 +44,54 @@ - SELECT - *,st_astext(st_centroid(geom)) as centerPoint,st_astext(geom) as geoms + lat_id, + proposedseria_id landListedId, + land_code, + name, + land_lon_lat, + line_width, + line_color, + line_opaqueness, + fill_color, + fill_opaqueness from land_to_list_lon_lat - where - geom is not null - - and city = #{city} - + + + city = #{city} + + - SELECT if(date_format(b.auction_date,'%Y-%m-%d') < #{nowDate},'已出让','挂牌中') transactionStatus, - a.*, - st_astext ( - st_centroid ( a.geom )) AS centerPoint, - st_astext ( a.geom ) AS geoms + a.* FROM land_listed_lon_lat a LEFT JOIN land_listed b ON a.land_listed_id = b.land_listed_id WHERE - geom IS NOT NULL - and date_format(b.auction_date,'%Y-%m-%d') > #{nowDate} + date_format(b.auction_date,'%Y-%m-%d') > #{nowDate} - and city = #{city} + and b.city = #{city} - SELECT if(date_format(b.auction_date,'%Y-%m-%d') < #{nowDate},'已出让','挂牌中') transactionStatus, - st_astext ( - st_centroid ( a.geom )) AS centerPoint, - a.*, - st_astext ( a.geom ) AS geoms + a.* FROM land_listed_lon_lat a JOIN land_listed b ON a.land_listed_id = b.land_listed_id WHERE - geom IS NOT NULL - and date_format(b.auction_date,'%Y-%m-%d') < #{nowDate} + date_format(b.auction_date,'%Y-%m-%d') < #{nowDate} and date_format(b.auction_date,'%Y-%m-%d') < #{end} and date_format(b.auction_date,'%Y-%m-%d') > #{start} - and city = #{city} + and b.city = #{city} @@ -99,7 +100,7 @@ - update xingzhengqu set geom = ST_GeometryFromText(#{geom}) where gid = #{id} + update xingzhengqu set pos = #{geom} where gid = #{id} - update huanxian set geom = ST_GeometryFromText(#{geom}) where id = #{id} + update huanxian set pos = #{geom} where id = #{id} - update dazutuan set geom = ST_GeometryFromText(#{geom}) where id = #{id} + update dazutuan set pos = #{geom} where id = #{id} - update xiaozutuan set geom = ST_GeometryFromText(#{geom}) where id = #{id} + update xiaozutuan set pos = #{geom} where id = #{id} diff --git a/air/src/main/resources/mapper/LandListedLonLatMapper.xml b/air/src/main/resources/mapper/LandListedLonLatMapper.xml index 26599b4..5546f17 100644 --- a/air/src/main/resources/mapper/LandListedLonLatMapper.xml +++ b/air/src/main/resources/mapper/LandListedLonLatMapper.xml @@ -28,15 +28,7 @@ ll.line_color, ll.line_opaqueness, ll.fill_color, - ll.fill_opaqueness, - ll.status_cd, - ll.status_date, - ll.create_user_id, - ll.create_date, - ll.update_user_id, - ll.update_date, - st_astext ( st_centroid ( geom ) ) centerPoint, - st_astext ( geom ) geom + ll.fill_opaqueness FROM land_listed_lon_lat ll WHERE diff --git a/air/src/main/resources/mapper/LandToListLonLatMapper.xml b/air/src/main/resources/mapper/LandToListLonLatMapper.xml index d7341bf..9e611d4 100644 --- a/air/src/main/resources/mapper/LandToListLonLatMapper.xml +++ b/air/src/main/resources/mapper/LandToListLonLatMapper.xml @@ -16,10 +16,10 @@ ) - SELECT ll.lat_id, - ll.proposedseria_id, + ll.proposedseria_id landListedId, ll.land_code, ll.name, ll.land_lon_lat, @@ -27,15 +27,7 @@ ll.line_color, ll.line_opaqueness, ll.fill_color, - ll.fill_opaqueness, - ll.status_cd, - ll.status_date, - ll.create_user_id, - ll.create_date, - ll.update_user_id, - ll.update_date, - st_astext ( st_centroid ( geom ) ) centerPoint, - st_astext ( geom ) geom + ll.fill_opaqueness FROM land_to_list_lon_lat ll WHERE