Local version of Google Maps API - c++

Do you guys know if there is a version of the Google Maps API for C++ which works using local maps rather than having to connect to a Google server?
The application is the plotting of GPS positions in an area with no internet coverage.
Thanks in advance.

As an alternative for Google Maps, you might want to have a look at OpenStreetMap.
(See also the usage and software sections on Wikipedia)

You can download and store map tiles (png files) using the google maps static API, and then reread those once stored images without reconnecting to the server. You'll have to write the whole download and management stuff yourself (i.e. using boost::asio for download etc. - i don't know of such a library), and you probably need to acquire a Google premier license, as google strongly restricts the anonymous usage of the static api. But technically thats possible.

Related

Google Cloud Storage serve images in different sizes?

I have stored thousands of images in GCP Cloud Storage in very high resolution. I want to serve these images in an iOS/Android App and on a website. I don't want to serve all the time the high-resolution version and wondered whether I have to create duplicate images in different resolutions - which seems very inefficient. The perfect solution would be that I can append a parameter like ?size=100 to the image URL. Is something like that natively possible with GCP Cloud Storage?
I don't find anything in the documentation from cloud storage: https://cloud.google.com/storage/docs.
Several other resources link to deprecated solutions: https://medium.com/google-cloud/uploading-resizing-and-serving-images-with-google-cloud-platform-ca9631a2c556
What is the best solution to implement such functionality?
Cloud Storage currently does not have Imaging services yet, though a Feature Request already exists. I highly suggest that you "+1" and "star" this issue to increase its chance to be prioritized in development.
You are right that this use case is common. Image API is a Legacy App Engine API. It's no longer a recommended solution because Legacy App Engine APIs are only available in older runtimes that have limited support. GCP would advise developers to use Client Libraries instead but since your requested feature is not yet available, then you'll have to use third-party imaging libraries.
In this case, developers are commonly using Cloud Functions with Cloud Storage Trigger, thus resizing and creating duplicate images in different resolutions. While you may find the solution inefficient, unfortunately there's not much choice but to process those images until the feature request becomes available in public.
One good thing though is that Cloud Functions supports multiple runtimes so you can write code in any supported languages and pick libraries you're comfortable using. If you're using Node runtime, feel free to check this sample that automatically creates thumbnail when an image is uploaded to Cloud Storage.

Blockchain based database for storing simple records

I want to implement a small blockchain based solution that could serve as Patient Management System. The system should be able to track patients and their medical records/reports. Of course, this system would not be deployed somewhere, its just a university project.
So far, I've started tried to do it with Ethereum. I didn't find a solution using it. Then I tried to use OrbitDB cause I saw it on Ethereum's site in Developer Resources page. But after I had done some POC using OrbitDb, I came to know that it doesn’t claim to be a “blockchain database”, but rather a choice for decentralized apps. Then someone suggested me to use BigchainDb, but after reading about it and trying to make a small project using it, I came to know that it wouldn't fit my needs. I have also read about Fluree but didn't tried it yet as I have already wasted 3 months experimenting with others and didn't want to waste more.
So, could you recommend me a Blockchain-based Database that could serve my needs. Also, some sample code, preferably in Node.js would be a great help for me.
Please excuse me if I have written something wrong or if my understanding is wrong. I am new to Blockchain.
Thanks
You can try IPFS developed at protocol labs
The InterPlanetary File System (IPFS) is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
here is the guide to understand more into ipfs
here is a simple dapp using ipfs with ethereum
You can use Emercoin public blockchain, subsystem NVS (Name-Value Storage). It allows upload your data with name_new command, update value with name_update, and see history of changes with name_history command.

upload & download large file over internet

I have a requirement where I need to upload a large file (can be 10 GB) to a shared space(windows) ( say APP1) . and we have a separate application( say APP2) different network now I need to download the same file from in second application via internet.
My approach is I need to create webservice to upload the document to shared space. and then expose a webservice for outer world to download the document.
My point is how I can manage the huge files upload/download through webservice ?
Please suggest if some one have any idea. I have flexibikity to use any third party APIs.but the application can talk only through webservices.
From your question it's not really clear which development platform you mean, .NET, Java, etc.
Also it's important to know how interoperable your services should be, security requirements, etc. Anyway will try to come up with a couple of solutions which you might research in more detail if you found them useful.
.NET
It's relatively easy to built such a web service with WCF. It supports streaming which could be interoperable, reliable and secure to some extend. You can read more on this here. This approach implies you have a huge disk to store files and you have a good recovery plan for that in case it goes down or just dies.
.NET, Java, etc. - cloud based
There are a lot of vendors who provide cloud storage and APIs to work with it. It's an ideal solution for a quick start. They take care of data availability, redundancy, etc. All you have to do is to use their API to upload and download files and to pay them for this :) In many cases it's worth it. Personally I used to work with Amazon S3. Their API is simple to use and there's plenty of docs for that.
EDIT:
Amazon S3 provides a simple web-services interface that can be used to
store and retrieve any amount of data, at any time, from anywhere on
the web.
I think you should take a look at Amazon S3 overview here.
This also provides API for a number of different platforms - Java, .NET, Node.js, etc. You an find the full list here.
Hope it helps!

How to display dynamic map using GDK?

Is there any SDK methods to display dynamic map using glass GDK?
What is used for Glass navigation app?
Google Maps is used for that application if I'm not mistaken. However, there is no way to replicate it with a dynamic map because Google Play Services isn't supported in the GDK so you won't be able to get location information or get maps from the API.
I don't believe that the GDK exposes a maps api the same way that the android api has the option to be compiled against the maps-inclusive version.
Having said that, it is possible to get the location, the same as you would on any android device (and if you are paired with an android device, that will likely be the provider of your last location fix). What you do with that is up to you, perhaps you thoroughly read the TOS of a mapping service, and make an api call to get a map image, and then display that (assuming that it's within the TOS of the mapping service). Perhaps you do something else with that data.
There is, unfortunately, no included maps API, to the best of my knowledge.

Google Earth within custom C++ Linux application

I am exploring using Google Earth within a C++ application I am writing for Linux. This application would be operating at a very high resolution (approx. 6000 x 3000 pixels). I am confident about the graphics performance of Google Earth in the high resolution and the Linux environment. My question is: What is the best way to integrate Google Earth into my Linux C++ application? I have read about the Google Earth COM API (and that it's outdated now). What would be the preferred method to integrate Google Earth into my application?
Specifics for integration: I am hoping to have the Google Earth in the "background" covering the entire 6000 x 3000 resolution with a small "control box" overlay that will interact with the earth.
Thanks for your responses!
kf
As far as I can tell there are only two APIs to access Google Earth content - the Javascript API, and the Windows based C# API (which seem to just be wrapper classes that call the Javascript API.) I don't know but I believe the Google Maps API to also be in Javascript.
Given that you are in Linux and using C++ my suggestion would be to embed a browser in your app and create C++ wrappers to make the Javascript calls that you need (like the Windows C# API.)
If you start an open source project other people may be willing to help you create C++ wrappers.
As far as I know you can't use a Google Earth Api in Linux. The only API Google Earth offers is the Javascript API (only works in MacOs or Windows, but no Linux) and COM API (seems death now)
It doesn't work even in ChromeOS