Using your own data in CEO: Connecting WMS/WMTS

Using your own data in CEO: Connecting WMS/WMTS

We often hear from users that they have data that they would like to add to their Collect Earth Online (CEO) projects. Fortunately, CEO provides two easy ways to add your own imagery to your projects. The first is by connecting your own imagery via Web Map Service (WMS) or Web Map Tile Service (WMTS), and the second is by connecting your imagery hosted in Google Earth Engine (GEE). In this blog post, we will focus on connecting WMS/WMTS data sources to CEO.

🤝 Connecting your WMS/WMTS to CEO

WMS and WMTS provide specifications for serving georeferenced maps over the internet. Many national datasets are available through this protocol.

You may be familiar with using WMS or WMTS imagery in desktop applications such as ArcGIS or QGIS. Like these desktop applications, CEO can display WMS and WMTS imagery though the institutional imagery feature.

The Institutional Imagery addition form for WMS Imagery.
The Institutional Imagery addition form for WMS Imagery.


The first step of preparing to connect to your WMS/WMTS with CEO is checking that your WMS/WMTS is compatible with CEO. CEO requests data in EPSG:3857. Your WMS/WMTS server is responsible for reprojecting the imagery it hosts into this projection. Fortunately, most WMS/WMTS will do this automatically. Once your data is loaded, you can always visually check that they align with known good imagery, such as MapBox.

To connect your WMS/WMTS to CEO, you need to gather three pieces of information: the base URL for your WMS/WMTS, the layer name that you want, and any parameters your WMS/WMTS requires to serve imagery. If you need help gathering this information, there are more details provided in the next section.

The basic steps to connect your WMS or WMTS imagery are:

  • Go to the “Imagery” button at the top of your CEO institution, and click “Add New Imagery.”
  • Select “WMS Imagery” as the under Select Type.
  • Add a title, which will be the displayed name of the imagery.
  • Add the attribution, which assigns credit to the group who collected or owns the imagery. This will appear on the data collection screen while users perform data collection tasks.
  • Add the URL, which should be the http:// or https:// URL of your WMS/WMTS, and not contain a query string
  • Add the layer name from your server that you want to display.
  • Add any parameters for your layer required by the WMS/WMTS.
  • And finally, if you need to use a proxy for your WMS/WMTS, check the Proxy Imagery box. You may need this option if you need to obfuscate a key for your WMS or WMTS, and you use a proxy–a server between CEO and your WMS/WMTS–to do so.
Filled in WMS imagery form for GEBCO data.
Filled in WMS imagery form for GEBCO data.


Once you’ve added the layer from the WMS/WMTS, you can add it to any of your projects and leverage the imagery during data collection.

An example WMS image from GEBCO viewed in the CEO data collection screen.
An example WMS image from GEBCO viewed in the CEO data collection screen.

👩‍🔧 Locating information for WMS/WMTS connections

However, sometimes users have difficulty identifying the correct URL, layer name, and parameters to use to connect their imagery successfully. Here’s some tips that we recommend to help you find this information.

First, find the information page on your WMS/WMTS. These websites will frequently contain the necessary information to connect your WMS/WMTS to CEO. Sometimes your desired data source will have a more complex information page, with information about the data and then links to multiple WMS/WMTS. Some examples include:

When looking at this information, the first piece of information to look for is to locate the WMS URL. For example, https://geos1.snitcr.go.cr/Ortofoto2017/wms?VERSION=1.1.1.

An important thing to note is that everything after the ? in your WMS/WMTS URL is a parameter. When adding it to CEO, it should not be considered part of the URL. However, you will want to include the ? when you add your URL to CEO–but don’t worry, we’ll add it automatically if you forget!

The second piece of information to look for is the layer names that are available. The information page will frequently contain a list of layers that can be viewed with the WMS/WMTS. Note that sometimes your layer may have multiple names, so through the web interface you must make sure you are viewing the correct name.

You may need to view the layer’s metadata through the online portal in order to find the correct WMS/WMTS layer name.
You may need to view the layer’s metadata through the online portal in order to find the correct WMS/WMTS layer name.


You can also connect the WMS/WMTS into a desktop application like ArcGIS or QGIS and access the layer names through the desktop application.

The GEBCO WMS connection and its layers connected to QGIS.
The GEBCO WMS connection and its layers connected to QGIS.


You can then inspect the Layer Properties in order to find the information you need to connect the WMS/WMTS layer to CEO.

