Adding WMS layer to geoserver for cesium - geoserver

I was asked to set up offline map for Cesium. Thus, I set up Geoserver with Tomcat Apache.. I have heard from various forum on Accessing a WMS layer from Geoserver and adding it in Cesium globe.. But my question is how to add WMS layer? Is it by downloading image map or do I need to draw a map?
The forum which i found for accesing a WMS layer are found below
https://gis.stackexchange.com/questions/190459/accessing-a-wms-layer-from-geoserver-and-adding-it-in-cesium-globe

This is known as a cascaded WMS, GeoServer treats it as just another raster data store (roughly).
Simply, go to the WMS Datastore (right at the bottom of the stores list) and fill in the GetCapabilities URL and the name of the store. Once the store is created you can publish the layers as with any other store.

Related

How to design content repository in Liferay for access by remote application?

I have two separate Java applications A and B running on different physical servers.
On application A (based on Spring Boot framework ) end users view images and image meta data (over 50k images) and has search functionality including faceted search and will use elasticsearch for this. In this application what is the best way to design the content repository ( storage of images and meta data) such that all images can be cached in memory for high performance access?
Application B:
This is liferay 7 based portal.
Authors uploads images and enter meta data about images (or blogs) such as image description Admin approves/publishes the images. These published images are immediately seen in application A. How Liferay can store images to make it possible? Note that application A cannot use Liferay.
For the second part of your question:
Liferay has an API, that you can use to interface with the rest of the world - e.g. even event based: When an image is approved, do something.
Also, images stored in Liferay have a URL - no need to store them somewhere else, you just need to refer to their URL to access them. I'm not sure if that counts as "Application A uses Liferay", you can judge that.
The first part of your question, "what is the best way to design the content repository?": IMHO that part of the question is far out of scope for stackoverflow.com as there tends to be no "correct" answer, but just personal opinions. There's by far not enough information to come up with a proper answer on this topic.

Save and load files with three.js

Is there a way to save and load stringified objects with three.js?
I found this: https://github.com/josdirksen/learning-threejs/blob/master/chapter-08/03-load-save-json-object.html
but they use localstorage to save and load, which won't work between sessions or different computers.
Is there a way to load files just like the model is loaded? This should be like loading data files for a game.
I run the webgl client with Autodesk viewer locally with http-server.
If the Object can be written to localstorage it can just as well be exported as a file. You can send them to a server and store them there (maybe something like firebase would be useful here), or you can intiate a "download" directly from the browser. This is explained in Create a file in memory for user to download, not through server.
For loading a file, you can use the file-api, which is shown here: How to open a local disk file with Javascript?.
You just need to replace the localstorage-parts in your example accordingly.
Adding to Martin's answer, the Autodesk Viewer uses files translated and hosted by Model Derivative API. It's possible to show multiple files into the same scene. The Viewer is read-only. There is a getState and loadState functions to get the objects that represents the current zoom/explode/view information, and that can be serialized and stored somewhere.
There are some samples showing how to move a geometry on the model, for instance, move the geometry of a wall (from a building model). But that is not persistent, meaning you need to implement a JavaScript (client) + back-end infrastructure to save and restore those transformations.

How to add map to a custom entity in MSCRM 2015 and how to plot multiple locations on it?

How to add map to a custom entity in MSCRM 2015 and how to plot multiple locations on it ?
It would be helpful to know more details about your situation, what you're trying to accomplish, what mapping tool you're trying to use. Without that the best I can do is offer some basic suggestions...
Making the assumption that you're going to use the Bing maps ajax control, you can put a map on a custom entity's form using a html web resource in combination with some javascript to manage the map control. Here is the Bing maps interactive SDK where you can play around with some different features of the map control to plot points, etc. And here is the Bing Maps MSDN area where you can get into the details on how to use the control.
To put some points on the map, assuming the data you want to use is related to the entity record/form currently open, you can use the javascript provided as part of the CRM SDK to retrieve data directly off the form or current record, or do some ajax calls to the CRM OData endpoint to retrieve the necessary data and finally plot that data on the map.

How to enable cross origin resource sharing (CORS) in Cesium Sandcastle for Geoserver WMS Get request

I am trying fist to test and practice in cesium sandcatle with my data on localhost:8080 geoserver.
This picture will explane everything
Also, i want to ask, "how to get a list of GeoServer layers loaded into the Cesium BaseLayerPicker"
From example http://localhost:8080/geoserver/masterrad/wfs?request=GetCapabilities give XML file, with possible layers in workspaces 'masterrad'. How to extract names from that XML and put in BaseLayerPicker
Thanks
I think this may be two unrelated questions, but I'll try to answer both.
You can enable CORS in Geoserver using the CORS Filter plugin:
http://software.dzhuvinov.com/cors-filter-installation.html
As for your second question, Cesium does not have built-in support for querying WFS GetCapabilities, but TerriaJS does:
https://github.com/TerriaJS/terriajs
TerriaJS is an open-source library built on top of Cesium that was originally developed for Australia's NationalMap and has since been used for a lot of other projects. TerriaJS also has a fallback to Leaflet for systems that can't run Cesium. Once you have CORS working on your server, visit nationalmap.gov.au (a site running TerriaJS), click Add Data, enter your WFS URL, and you should see all of the server's layers appear at the bottom of the Data Catalogue.

Geoserver with Mapstraction

Do someone know how to use a custom hosted Geoserver's Tile Layers or WMS layers to be laid on Mapstraction as a base layer?
MapStraction has base layer plugins for google, yahoo, microsoft, openlayers etc., But unfortunately it lacks a plugin for custom open layers on geoserver. Do any one know how to neatly implement such a plugin?
Managed to find how to do the above.
Made a Copy of mxn openlayers.
Changed the TMS url to WMS where the geoserver is hosted. There would be 2 urls of OSM and OSM Mapnik, kept only one of them and replaced with the WMS Url.
There was only one problem in calling toProperietory and fromProperietory calls. Did not honestly understand the logic, but replaced them with just returning same values
And it worked.
PS: If someone understands the logic behind step 3, please feel free to explain.

Resources