support custom webmap provider in milab and update GeoQ webmap data

This commit is contained in:
wyq 2023-07-19 12:41:53 +08:00
parent 2b01be155d
commit 37bd5988a8
11 changed files with 54 additions and 29 deletions

View File

@ -16,7 +16,7 @@ package org.meteoinfo.data.mapdata.webmap;
public class DefaultTileFactory extends AbstractTileFactory {
/**
* Creates a new instance of DefaultTileFactory using the spcified TileFactoryInfo
* Creates a new instance of DefaultTileFactory using the specified TileFactoryInfo
* @param info a TileFactoryInfo to configure this TileFactory
*/
public DefaultTileFactory(TileFactoryInfo info) {

View File

@ -19,7 +19,7 @@ public class GeoQBlueMapInfo extends TileFactoryInfo {
public GeoQBlueMapInfo() {
super("GeoQMap", 0, 16, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/%1$d/%2$d/%3$d",
"https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/%1$d/%2$d/%3$d",
"x", "y", "z");
}
// // </editor-fold>

View File

@ -19,7 +19,7 @@ public class GeoQGrayMapInfo extends TileFactoryInfo {
public GeoQGrayMapInfo() {
super("GeoQMap", 0, 18, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineStreetGray/MapServer/tile/%1$d/%2$d/%3$d",
"https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/%1$d/%2$d/%3$d",
"x", "y", "z");
}
// // </editor-fold>

View File

@ -19,7 +19,7 @@ public class GeoQMapInfo extends TileFactoryInfo {
public GeoQMapInfo() {
super("GeoQMap", 0, 18, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/tile/%1$d/%2$d/%3$d",
"https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/%1$d/%2$d/%3$d",
"x", "y", "z");
}
// // </editor-fold>

View File

@ -19,7 +19,7 @@ public class GeoQWarmMapInfo extends TileFactoryInfo {
public GeoQWarmMapInfo() {
super("GeoQMap", 0, 18, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineStreetWarm/MapServer/tile/%1$d/%2$d/%3$d",
"https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetWarm/MapServer/tile/%1$d/%2$d/%3$d",
"x", "y", "z");
}
// // </editor-fold>

View File

@ -39,7 +39,7 @@ public enum WebMapProvider {
YahooHybridMap,
CMA_CVA_MAP,
CMA_VEC_MAP,
CMA_IMG_MAP
CMA_IMG_MAP,
//ArcGISImage
//Custom
Custom
}

View File

@ -1,34 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Temp\test\webmap">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\projection"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\patch"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\city"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array\complex"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array\slice"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\linalg"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\map\webmap">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\LaSW"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\LaSW\ZhengZhou"/>
<RecentFolder Folder="D:\Temp\test\webmap"/>
<RecentFolder Folder="D:\MyProgram\java\MeteoInfoDev\MeteoInfo\meteoinfo-lab"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
<RecentFolder Folder="D:\Working\MIScript\Jython"/>
<RecentFolder Folder="D:\Working\MIScript"/>
<RecentFolder Folder="D:\Working\MIScript\cuace_dust"/>
<RecentFolder Folder="D:\Working\MIScript\cuace_dust\py"/>
<RecentFolder Folder="D:\Working\MIScript\cuace_dust\py\plot"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array\complex"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\webmap"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\_reload.py"/>
<OpenedFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\mainGUI.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\LaSW\ZhengZhou\radar_bz2_3d.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\LaSW\ZhengZhou\radar_bz2_3d_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bz2_3d_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\map\webmap\new_tilefactory_geoq.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\_reload.py"/>
<RecentFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\mainGUI.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\LaSW\ZhengZhou\radar_bz2_3d.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\LaSW\ZhengZhou\radar_bz2_3d_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_bz2_3d_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\map\webmap\new_tilefactory_geoq.py"/>
</RecentFiles>
</File>
<Font>
@ -36,5 +38,5 @@
</Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,0" MainFormSize="1393,844"/>
<Startup MainFormLocation="-7,0" MainFormSize="1400,796"/>
</MeteoInfo>

View File

@ -9,6 +9,7 @@ from org.meteoinfo.common import PointD
from org.meteoinfo.common.util import JDateUtil
from org.meteoinfo.ndarray import Complex
from org.meteoinfo.geometry.shape import PointShape, ShapeUtil
from org.python.core import PyComplex
from java.util import Locale
from java.time import LocalDateTime
from java.time.format import DateTimeFormatter
@ -223,6 +224,23 @@ def jcomplex(v):
return Complex(v.real, v.imag)
def iscomplex(a):
"""
Check if the number or list `a` is complex data type.
:param a: (*number or list*) Number of list of number.
:return: (*bool*) Complex data type or not.
"""
if isinstance(a, (list, tuple)):
for v in a:
if isinstance(v, PyComplex):
return True
return False
else:
return isinstance(a, PyComplex);
def makeshapes(x, y, type=None, z=None, m=None):
"""
Make shapes by x and y coordinates.

View File

@ -21,7 +21,7 @@ from org.meteoinfo.geometry.graphic import Graphic
from org.meteoinfo.projection import ProjectionInfo
from org.meteoinfo.common import Extent
from org.meteoinfo.geo.layer import LayerTypes, WebMapLayer
from org.meteoinfo.data.mapdata.webmap import WebMapProvider
from org.meteoinfo.data.mapdata.webmap import WebMapProvider, DefaultTileFactory, TileFactoryInfo
from org.meteoinfo.geo.layout import ScaleBarType
from java.awt import Font, Color
@ -1716,8 +1716,13 @@ class MapAxes(Axes):
:returns: Web map layer
"""
layer = WebMapLayer()
provider = WebMapProvider.valueOf(provider)
layer.setWebMapProvider(provider)
if isinstance(provider, TileFactoryInfo):
tf = DefaultTileFactory(provider)
layer.setTileFactory(tf)
else:
provider = WebMapProvider.valueOf(provider)
layer.setWebMapProvider(provider)
self.add_layer(layer, zorder)
return MILayer(layer)