在上篇中,我在MapController类中新建了一个方法JSONObject geometryToJson(Geometry geometry),用以将geometry对象转为json。
这个方法有点问题,首先,point是一个点,只有一组坐标,polygon如果有孔洞,怎么表示?multipolygon都是多部件还好,要是有带孔洞的polygon怎么办?polyline怎么表示?
而且我在这个方法里新建了太多对象JSONObejct、JSONArray等,最后也没有回收,会造成一些JVM性能问题。
综上,没事儿别自己瞎造轮子,自己瞎造的轮子,有可能掉到沟里。
Geojson这种数据格式,是有标准规范的,参见,https://www.oschina.net/translate/geojson-spec?cmp也有一个专用的jar包将wkt等格式的数据转为geojson。
我们就用这个现成的gt-geojson来进行geojson的生成。
一、引入jar包
D:gismapjavamastergismappom.xml
Maven依赖:
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>9.3</version>
</dependency>
配置一下下载maven的resource
<repositories>
<repository>
<id>OSGeo Repository</id>
<url>http://download.osgeo.org/webdav/geotools/</url>
</repository>
</repositories>
二、修改mapcontroller
D:gismapjavamastergismapsrcmainjavacomhistorygismapcontrollerMapController.java
很简单,主要就是4行语句。
新建一个Geometry转换j