MCPcopy Create free account
hub / github.com/OSGeo/gdal / parse

Method parse

gcore/tilematrixset.cpp:69–521  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67/************************************************************************/
68
69std::unique_ptr<TileMatrixSet> TileMatrixSet::parse(const char *fileOrDef)
70{
71 CPLJSONDocument oDoc;
72 std::unique_ptr<TileMatrixSet> poTMS(new TileMatrixSet());
73
74 constexpr double HALF_CIRCUMFERENCE = 6378137 * M_PI;
75
76 if (EQUAL(fileOrDef, "GoogleMapsCompatible") ||
77 EQUAL(fileOrDef, "WebMercatorQuad") ||
78 EQUAL(
79 fileOrDef,
80 "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad"))
81 {
82 /* See http://portal.opengeospatial.org/files/?artifact_id=35326
83 * (WMTS 1.0), Annex E.4 */
84 // or https://docs.ogc.org/is/17-083r4/17-083r4.html#toc49
85 poTMS->mTitle = "GoogleMapsCompatible";
86 poTMS->mIdentifier = "GoogleMapsCompatible";
87 poTMS->mCrs = "http://www.opengis.net/def/crs/EPSG/0/3857";
88 poTMS->mBbox.mCrs = poTMS->mCrs;
89 poTMS->mBbox.mLowerCornerX = -HALF_CIRCUMFERENCE;
90 poTMS->mBbox.mLowerCornerY = -HALF_CIRCUMFERENCE;
91 poTMS->mBbox.mUpperCornerX = HALF_CIRCUMFERENCE;
92 poTMS->mBbox.mUpperCornerY = HALF_CIRCUMFERENCE;
93 poTMS->mWellKnownScaleSet =
94 "http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible";
95 for (int i = 0; i <= 30; i++)
96 {
97 TileMatrix tm;
98 tm.mId = CPLSPrintf("%d", i);
99 tm.mResX = 2 * HALF_CIRCUMFERENCE / 256 / (1 << i);
100 tm.mResY = tm.mResX;
101 tm.mScaleDenominator = tm.mResX / 0.28e-3;
102 tm.mTopLeftX = -HALF_CIRCUMFERENCE;
103 tm.mTopLeftY = HALF_CIRCUMFERENCE;
104 tm.mTileWidth = 256;
105 tm.mTileHeight = 256;
106 tm.mMatrixWidth = 1 << i;
107 tm.mMatrixHeight = 1 << i;
108 poTMS->mTileMatrixList.emplace_back(std::move(tm));
109 }
110 return poTMS;
111 }
112
113 if (EQUAL(fileOrDef, "WorldMercatorWGS84Quad") ||
114 EQUAL(fileOrDef, "http://www.opengis.net/def/tilematrixset/OGC/1.0/"
115 "WorldMercatorWGS84Quad"))
116 {
117 // See https://docs.ogc.org/is/17-083r4/17-083r4.html#toc51
118 poTMS->mTitle = "WorldMercatorWGS84Quad";
119 poTMS->mIdentifier = "WorldMercatorWGS84Quad";
120 poTMS->mCrs = "http://www.opengis.net/def/crs/EPSG/0/3395";
121 poTMS->mBbox.mCrs = poTMS->mCrs;
122 poTMS->mBbox.mLowerCornerX = -HALF_CIRCUMFERENCE;
123 poTMS->mBbox.mLowerCornerY = -HALF_CIRCUMFERENCE;
124 poTMS->mBbox.mUpperCornerX = HALF_CIRCUMFERENCE;
125 poTMS->mBbox.mUpperCornerY = HALF_CIRCUMFERENCE;
126 poTMS->mWellKnownScaleSet =

Callers 1

BuildParseInfoMethod · 0.45

Calls 15

CPLSPrintfFunction · 0.85
moveFunction · 0.85
VSIStatLFunction · 0.85
CPLFindFileFunction · 0.85
CPLErrorFunction · 0.85
LoadMemoryMethod · 0.80
GetObjMethod · 0.80
ToDoubleMethod · 0.80
SetFromUserInputMethod · 0.80
IsProjectedMethod · 0.80
GetLinearUnitsMethod · 0.80
IsGeographicMethod · 0.80

Tested by

no test coverage detected