Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we handle a Map configuration using locally downloaded configuration file? #9

Closed
shrikant-panchal opened this issue Apr 3, 2020 · 11 comments

Comments

@shrikant-panchal
Copy link

I observed that every time we run the VTS browser, it calls URL to retrieve the data and all needed accompanying configuration too. I am wondering if I can download the required data and configuration file, save it locally on a machine and can the data be directly rendered?
If yes, I have the following queries in my mind;

  1. Which particular API should I use?
  2. Is there any cost associated with this service?

If NO,

  1. Does VTS provide the different types of config files based on required granular details?

I tried to do so, but the API "" is probably useful only to retrieve the data from the web URL so it fails with the following error;
2020-04-03 14:37:10 W2 [9260(0)]: Resource <D:\Projects\Apogee_VTS\mapConfig.json> may retry in 16 seconds {manager.cpp:vts::MapImpl::resourcesCheckInitialized():691}
2020-04-03 14:37:26 E2 [9260(chttp:1)]: Exception <Transfer of <D:\Projects\Apogee_VTS\mapConfig.json> failed: <3, URL using bad/illegal format or missing URL>.> in download of <D:\Projects\Apogee_VTS\mapConfig.json> {curl.cpp:vts::`anonymous-namespace'::Task::done():197}
2020-04-03 14:37:26 E2 [9260(chttp:1)]: Error downloading <D:\Projects\Apogee_VTS\mapConfig.json>, http code 10500 {manager.cpp:vts::FetchTaskImpl::fetchDone():156}
2020-04-03 14:37:26 E3 [9260(0)]: All retries for resource <D:\Projects\Apogee_VTS\mapConfig.json> has failed {manager.cpp:vts::MapImpl::resourcesCheckInitialized():681}
2020-04-03 14:37:26 E4 [9260(0)]: Mapconfig failure. {map.cpp:vts::testAndThrow():337}
2020-04-03 14:37:51 E4 [9260(0)]: Mapconfig failure. {map.cpp:vts::testAndThrow():337}

Any help would be greatly appreciated!

@malytomas
Copy link
Contributor

  1. Which particular API should I use?

There is no api to directly download a dataset.

  1. Is there any cost associated with this service?

VTS as a software is free, under the terms of BSD license. See the LICENSE file.
This allows you to use it for any purpose, commercial or not.

However, all data are licensed separately.
We have an example dataset https://www.melowntech.com/products/vadstena/ that is freely available and can be downloaded.
The data that are shown in vts-browser-cpp by default (our intergeo presentation) are for presentation purposes only.

  1. Does VTS provide the different types of config files based on required granular details?

I am not sure what you mean by granular details, but VTS browser starts with single mapconfig, which contains references to all relevant datasets, which are already tiled and LODed (level of detail).

I tried to do so, but the API "" is probably useful only to retrieve the data from the web URL so it fails with the following error;

You have to specify a protocol. The protocol for accessing local hard drives is file, for example:
file://D:/Projects/Apogee_VTS/mapConfig.json
See https://ec.haxx.se/cmdline/cmdline-urls for more examples.

However, I am unsure if the support for local files is actually compiled in.


As for hosting any dataset (for both local and remote use), take a look at our backend components:
https://vts-geospatial.org/

@shrikant-panchal
Copy link
Author

The link you shared for the example data set which is freely available.
I can see there is a license with it saying it is only for educational/evaluation purposes.

I did several attempts to contact Melown Technologies from the website, but no response yet.
Can you direct me where I can get detailed information about the costs associated with the services if we want to use the data and app in our commercial software? or any contact details of sales team?

What is our requirement?
we just need to visualize the terrain data that is earth's surface with height and texture details(for now) in a desktop-based software. (I think building/tree data layer is not the current priority)

I have a few doubts can you please address them?

  1. Please correct if my understanding is wrong. That the commercial license is for the data and not for backend/frontend software?
  2. Does the map config contain information of just the specific location/area or we can navigate anywhere on earth based on that config?
  3. vts-browser.js allows us to edit the config on the fly(through APIs). Does the cpp version also allows to edit the config through APIs for instance position(camera position)?
  4. If we set up the backend with some(free/paid) data on our own server, can we use it for commercial purposes? of course by maintaining the BSD license terms for the front end(which is to distribute the license with the product, as we will be using just binaries most probably).
  5. Is there any license for the backend?
  6. If we're using Melown cloud (and not our own backend), I didn't understand the conditions given on the website which is 3000 actual map views/months. Does this mean we can create 3000 map configs/month or if we have let's say only one config then the user is allowed to view the same config 3000 times a month using either vts-browser-js(web) or vts-browser-cpp(desktop)?
  7. Is there any 3d data set available for commercial use?(free/paid both I would like to know) (just terrain not buildings/trees).

I'm sorry to post non-technical questions, I'm not sure if it's okay to discuss licensing here, but the only responsive social channel to contact Melown Technologies I found, is this git repo (at least in the current situation).

It would be really great if you could help me contact the sales/marketing team.
Awaiting a positive response from your side.

Thanks,
Shrikant

@malytomas
Copy link
Contributor

The link you shared for the example data set which is freely available.
I can see there is a license with it saying it is only for educational/evaluation purposes.

I am sorry, I may have misremember the license.

I did several attempts to contact Melown Technologies from the website, but no response yet.
Can you direct me where I can get detailed information about the costs associated with the services if we want to use the data and app in our commercial software? or any contact details of sales team?

I have notified the team.

1. Please correct if my understanding is wrong. That the commercial license is for the data and not for backend/frontend software?

The VTS software is BSD licensed.

I probably misremember the license for the example dataset (or maybe we have some other elsewhere). I apologize for the confusion.

2. Does the map config contain information of just the specific location/area or we can navigate anywhere on earth based on that config?

You can navigate anywhere where there are any data referenced by the mapconfig.
That is, if you have a map with whole-planet dataset, you can navigate the whole planet.
The mapconfig can contain references for multiple datasets simultaneously.

3. vts-browser.js allows us to edit the config on the fly(through APIs). Does the cpp version also allows to edit the config through APIs for instance position(camera position)?

Yes camera position can be changed. The mapconfig contains initial position, but the application has ultimate control over it.

4. If we set up the backend with some(free/paid) data on our own server, can we use it for commercial purposes? of course by maintaining the BSD license terms for the front end(which is to distribute the license with the product, as we will be using just binaries most probably).

Yes the software can be used in this way.

5. Is there any license for the backend?

VTS backend software is licensed under the same BSD.

6. If we're using Melown cloud (and not our own backend), I didn't understand the conditions given on the website which is 3000 actual map views/months. Does this mean we can create 3000 map configs/month or if we have let's say only one config then the user is allowed to view the same config 3000 times a month using either vts-browser-js(web) or vts-browser-cpp(desktop)?

I believe it is the later. That is - you have one mapconfig which can be viewed 3000 times per month.
It does not matter whether it is accessed by vts-browser-js or vts-browser-cpp.

7. Is there any 3d data set available for commercial use?(free/paid both I would like to know) (just terrain not buildings/trees).

Yes there certainly are. I will postpone this question for the sales team.

I'm sorry to post non-technical questions, I'm not sure if it's okay to discuss licensing here, but the only responsive social channel to contact Melown Technologies I found, is this git repo (at least in the current situation).

I can definitely confirm the license for the software. You should get a response from the sales team shortly. I apologize for the delay.

Tomáš Malý

@shrikant-panchal
Copy link
Author

Thanks Tomáš !
I'm still waiting for a response from the sales team.

Apart from that, I have few more doubts on the technical front;

1. Server Configuration and Data

I would like to know what amount of data would it be, in order to decide the capacity of the backend server setup.
I went through the official documentation and it is mentioned there that the actual size of RAM/disk space much depends on what you want to use VTS backend for?
But it is not clear on what basis it is said so?

Could you please elaborate more on this, when you say, mid-range configurations what exact details of CPU, GPU, RAM and data transfer will suit for?
Let's consider the following two cases;

  1. In order to load simple earth surface data(No building or trees).
  2. In order to load all the layers of data(including building, trees, etc.)

2. Caching the data on local machine
We are not sure whether we can configure where to cache the downloaded data for a particular session on a local drive?
Currently, we are observing it is being stored in temp folder of the current user machine.

3. Could you please suggest some resources/websites where we can get the required data (Free/paid)?

4. Do we need to fetch all the data every time?
Does that work like, the data is cached per session and for the next sessions, the same data gets loaded from cache and only the new data will be downloaded if needed?

@malytomas
Copy link
Contributor

  1. Server Configuration and Data

We have successfully run vts backend on low-end laptops (good for a live presentation) as well as on server cluster (serving thousands of visitors a day). This will heavily depend on your particular use case and it is best to experiment and measure.

2. Caching the data on local machine
We are not sure whether we can configure where to cache the downloaded data for a particular session on a local drive?
Currently, we are observing it is being stored in temp folder of the current user machine.

The path can be changed in vts::MapCreateOptions.

4. Do we need to fetch all the data every time?
Does that work like, the data is cached per session and for the next sessions, the same data gets loaded from cache and only the new data will be downloaded if needed?

All downloaded files are stored on drive specifically to persist from session to session.
(Mapconfing (and few more types of resources) are always downloaded again, but that is insignificant in terms of transferred size.)

@shrikant-panchal
Copy link
Author

shrikant-panchal commented Apr 7, 2020

Okay. Thank you so much!

I have a query about data,
What all file formats are supported for VTS as input, in order to convert that file format in VTS tiles?

It would be really helpful if you could suggest corresponding references to download the data in a valid file format(like a spreadsheet, KML, shapefile, etc.).

@malytomas
Copy link
Contributor

What all file formats are supported for VTS as input, in order to convert that file format in VTS tiles?

https://vts-geospatial.org/reference/server/cmdline-tools/encoders.html?highlight=formats

I believe we support 3d tiles too.

@shrikant-panchal
Copy link
Author

Okay.
Does all the GIS files format support 3d data? Are there any specific file formats that support such 3d GIS data? If yes, can you please list down a few 3d geo data formats?

@malytomas
Copy link
Contributor

Yes all the formats mentioned in that website have support for 3D data.

@ghost
Copy link

ghost commented Feb 21, 2021

Hi Tomáš,

I had a problem maybe different from the discussion but perfectly matching the title of this issue. I would like to use the file:// schema instead of http(s):// because I need a custom mapConfig calling already formatted data (from the Melown server and others).

You said:

You have to specify a protocol. The protocol for accessing local hard drives is file, for example:
file://D:/Projects/Apogee_VTS/mapConfig.json
See https://ec.haxx.se/cmdline/cmdline-urls for more examples.

However, I am unsure if the support for local files is actually compiled in.

I realised that only the mapConfig file is supported, locally saved files linked in the mapConfig are not supported. To explain the issue, let's compare the http(s):// to the file:// schema.

Let's consider the following setup:

map->setMapconfigPath(
            "https://cdn.melown.com/mario/store/melown2015/"
            "map-config/melown/Melown-Earth-Intergeo-2017/mapConfig.json",
            "");

It's working. Notice that the mapConfig contains relative as well as absolute links. The relative links are absolutized. I dived into the code and realized that the absolutized URL is made by Uri::str(). This is an example of input parameters used by Uri::str():

  • schema: https
  • host: cdn.melown.com
  • path: /mario/proxy/melown2015/geodata/melown/osm-tilehosting-v1/freelayer.json

The complete URL is: https://cdn.melown.com/mario/prox...

Now let's consider the following setup:

map->setMapconfigPath(
            "file:///home/user/path/to/local/map/config/mapConfig.json",
            "");

The URI components - Uri::str() input parameters - are:

  • schema: file
  • host: empty
  • path: /home/user/path/to/local/map/config/osm-maptiler.json

The complete URL is file:/home/user/path/to/lo... instead of file:///home/user/path/to/lo.... Therefore, I made a patch to fix the issue. However, I have only tested on a GNU/Linux-based OS.

What do you think?

Best Regards,
Clement

@malytomas
Copy link
Contributor

Hi Clement,
please open pull request in the libutility repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants