diff --git a/meteoinfo-common/src/main/java/org/meteoinfo/common/util/GlobalUtil.java b/meteoinfo-common/src/main/java/org/meteoinfo/common/util/GlobalUtil.java index 5942a679..940d74e8 100644 --- a/meteoinfo-common/src/main/java/org/meteoinfo/common/util/GlobalUtil.java +++ b/meteoinfo-common/src/main/java/org/meteoinfo/common/util/GlobalUtil.java @@ -69,7 +69,7 @@ import java.util.zip.ZipInputStream; public static String getVersion() { String version = GlobalUtil.class.getPackage().getImplementationVersion(); if (version == null || version.equals("")) { - version = "4.0"; + version = "4.0.1"; } return version; } diff --git a/meteoinfo-lab/milconfig.xml b/meteoinfo-lab/milconfig.xml index e810f28e..0e26d0e0 100644 --- a/meteoinfo-lab/milconfig.xml +++ b/meteoinfo-lab/milconfig.xml @@ -1,32 +1,32 @@ - - - - - - + - - - - + + + + + + + + + - - - + + + - - - + + + diff --git a/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py b/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py index f6c4032e..0b8825d5 100644 --- a/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py +++ b/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py @@ -27,6 +27,21 @@ class GeoGraphicCollection(object): else: return self._geographic.xshift(xshift) + @classmethod + def factory(cls, graphics, projection=None): + """ + Create GeoGraphicCollection from GraphicCollection. + + :param graphics: (*GraphicCollection*) The graphics. + :param projection: (*ProjectionInfo*) The projection. + :return: (*GeoGraphicCollection*) Created GeoGraphicCollection object. + """ + gg = JGeoGraphicCollection.factory(graphics) + if projection is not None: + gg.setProjInfo(projection) + + return GeoGraphicCollection(geographic=gg) + @property def shapes(self): return self._geographic.getShapes() diff --git a/meteoinfo-lab/pylib/mipylib/geolib/migeo$py.class b/meteoinfo-lab/pylib/mipylib/geolib/migeo$py.class index 8be2adf0..a78efae3 100644 Binary files a/meteoinfo-lab/pylib/mipylib/geolib/migeo$py.class and b/meteoinfo-lab/pylib/mipylib/geolib/migeo$py.class differ diff --git a/meteoinfo-lab/pylib/mipylib/geolib/migeo.py b/meteoinfo-lab/pylib/mipylib/geolib/migeo.py index c6b8b7b0..00cede95 100644 --- a/meteoinfo-lab/pylib/mipylib/geolib/migeo.py +++ b/meteoinfo-lab/pylib/mipylib/geolib/migeo.py @@ -14,7 +14,7 @@ from org.meteoinfo.geometry.graphic import Graphic from org.meteoinfo.geometry.legend import BreakTypes from org.meteoinfo.geometry.geoprocess import GeoComputation, GeometryUtil from org.meteoinfo.ndarray.math import ArrayMath, ArrayUtil -from org.meteoinfo.geo.mapdata import MapDataManage +from org.meteoinfo.geo.mapdata import MapDataManage, ShapeFileManage from org.meteoinfo.geo.util import GeoIOUtil from org.meteoinfo.geo.io import GeoJSONWriter from org.meteoinfo.table import AttributeTable @@ -35,7 +35,7 @@ from java.util import ArrayList __all__ = [ 'arrayinpolygon', 'bilwrite', 'circle', 'convert_encoding_dbf', 'distance', 'geojson_write', 'georead', 'geotiffread', 'gridarea', 'maplayer', 'inpolygon', 'maskin', 'maskout', 'polyarea', 'polygon', 'rmaskin', 'rmaskout', 'shaperead', - 'polygonindex', 'projinfo', 'project', 'projectxy', 'reproject', 'reproject_image' + 'shapewrite', 'polygonindex', 'projinfo', 'project', 'projectxy', 'reproject', 'reproject_image' ] @@ -72,6 +72,18 @@ def shaperead(fn, encoding=None): raise +def shapewrite(fn, graphics, projection=None): + """ + Save graphics as a shape file. + + :param fn: (*str*) The shape file name + :param graphics: (*GraphicCollection*) The graphics + :param projection: (*ProjectionInfo*) The projection + """ + geographic = GeoGraphicCollection.factory(graphics, projection=projection) + ShapeFileManage.saveShapeFile(fn, geographic._geographic) + + def georead(fn, encoding=None): """ Returns a layer read from a supported geo-data file. diff --git a/pom.xml b/pom.xml index bda9d41f..e3cf4d63 100644 --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,7 @@ UTF-8 1.8 - 4.0 + 4.0.1 8 8 8