add new google webmap tile info

This commit is contained in:
wyq 2023-07-19 15:02:21 +08:00
parent 37bd5988a8
commit 9b1b1f5804
8 changed files with 165 additions and 154 deletions

View File

@ -0,0 +1,39 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.meteoinfo.data.mapdata.webmap;
/**
*
* @author yaqiang
*/
public class GoogleCNMapInfo extends TileFactoryInfo {
// <editor-fold desc="Variables">
private String version = "1173";
private String clientKey = null;
// </editor-fold>
// <editor-fold desc="Constructor">
/**
* Constructor
*/
public GoogleCNMapInfo() {
super("GoogleCNMap", 1, 17, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"https://gac-geo.googlecnapps.cn/maps/vt?lyrs=m&x=%1$d&y=%2$d&z=%3$d",
"x", "y", "z");
}
// </editor-fold>
// <editor-fold desc="Methods">
@Override
public String getTileUrl(int x, int y, int zoom) {
zoom = this.getTotalMapZoom() - zoom;
String url = String.format(this.baseURL, x, y, zoom);
return url;
}
// </editor-fold>
}

View File

@ -0,0 +1,39 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.meteoinfo.data.mapdata.webmap;
/**
*
* @author yaqiang
*/
public class GoogleCNSatelliteMapInfo extends TileFactoryInfo {
// <editor-fold desc="Variables">
private String version = "1173";
private String clientKey = null;
// </editor-fold>
// <editor-fold desc="Constructor">
/**
* Constructor
*/
public GoogleCNSatelliteMapInfo() {
super("GoogleCNSatelliteMap", 1, 17, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s&x=%1$d&y=%2$d&z=%3$d",
"x", "y", "z");
}
// </editor-fold>
// <editor-fold desc="Methods">
@Override
public String getTileUrl(int x, int y, int zoom) {
zoom = this.getTotalMapZoom() - zoom;
String url = String.format(this.baseURL, x, y, zoom);
return url;
}
// </editor-fold>
}

View File

@ -0,0 +1,39 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.meteoinfo.data.mapdata.webmap;
/**
*
* @author yaqiang
*/
public class GoogleCNTerrainMapInfo extends TileFactoryInfo {
// <editor-fold desc="Variables">
private String version = "1173";
private String clientKey = null;
// </editor-fold>
// <editor-fold desc="Constructor">
/**
* Constructor
*/
public GoogleCNTerrainMapInfo() {
super("GoogleCNTerrainMap", 1, 17, 19,
256, true, true, // tile size is 256 and x/y orientation is normal
"https://gac-geo.googlecnapps.cn/maps/vt?lyrs=p&x=%1$d&y=%2$d&z=%3$d",
"x", "y", "z");
}
// </editor-fold>
// <editor-fold desc="Methods">
@Override
public String getTileUrl(int x, int y, int zoom) {
zoom = this.getTotalMapZoom() - zoom;
String url = String.format(this.baseURL, x, y, zoom);
return url;
}
// </editor-fold>
}

View File