Layer properties of the GEBCO_2020_Grid_3 layer as displayed in QGIS.
Layer properties of the GEBCO_2020_Grid_3 layer as displayed in QGIS.


If you cannot load data into a desktop GIS and your WMS/WMTS only uses an XML file that does not have any style information associated with it, you can still find the layer name but it is more difficult. In this case, the information is in a difficult to read document tree. If this is the case, and you can’t load the data into a desktop GIS, search for “Layer” and look for the text with , and <Abstract> information fields that follow it. The <Name> text will be what you are looking for. In this example, the name is ‘GEBCO_2020_Grid_3’.</p><figure id="attachment_310" aria-describedby="caption-attachment-310" style="width: 602px" class="wp-caption aligncenter"><img decoding="async" class=" wp-image-310" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20602%20427'%3E%3C/svg%3E" alt="An example of a layer for a WMS server that does not include XML styling, so you must look at the document tree." width="602" height="427" data-lazy-srcset="https://www.collect.earth/wp-content/uploads/2022/03/no-style.png 936w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-300x213.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-768x545.png 768w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-500x355.png 500w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-800x568.png 800w" data-lazy-sizes="(max-width: 602px) 100vw, 602px" data-lazy-src="https://blog.collect.earth/wp-content/uploads/2022/03/no-style.png" /><noscript><img loading="lazy" decoding="async" class=" wp-image-310" src="https://blog.collect.earth/wp-content/uploads/2022/03/no-style.png" alt="An example of a layer for a WMS server that does not include XML styling, so you must look at the document tree." width="602" height="427" srcset="https://www.collect.earth/wp-content/uploads/2022/03/no-style.png 936w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-300x213.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-768x545.png 768w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-500x355.png 500w, https://www.collect.earth/wp-content/uploads/2022/03/no-style-800x568.png 800w" sizes="(max-width: 602px) 100vw, 602px" /></noscript><figcaption id="caption-attachment-310" class="wp-caption-text">An example of a layer for a WMS server that does not include XML styling, so you must look at the document tree.</figcaption></figure><p><br />The final piece is to identify the parameters. In our URLs, everything after the ? is a parameter, separated by the “&” character. Common things that you may see in URLs include:</p><ul><li aria-level="1">SERVICE=WMS</li><li aria-level="1">version=1.1.1 (or another version number)</li><li aria-level="1">request=GetCapabilities</li></ul><p>We do not want to include any of these three in our CEO parameters. This is because</p><ul><li aria-level="1">“Service=WMS” is handled automatically by CEO,</li><li aria-level="1">“version=1.1.1” or another version is likewise handled, and</li><li aria-level="1">“request=GetCapabilities” is a request to the WMS server to provide a list of capabilities (e.g. layer names), not the maps themselves.</li></ul><p>Other parameters may be necessary. For example, some WMS/WMTS have a “map” parameter that is necessary. Other parameters you might see include “crs” (generally not needed), “format” (also generally not needed). We suggest reading <a href="http://opengeospatial.github.io/e-learning/wms/text/operations.html#getmap">additional resources</a> on the WMS GetMap function to help you to identify any additional parameters your WMS requires to serve imagery.</p><p>If you do load your WMS in a desktop GIS, you can use the Layer Properties interface to help you find the appropriate properties to include.</p><p>Now that we have the crucial information, we can connect the WMS to CEO.</p><ul><li aria-level="1">In CEO, navigate to your Institutional Imagery page.</li><li aria-level="1">Create a new imagery layer of type WMS Imagery.</li><li aria-level="1">For Title, add your desired name. This might be the WMS layer name, the WMS name, some combination of these, etc.</li><li aria-level="1">Add the Attribution for your imagery.</li><li aria-level="1">Type in your WMS URL (only the portion before the ?) that you identified above.</li><li aria-level="1">Type in your WMS Layer Name.</li><li aria-level="1">Type in your additional WMS Parameters. These need to be written as a JSON object.<ul><li aria-level="2">For example, “map=ortofoto.map” (a unique parameter required by a specific WMS)</li><li aria-level="2">Becomes {“MAP”:”ortofoto.map”}. Note the straight “”.</li><li aria-level="2">If you do not have any parameters type <b>{}.</b></li></ul></li><li aria-level="1">Double check that you entered all information correctly and press <b>Save</b>!</li></ul><figure id="attachment_311" aria-describedby="caption-attachment-311" style="width: 373px" class="wp-caption aligncenter"><img decoding="async" class=" wp-image-311" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20373%20427'%3E%3C/svg%3E" alt="Completed WMS Imagery form for a WMS where an additional WMS Parameter is needed." width="373" height="427" data-lazy-srcset="https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2.png 508w, https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2-262x300.png 262w, https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2-500x572.png 500w" data-lazy-sizes="(max-width: 373px) 100vw, 373px" data-lazy-src="https://blog.collect.earth/wp-content/uploads/2022/03/wms-filled2.png" /><noscript><img loading="lazy" decoding="async" class=" wp-image-311" src="https://blog.collect.earth/wp-content/uploads/2022/03/wms-filled2.png" alt="Completed WMS Imagery form for a WMS where an additional WMS Parameter is needed." width="373" height="427" srcset="https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2.png 508w, https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2-262x300.png 262w, https://www.collect.earth/wp-content/uploads/2022/03/wms-filled2-500x572.png 500w" sizes="(max-width: 373px) 100vw, 373px" /></noscript><figcaption id="caption-attachment-311" class="wp-caption-text">Completed WMS Imagery form for a WMS where an additional WMS Parameter is needed.</figcaption></figure><figure id="attachment_312" aria-describedby="caption-attachment-312" style="width: 719px" class="wp-caption aligncenter"><img decoding="async" class=" wp-image-312" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20719%20392'%3E%3C/svg%3E" alt="The imagery in the Data Collection interface." width="719" height="392" data-lazy-srcset="https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2.png 624w, https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2-300x163.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2-500x272.png 500w" data-lazy-sizes="(max-width: 719px) 100vw, 719px" data-lazy-src="https://blog.collect.earth/wp-content/uploads/2022/03/wms-connected2.png" /><noscript><img loading="lazy" decoding="async" class=" wp-image-312" src="https://blog.collect.earth/wp-content/uploads/2022/03/wms-connected2.png" alt="The imagery in the Data Collection interface." width="719" height="392" srcset="https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2.png 624w, https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2-300x163.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/wms-connected2-500x272.png 500w" sizes="(max-width: 719px) 100vw, 719px" /></noscript><figcaption id="caption-attachment-312" class="wp-caption-text">The imagery in the Data Collection interface.</figcaption></figure><h2>💥 Further troubleshooting approaches.</h2><p>If after you try these steps you are still having trouble, here are some additional troubleshooting hints.</p><ul><li aria-level="1">If your layer is blank, first check your resolution. Some WMS layers will only be visible at certain resolutions, and you may need to zoom in to see the imagery. For example, the Mosaico5000 layer depicted above is only viewable when zoomed very far in.</li><li aria-level="1">Next, double check the URL and the layer name for typos.</li><li aria-level="1">Make sure your layer is available in the correct projection. CEO uses 3857. Not all servers will provide this projection, in which case you will need to confer with the team responsible for the WMS/WMTS to have it added.</li><li aria-level="1">If these don’t work, a good place to start is to make sure that your WMS server is working correctly by finding a WMS URL to an image of one of their map tiles. If you open this URL in your web browser, you should see that image load successfully. For example,<ul><li aria-level="2"><a href="http://geos0.snitcr.go.cr/cgi-bin/web?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=Mosaico5000&WIDTH=320&HEIGHT=320&CRS=EPSG%3A3857&STYLES=&FORMAT_OPTIONS=dpi%3A113&BBOX=-9275174.760236427%2C939258.2035682462%2C-9236039.001754416%2C978393.9620502564&map=ortofoto.map">http://geos0.snitcr.go.cr/cgi-bin/web?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=Mosaico5000&WIDTH=320&HEIGHT=320&CRS=EPSG%3A3857&STYLES=&FORMAT_OPTIONS=dpi%3A113&BBOX=-9275174.760236427%2C939258.2035682462%2C-9236039.001754416%2C978393.9620502564&map=ortofoto.map</a></li><li aria-level="2"><a href="https://geos1.snitcr.go.cr/Ortofoto2017/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=fotocentros_ortofoto_2017_5000&TILED=true&WIDTH=256&HEIGHT=256&SRS=EPSG%3A5367&gridSet=CRTM05&STYLES=&BBOX=348586.56637714803%2C738692.4676108168%2C912687.8695003731%2C1302793.770734042">https://geos1.snitcr.go.cr/Ortofoto2017/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=fotocentros_ortofoto_2017_5000&TILED=true&WIDTH=256&HEIGHT=256&SRS=EPSG%3A5367&gridSet=CRTM05&STYLES=&BBOX=348586.56637714803%2C738692.4676108168%2C912687.8695003731%2C1302793.770734042</a></li></ul></li></ul><p style="padding-left: 40px;">Note that this server requires SRS instead of CRS. Both are OGC compliant. While you’re creating the working WMS URL, you might get the following error:</p><div class="mceTemp" style="padding-left: 40px;"><p style="text-align: center;"><img decoding="async" class="size-full wp-image-313" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20397%20219'%3E%3C/svg%3E" alt="400 no SRS error." width="397" height="219" data-lazy-srcset="https://www.collect.earth/wp-content/uploads/2022/03/400nosrs.png 397w, https://www.collect.earth/wp-content/uploads/2022/03/400nosrs-300x165.png 300w" data-lazy-sizes="(max-width: 397px) 100vw, 397px" data-lazy-src="https://blog.collect.earth/wp-content/uploads/2022/03/400nosrs.png" /><noscript><img loading="lazy" decoding="async" class="size-full wp-image-313" src="https://blog.collect.earth/wp-content/uploads/2022/03/400nosrs.png" alt="400 no SRS error." width="397" height="219" srcset="https://www.collect.earth/wp-content/uploads/2022/03/400nosrs.png 397w, https://www.collect.earth/wp-content/uploads/2022/03/400nosrs-300x165.png 300w" sizes="(max-width: 397px) 100vw, 397px" /></noscript></p><p style="padding-left: 40px;">Constructing these can be difficult. One of the best ways to construct them is to use your browsers’ console or developer tools, looking at the “Network” pane. When you visit your project in CEO and try to load the data, it should populate with multiple requests for the different map images. You can double click on these in order to visit the individual image. If this doesn’t work, you can try adding or changing the URL until an image appears.</p><p><img decoding="async" class="size-full wp-image-314" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20936%20178'%3E%3C/svg%3E" alt="Use your browsers’ console or developer tools to try to get a list of the individual images. " width="936" height="178" data-lazy-srcset="https://www.collect.earth/wp-content/uploads/2022/03/image-links.png 936w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-300x57.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-768x146.png 768w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-500x95.png 500w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-800x152.png 800w" data-lazy-sizes="(max-width: 936px) 100vw, 936px" data-lazy-src="https://blog.collect.earth/wp-content/uploads/2022/03/image-links.png" /><noscript><img loading="lazy" decoding="async" class="size-full wp-image-314" src="https://blog.collect.earth/wp-content/uploads/2022/03/image-links.png" alt="Use your browsers’ console or developer tools to try to get a list of the individual images. " width="936" height="178" srcset="https://www.collect.earth/wp-content/uploads/2022/03/image-links.png 936w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-300x57.png 300w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-768x146.png 768w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-500x95.png 500w, https://www.collect.earth/wp-content/uploads/2022/03/image-links-800x152.png 800w" sizes="(max-width: 936px) 100vw, 936px" /></noscript></p><p style="padding-left: 40px;">Clicking on one of these (e.g. <a href="https://www.gebco.net/data_and_products/gebco_web_services/2020/mapserv?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=GEBCO_2020_Grid_3&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=-8766409.899970295%2C-313086.06785608083%2C-8609866.866042254%2C-156543.03392803986">https://www.gebco.net/data_and_products/gebco_web_services/2020/mapserv?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=GEBCO_2020_Grid_3&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=-8766409.899970295%2C-313086.06785608083%2C-8609866.866042254%2C-156543.03392803986</a>) will attempt to show a single image.</p><p style="padding-left: 40px;">If you haven’t configured the WMS correctly, clicking on one of these requests gives an error message. For example, here’s an example error:</p><p style="padding-left: 80px;"><?xml version=’1.0′ encoding=”ISO-8859-1″ standalone=”no” ?><br /><!DOCTYPE ServiceExceptionReport SYSTEM “http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd”><br /><ServiceExceptionReport version=”1.1.1″><br /><ServiceException code=”MissingParameterValue”><br />msWMSLoadGetMapParams(): WMS server error. Missing required parameter SRS<br /></ServiceException><br /></ServiceExceptionReport></p><p style="padding-left: 80px;">For this WMS, getting rid of the version=1.1.1 parameter resolved the configuration issue.</p><p style="padding-left: 40px;">We suggest reading resources on the WMS GetMap function to help you interpret these errors, for example: <a href="http://opengeospatial.github.io/e-learning/wms/text/operations.html#getmap">http://opengeospatial.github.io/e-learning/wms/text/operations.html#getmap</a></p><ul><li aria-level="1">In rare cases, your WMS may be serving imagery, but the imagery is blank. Finding your WMS URL can help in this case, as can exploring the metadata for your WMS/WMTS if there is a “Preview Imagery” option. For example, <a href="https://geos0.snitcr.go.cr/cgi-bin/web?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&MAP=ortofoto.map&LAYERS=Mosaico5000&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=-8453323.832114212%2C-156543.03392804042%2C-8296780.798186171%2C5.529727786779404e-10">https://geos0.snitcr.go.cr/cgi-bin/web?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&MAP=ortofoto.map&LAYERS=Mosaico5000&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=-8453323.832114212%2C-156543.03392804042%2C-8296780.798186171%2C5.529727786779404e-10</a>. This lets you know that CEO and the WMS are connected, but there might be another issue. In this case, it was that the map was not zoomed in far enough for the WMS to provide imagery.</li><li aria-level="1">If your layer is still blank, next visit your browser’s console and examine the error messages. These may provide insight into what is causing the issue.</li></ul></div><p> </p><p>CEO would like to thank its ongoing funders <a href="http://www.fao.org/home/en/">FAO</a>, <a href="https://www.servirglobal.net/">NASA–USAID SERVIR</a>, and <a href="https://www.silvacarbon.org/">SilvaCarbon</a>, a US government program. Thanks also to CEO’s technology partners: Norway’s International Climate & Forests Initiative for funding open high-resolution data availability; Planet for providing high-resolution imagery; and the Google Earth Engine team for creating a platform for Earth science data and analysis.</p><p>Collect Earth Online is working constantly to improve the user experience, and your feedback is invaluable. If you have ideas to share, please write to <a href="mailto:support@collect.earth">support@collect.earth</a>.</p><p>Thank you!</p> </div> </div> </div> </div> </div> </section> <section class="elementor-section elementor-top-section elementor-element elementor-element-0e2ebc1 elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="0e2ebc1" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-no"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-35bdeb4" data-id="35bdeb4" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-dce60d9 elementor-post-navigation-borders-yes elementor-widget elementor-widget-post-navigation" data-id="dce60d9" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="post-navigation.default"> <div class="elementor-widget-container"> <div class="elementor-post-navigation" role="navigation" aria-label="Post Navigation"> <div class="elementor-post-navigation__prev elementor-post-navigation__link"> <a href="https://www.collect.earth/winter-2022-updates-survey-improvements/" rel="prev"><span class="post-navigation__arrow-wrapper post-navigation__arrow-prev"><i aria-hidden="true" class="fas fa-angle-left"></i><span class="elementor-screen-only">Prev</span></span><span class="elementor-post-navigation__link__prev"><span class="post-navigation__prev--label">Previous</span><span class="post-navigation__prev--title">Winter 2022 updates: Survey improvements</span></span></a> </div> <div class="elementor-post-navigation__separator-wrapper"> <div class="elementor-post-navigation__separator"></div> </div> <div class="elementor-post-navigation__next elementor-post-navigation__link"> <a href="https://www.collect.earth/ceo-paper-wins-multiple-awards/" rel="next"><span class="elementor-post-navigation__link__next"><span class="post-navigation__next--label">Next</span><span class="post-navigation__next--title">CEO paper wins multiple awards</span></span><span class="post-navigation__arrow-wrapper post-navigation__arrow-next"><i aria-hidden="true" class="fas fa-angle-right"></i><span class="elementor-screen-only">Next</span></span></a> </div> </div> </div> </div> </div> </div> </div> </section> </div> <footer data-elementor-type="footer" data-elementor-id="3846" class="elementor elementor-3846 elementor-location-footer" data-elementor-post-type="elementor_library"> <section class="elementor-section elementor-top-section elementor-element elementor-element-6cc395c elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="6cc395c" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0dd99ab" data-id="0dd99ab" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-c63daf7 elementor-align-center elementor-icon-list--layout-inline elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="c63daf7" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items elementor-inline-items"> <li class="elementor-icon-list-item elementor-inline-item"> <a href="https://www.collect.earth"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fas fa-chevron-right"></i> </span> <span class="elementor-icon-list-text">Home</span> </a> </li> <li class="elementor-icon-list-item elementor-inline-item"> <a href="https://app.collect.earth/" target="_blank"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fas fa-chevron-right"></i> </span> <span class="elementor-icon-list-text">Open CEO</span> </a> </li> <li class="elementor-icon-list-item elementor-inline-item"> <a href="https://www.collect.earth/ceo-guides/"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fas fa-chevron-right"></i> </span> <span class="elementor-icon-list-text">CEO Help</span> </a> </li> <li class="elementor-icon-list-item elementor-inline-item"> <a href="https://www.collect.earth/about/"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fas fa-chevron-right"></i> </span> <span class="elementor-icon-list-text">About</span> </a> </li> <li class="elementor-icon-list-item elementor-inline-item"> <a href="https://www.collect.earth/blog/"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fas fa-chevron-right"></i> </span> <span class="elementor-icon-list-text">Blog</span> </a> </li> </ul> </div> </div> </div> </div> </div> </section> <div class="elementor-section elementor-top-section elementor-element elementor-element-2ce656e elementor-section-full_width elementor-section-content-top elementor-section-height-default elementor-section-height-default" data-id="2ce656e" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-no"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b5fa836" data-id="b5fa836" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <section class="elementor-section elementor-inner-section elementor-element elementor-element-2043562 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2043562" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-582d6e1" data-id="582d6e1" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-040409b elementor-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="040409b" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items"> <li class="elementor-icon-list-item"> <a href="https://www.youtube.com/playlist?list=PLiEp-2s05SCwn6LvO7xtdFs-fgHfPrY_e"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fab fa-youtube"></i> </span> <span class="elementor-icon-list-text">YouTube</span> </a> </li> </ul> </div> </div> </div> </div> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-9ed4ea2" data-id="9ed4ea2" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-bbaec36 elementor-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="bbaec36" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items"> <li class="elementor-icon-list-item"> <a href="https://twitter.com/OpenForis" target="_blank"> <span class="elementor-icon-list-icon"> <i aria-hidden="true" class="fab fa-twitter"></i> </span> <span class="elementor-icon-list-text">Twitter</span> </a> </li> </ul> </div> </div> </div> </div> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-44f1af6" data-id="44f1af6" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-1b3da96 elementor-align-center elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="1b3da96" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items"> <li class="elementor-icon-list-item"> <a href="https://www.collect.earth/ceo-terms-of-service/"> <span class="elementor-icon-list-text">Terms of Service</span> </a> </li> </ul> </div> </div> </div> </div> </div> </section> <section class="elementor-section elementor-inner-section elementor-element elementor-element-9d28f4b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9d28f4b" data-element_type="section" data-e-type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-daabb72" data-id="daabb72" data-element_type="column" data-e-type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-9662a30 elementor-widget elementor-widget-text-editor" data-id="9662a30" data-element_type="widget" data-e-type="widget" data-settings="{"aos_animation_name":"none"}" data-widget_type="text-editor.default"> <div class="elementor-widget-container"> <p style="text-align: center;"><span style="color: #808080;">© Collect Earth Online. All rights reserved.</span></p> </div> </div> </div> </div> </div> </section> </div> </div> </div> </div> </footer> <a href="#" class="vlt-btn vlt-btn--back-to-top"><i class="icon-arrow-top"></i></a> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/quollion-child/*","/wp-content/themes/quollion/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script type="text/rocketlazyloadscript" id='kirki-viewport-lists'>var kirkiViewports = {"md":{"value":1200,"scale":1,"minWidth":1200,"maxWidth":1200,"title":"Desktop","icon":"desktop","activeIcon":"desktop-hover","id":"md","type":"max"},"tablet":{"value":991,"scale":1,"minWidth":991,"maxWidth":991,"title":"Tablet","icon":"tablet-default","activeIcon":"tablet-hover","type":"max","id":"tablet"},"mobileLandscape":{"value":767,"scale":1,"minWidth":767,"maxWidth":767,"title":"Landscape","icon":"phone-hr-default","activeIcon":"phone-hr-hover","type":"max","id":"mobileLandscape"},"mobile":{"value":575,"scale":1,"minWidth":575,"maxWidth":575,"title":"Mobile","icon":"phone-vr-default","activeIcon":"phone-vr-hover","type":"max","id":"mobile"}};</script><script type="text/rocketlazyloadscript" id='kirki-variable-lists'>var kirkiCSSVariable = {"data":[{"title":"Colors","key":"color","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Numbers","key":"size","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Text Styles","key":"text-style","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Font Family","key":"font-family","modes":[{"title":"Default","key":"default"}],"variables":[]}]};</script><script type="text/rocketlazyloadscript" id="kirki-api-and-nonce"> window.wp_kirki = { ajaxUrl: "https://www.collect.earth/wp-admin/admin-ajax.php", restUrl: "https://www.collect.earth/wp-json/", siteUrl: "https://www.collect.earth", apiVersion: "v1", postId: "10234", nonce: "3e79a8163b", call_from: "", templateId: "", context: {"id":10234,"type":"post"} }; </script> <script type="text/rocketlazyloadscript"> const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); </script> <style id="eael-inline-css"></style><script type="text/rocketlazyloadscript" id="rocket-browser-checker-js-after"> "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); //# sourceURL=rocket-browser-checker-js-after </script> <script id="rocket-preload-links-js-extra"> var RocketPreloadLinksConfig = {"excludeUris":"/(?:.+/)?feed(?:/(?:.+/?)?)?$|/(?:.+/)?embed/|/(index.php/)?(.*)wp-json(/.*|$)|/refer/|/go/|/recommend/|/recommends/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https://www.collect.earth","onHoverDelay":"100","rateThrottle":"3"}; //# sourceURL=rocket-preload-links-js-extra </script> <script type="text/rocketlazyloadscript" id="rocket-preload-links-js-after"> (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); //# sourceURL=rocket-preload-links-js-after </script> <script type="text/rocketlazyloadscript" id="imagesloaded-js" data-rocket-src="https://www.collect.earth/wp-includes/js/imagesloaded.min.js?ver=5.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="animsition-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/animsition.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="aos-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/themes/quollion/assets/vendors/aos.js?ver=1776974259" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="fitty-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/fitty.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="gsap-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/gsap.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="isotope-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/isotope.pkgd.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="jarallax-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/jarallax.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="jquery-numerator-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor/assets/lib/jquery-numerator/jquery-numerator.min.js?ver=0.2.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="fancybox-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/jquery.fancybox.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="inview-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/jquery.inview.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="scrollTo-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/jquery.scrollTo.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="superfish-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/themes/quollion/assets/vendors/superfish.js?ver=1776974259" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="superclick-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/superclick.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="howler-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/themes/quollion/assets/vendors/howler.core.js?ver=1776974259" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="tilt-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/tilt.jquery.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="fitvids-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/themes/quollion/assets/vendors/jquery.fitvids.js?ver=1776974259" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="sharer-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/sharer.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="typed-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/typed.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="morphext-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/morphext.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="justifiedGallery-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/jquery.justifiedGallery.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="swiper-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor/assets/lib/swiper/v8/swiper.min.js?ver=8.4.5" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="countdown-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/countdown.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="parallax-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/parallax.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="lax-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/vendors/lax.min.js?ver=1.0.0" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="vlt-helpers-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/themes/quollion/assets/scripts/vlt-helpers.js?ver=1776974259" data-rocket-defer defer></script> <script id="vlt-controllers-js-extra"> var VLT_LOCALIZE_DATAS = {"theme_directory":"https://www.collect.earth/wp-content/themes/quollion/","menu_back_text":"Back"}; //# sourceURL=vlt-controllers-js-extra </script> <script type="text/rocketlazyloadscript" id="vlt-controllers-js" data-rocket-src="https://www.collect.earth/wp-content/themes/quollion/assets/scripts/vlt-controllers.min.js?ver=1.0.0" data-rocket-defer defer></script> <script id="eael-general-js-extra"> var localize = {"ajaxurl":"https://www.collect.earth/wp-admin/admin-ajax.php","nonce":"dc84422aa1","i18n":{"added":"Added ","compare":"Compare","loading":"Loading..."},"eael_translate_text":{"required_text":"is a required field","invalid_text":"Invalid","billing_text":"Billing","shipping_text":"Shipping","fg_mfp_counter_text":"of"},"page_permalink":"https://www.collect.earth/add-wms-to-ceo/","cart_redirectition":"","cart_page_url":"","el_breakpoints":{"mobile":{"label":"Mobile Portrait","value":576,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":768,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}}; //# sourceURL=eael-general-js-extra </script> <script type="text/rocketlazyloadscript" id="eael-general-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/js/view/general.min.js?ver=6.6.5" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="eael-3286-js" data-rocket-src="https://www.collect.earth/wp-content/cache/min/1/wp-content/uploads/essential-addons-elementor/eael-3286.js?ver=1776974259" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="elementor-webpack-runtime-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.1.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="elementor-frontend-modules-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.1.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="jquery-ui-core-js" data-rocket-src="https://www.collect.earth/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" data-rocket-defer defer></script> <script id="elementor-frontend-js-extra"> var EAELImageMaskingConfig = {"svg_dir_url":"https://www.collect.earth/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/img/image-masking/svg-shapes/"}; //# sourceURL=elementor-frontend-js-extra </script> <script type="text/rocketlazyloadscript" id="elementor-frontend-js-before"> var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":577,"lg":769,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":576,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":768,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}, "hasCustomBreakpoints":true},"version":"4.1.1","is_static":false,"experimentalFeatures":{"additional_custom_breakpoints":true,"theme_builder_v2":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/www.collect.earth\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/www.collect.earth\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/www.collect.earth\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"657a3c3699","atomicFormsSendForm":"6bee481c89"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"viewport_mobile":576,"viewport_tablet":768,"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":10234,"title":"Using%20your%20own%20data%20in%20CEO%3A%20Connecting%20WMS%2FWMTS","excerpt":"CEO provides easy ways to add your own imagery to your projects. In this blog post, we will focus on connecting WMS\/WMTS data sources to CEO.","featuredImage":"https:\/\/www.collect.earth\/wp-content\/uploads\/2022\/03\/wms-connected.png"}}; //# sourceURL=elementor-frontend-js-before </script> <script type="text/rocketlazyloadscript" id="elementor-frontend-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.1.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="smartmenus-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="e-sticky-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=4.0.3" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="elementor-pro-webpack-runtime-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.0.3" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="wp-hooks-js" data-rocket-src="https://www.collect.earth/wp-includes/js/dist/hooks.min.js?ver=7496969728ca0f95732d"></script> <script type="text/rocketlazyloadscript" id="wp-i18n-js" data-rocket-src="https://www.collect.earth/wp-includes/js/dist/i18n.min.js?ver=781d11515ad3d91786ec"></script> <script type="text/rocketlazyloadscript" id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after </script> <script type="text/rocketlazyloadscript" id="elementor-pro-frontend-js-before"> var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.collect.earth\/wp-admin\/admin-ajax.php","nonce":"508d16b3cb","urls":{"assets":"https:\/\/www.collect.earth\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.collect.earth\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":false},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}}, "facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.collect.earth\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; //# sourceURL=elementor-pro-frontend-js-before </script> <script type="text/rocketlazyloadscript" id="elementor-pro-frontend-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.0.3" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="pro-elements-handlers-js" data-rocket-src="https://www.collect.earth/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.0.3" data-rocket-defer defer></script> <script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://www.collect.earth/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script><script>function lazyLoadThumb(e,alt,l){var t='<img data-lazy-src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"><noscript><img src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"></noscript>',a='<button class="play" aria-label="Play Youtube video"></button>';if(l){t=t.replace('data-lazy-','');t=t.replace('loading="lazy"','');t=t.replace(/<noscript>.*?<\/noscript>/g,'');}t=t.replace('alt=""','alt="'+alt+'"');return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.parentNode.dataset.query.length?"":"&"+this.parentNode.dataset.query;e.setAttribute("src",t.replace("ID",this.parentNode.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.parentNode.replaceChild(e,this.parentNode)}document.addEventListener("DOMContentLoaded",function(){var exclusions=[];var e,t,p,u,l,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)(e=document.createElement("div")),(u='https://i.ytimg.com/vi/ID/hqdefault.jpg'),(u=u.replace('ID',a[t].dataset.id)),(l=exclusions.some(exclusion=>u.includes(exclusion))),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query",a[t].dataset.query),e.setAttribute("data-src",a[t].dataset.src),(e.innerHTML=lazyLoadThumb(a[t].dataset.id,a[t].dataset.alt,l)),a[t].appendChild(e),(p=e.querySelector(".play")),(p.onclick=lazyLoadYoutubeIframe)});</script> <script>var rocket_beacon_data = {"ajax_url":"https:\/\/www.collect.earth\/wp-admin\/admin-ajax.php","nonce":"d405a7c242","url":"https:\/\/www.collect.earth\/add-wms-to-ceo","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preload_fonts":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preload_fonts_exclusions":["api.fontshare.com","cdn.fontshare.com"],"processed_extensions":["woff2","woff","ttf"],"external_font_exclusions":[],"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}</script><script data-name="wpr-wpr-beacon" src='https://www.collect.earth/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script><script>(()=>{class RocketElementorPreload{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}t(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this.i(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach(t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this.o(t)}catch(t){}})}o(t){const e=JSON.parse(t.dataset.settings),i=e.m||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let o=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this.l(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(o)})}i(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}l(t,e){this.i().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorPreload;requestAnimationFrame(t.t.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorPreload.run)})();</script></body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1780416432 -->