@ -19,11 +19,7 @@ public class GoogleMapInfo extends TileFactoryInfo {
/** /**
* Constructor * Constructor
*/ */
public GoogleMapInfo() { public GoogleMapInfo() {
// super("GoogleMap", 1, 17, 19,
// 256, true, true, // tile size is 256 and x/y orientation is normal
// "http://ecn.t%1$d.tiles.virtualearth.net/tiles/r%2$s?g=%3$s&mkt=%4$s&lbl=l1&stl=h&shading=hill&n=z%5$s",
// "x", "y", "z");
super("GoogleMap", 1, 17, 19, super("GoogleMap", 1, 17, 19,
256, true, true, // tile size is 256 and x/y orientation is normal 256, true, true, // tile size is 256 and x/y orientation is normal
"http://mt2.google.cn/vt/lyrs=m&hl=%1$s&gl=cn&x=%2$d&y=%3$d&z=%4$d&s=Galil", "http://mt2.google.cn/vt/lyrs=m&hl=%1$s&gl=cn&x=%2$d&y=%3$d&z=%4$d&s=Galil",
@ -43,18 +39,6 @@ public class GoogleMapInfo extends TileFactoryInfo {
//String url = String.format(this.baseURL, x, y, zoom, this.getLanguage()); //String url = String.format(this.baseURL, x, y, zoom, this.getLanguage());
return url; return url;
} }
// @Override
// public String getTileUrl(int x, int y, int zoom, String language) {
// zoom = this.getTotalMapZoom() - zoom;
// int serverNum = this.getServerNum(x, y, 4);
// String key = this.tileXYToQuadKey(x, y, zoom);
// String ckey = this.clientKey;
// if (ckey == null)
// ckey = "";
// String url = String.format(this.baseURL, serverNum, key, version, language, zoom, x, y);
// return url;
// }
/// <summary> /// <summary>
/// Converts tile XY coordinates into a QuadKey at a specified level of detail. /// Converts tile XY coordinates into a QuadKey at a specified level of detail.
/// </summary> /// </summary>

View File

@ -21,9 +21,6 @@ public class GoogleSatelliteMapInfo extends TileFactoryInfo {
256, true, true, // tile size is 256 and x/y orientation is normal 256, true, true, // tile size is 256 and x/y orientation is normal
"http://mt3.google.cn/vt/lyrs=s&hl=%1$s&gl=cn&x=%2$d&y=%3$d&z=%4$d&s=Galil", "http://mt3.google.cn/vt/lyrs=s&hl=%1$s&gl=cn&x=%2$d&y=%3$d&z=%4$d&s=Galil",
"x", "y", "z"); "x", "y", "z");
//String url = "http://mt1.google.com/vt/lyrs=y&hl=%s&x=%d&y=%d&z=%d&s=Ga";
//String url = "http://mt3.google.com/vt/lyrs=s&hl=%1$s&gl=cn&x=%2$d&y=%3$d&z=%4$d&s=Galil";
//this.baseURL = url;
} }
// // </editor-fold> // // </editor-fold>
// // <editor-fold desc="Get Set Methods"> // // <editor-fold desc="Get Set Methods">

View File

@ -10,36 +10,49 @@ package org.meteoinfo.data.mapdata.webmap;
*/ */
public enum WebMapProvider { public enum WebMapProvider {
//SwingLabsBlueMarble, //SwingLabsBlueMarble,
OpenStreetMap, OpenStreetMap(new OpenStreetMapInfo()),
OpenStreetMapQuestSatellite, OpenStreetMapQuestSatellite(new OpenStreetMapQuestSatelliteInfo()),
BingMap, BingMap(new BingMapInfo()),
BingSatelliteMap, BingSatelliteMap(new BingSatelliteMapInfo()),
BingHybridMap, BingHybridMap(new BingHybridMapInfo()),
GoogleMap, GoogleMap(new GoogleMapInfo()),
GoogleSatelliteMap, GoogleSatelliteMap(new GoogleSatelliteMapInfo()),
GoogleTerrainMap, GoogleTerrainMap(new GoogleTerrainMapInfo()),
GoogleHybridMap, GoogleHybridMap(new GoogleHybridMapInfo()),
GoogleHybridTerrainMap, GoogleHybridTerrainMap(new GoogleHybridTerrainMapInfo()),
AMap, GoogleCNMap(new GoogleCNMapInfo()),
ASatelliteMap, GoogleCNSatelliteMap(new GoogleCNSatelliteMapInfo()),
AHybridMap, GoogleCNTerrainMap(new GoogleCNTerrainMapInfo()),
TencentMap, AMap(new AMapInfo()),
GeoQMap, ASatelliteMap(new ASatelliteMapInfo()),
GeoQGrayMap, AHybridMap(new AHybridMapInfo()),
GeoQBlueMap, TencentMap(new TencentMapInfo()),
GeoQWarmMap, GeoQMap(new GeoQMapInfo()),
//BaiduMap, GeoQGrayMap(new GeoQGrayMapInfo()),
//BaiduSatelliteMap, GeoQBlueMap(new GeoQBlueMapInfo()),
//OviMap, GeoQWarmMap(new GeoQWarmMapInfo()),
//OviSatelliteMap, YahooMap(new YahooMapInfo()),
//OviTerrainMap, YahooSatelliteMap(new YahooSatelliteMapInfo()),
//OviHybridMap, YahooHybridMap(new YahooHybridMapInfo()),
YahooMap, CMA_CVA_MAP(new CMACvaMapInfo()),
YahooSatelliteMap, CMA_VEC_MAP(new CMAVecMapInfo()),
YahooHybridMap, CMA_IMG_MAP(new CMAImgMapInfo());
CMA_CVA_MAP,
CMA_VEC_MAP, private final TileFactoryInfo tileFactoryInfo;
CMA_IMG_MAP,
//ArcGISImage /**
Custom * Constructor
* @param tileFactoryInfo Tile factory info
*/
WebMapProvider(TileFactoryInfo tileFactoryInfo) {
this.tileFactoryInfo = tileFactoryInfo;
}
/**
* Get tile factory info
* @return Tile factory info
*/
public TileFactoryInfo getTileFactoryInfo() {
return this.tileFactoryInfo;
}
} }

View File

@ -394,107 +394,7 @@ public class WebMapLayer extends MapLayer {
* @param prov The web map provider * @param prov The web map provider
*/ */
public void setWebMapProvider(WebMapProvider prov) { public void setWebMapProvider(WebMapProvider prov) {
TileFactoryInfo info = null; TileFactoryInfo info = prov.getTileFactoryInfo();
switch (prov) {
// case SwingLabsBlueMarble:
// setTileFactory(new CylindricalProjectionTileFactory());
// setZoom(3);
// return;
case OpenStreetMap:
info = new OpenStreetMapInfo();
break;
case OpenStreetMapQuestSatellite:
info = new OpenStreetMapQuestSatelliteInfo();
break;
case BingMap:
info = new BingMapInfo();
break;
case BingSatelliteMap:
info = new BingSatelliteMapInfo();
break;
case BingHybridMap:
info = new BingHybridMapInfo();
break;
// case OviMap:
// info = new OviMapInfo();
// break;
// case OviSatelliteMap:
// info = new OviSatelliteMapInfo();
// break;
// case OviTerrainMap:
// info = new OviTerrainMapInfo();
// break;
// case OviHybridMap:
// info = new OviHybridMapInfo();
// break;
case YahooMap:
info = new YahooMapInfo();
break;
case YahooSatelliteMap:
info = new YahooSatelliteMapInfo();
break;
case YahooHybridMap:
info = new YahooHybridMapInfo();
break;
case GoogleMap:
info = new GoogleMapInfo();
break;
case GoogleSatelliteMap:
info = new GoogleSatelliteMapInfo();
break;
case GoogleTerrainMap:
info = new GoogleTerrainMapInfo();
break;
case GoogleHybridMap:
info = new GoogleHybridMapInfo();
break;
case GoogleHybridTerrainMap:
info = new GoogleHybridTerrainMapInfo();
break;
// case BaiduMap:
// info = new BaiduMapInfo();
// break;
// case BaiduSatelliteMap:
// info = new BaiduSatelliteMapInfo();
// break;
case AMap:
info = new AMapInfo();
break;
case ASatelliteMap:
info = new ASatelliteMapInfo();
break;
case AHybridMap:
info = new AHybridMapInfo();
break;
case TencentMap:
info = new TencentMapInfo();
break;
case GeoQMap:
info = new GeoQMapInfo();
break;
case GeoQGrayMap:
info = new GeoQGrayMapInfo();
break;
case GeoQBlueMap:
info = new GeoQBlueMapInfo();
break;
case GeoQWarmMap:
info = new GeoQWarmMapInfo();
break;
case CMA_CVA_MAP:
info = new CMACvaMapInfo();
break;
case CMA_VEC_MAP:
info = new CMAVecMapInfo();
break;
case CMA_IMG_MAP:
info = new CMAImgMapInfo();
break;
// case ArcGISImage:
// info = new ArcGISImageInfo();
// break;
}
if (info != null) { if (info != null) {
this.defaultProvider = prov; this.defaultProvider = prov;
this.setLayerName("WebMap_" + info.getName()); this.setLayerName("WebMap_" + info.getName());

View File

@ -8,5 +8,5 @@
<ScriptLanguage Language="Jython"/> <ScriptLanguage Language="Jython"/>
<LookFeel LafDecorated="true" Name="FlatLightLaf"/> <LookFeel LafDecorated="true" Name="FlatLightLaf"/>
<Figure DoubleBuffering="true"/> <Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,-7" MainFormSize="1293,685" ShowMeteoDataDlg="true"/> <Startup MainFormLocation="-5,1" MainFormSize="1293,685" ShowMeteoDataDlg="true"/>
</MeteoInfo> </MeteoInfo>