Pass google earth a secure KML file - kml

Is it possible to pass a secure KML file to Google Earth?
This KML file will require either a token or authentication of some sort.
(I'll adapt the solution based on the possible methods of securing the KML file that are acceptable.)
We need to display some secure information on a google map, and yes we are an enterprise customer. (If that helps.)
That alternative is to plot the points using the google API, but that require's slightly more effort.

If your intention is just to protect the Kml from unauthorized access, you can use the following approach. I tried this approach in one of the scenarios and it worked for me.
http://keelypavan.blogspot.com/2011/07/protect-kml-kmz-files-from-unauthorized.html

Just some information..
If you pay Google you can have your website run via HTTPS.
If you want something that's a bit more powerful to play with, you might want to try something like GeoServer with an OpenLayers frontend. It can serve your data dynamically from a postgres database as kml (or kmz, gif, jpeg, png, svg, and even pdf) out of the box. You don't have to code a single line to get that done, and it's free.
And indeed, you could draw stuff yourself by using the Google Maps API, but if your page is HTTPS, your users will get a warning about Google's javascript files.
Furthermore, if your browser sucks (at rendering maps), Google does the actual rendering for you server-side, and for that, the actual data will be sent to Google, and a rendered overlay image will be sent back. Maybe you can disable that behaviour, but at least you should be aware of that if you're concerned about security.

As KML files are loaded by Google servers, you can restrict access to KML file only for Google servers.

Related

Facebook playable ads with phaser

I am trying to make Facebook playable ad using Phaser3.60 but the problem is that Facebook block XMLHttpRequest which is used internally in phaser load to load images and sounds.
do do any one know a way to images to phaser without using its loader and without using XMLHttpResquest.
I tried to use imageLoadType: "HTMLImageElement" but it also gives me the same error, I dont know if facebook detect the XMLHttpRequest in the Phaser.min or in the game code.
I'm not sure if this is the solution for your specific problem, but after some tinkering, I learn abit about facebooks playable ads.
Disclaimer: First of all, I was not able the get the zip version to run.(not on the preview Tool and not even on a real campain)
With a single file index.html, with all the data inlined (just under the 2MB limit), I can upload the application and get the same Warning,
BUT after I click the Application (what executes FbPlayableAd.onCTAClick(), as mentioned in the yellow highlighted part), then the Done Button is activated, and I can deploy the ad.
I hope this helps.

Is it possible to essentially view a webpage with puppeteer?

I set up a very basic headless browser implementation with Puppeteer on a server, and the way I have it configured currently, I have the system scrape arbitrary websites based on user input. I then have the server send the html code of the page to a client using response.write. (I'm not actually deploying this as a solution to anything - it's really just a proof of concept.)
The results are mixed based on what website the system attempts to scrape from - but one thing they all have in common is that things like links and external stylesheets either work sporadically or not at all. My question is, is there a way to view the entire website, with clickable links and all, using Puppeteer? Or is this ridiculously impractical and totally hopeless?
If there is a way to approach this, some example code would be great.
Thanks!

Why does Google Earth show incorrect images when using google hosted images

Earth often seems to load random images instead of the ones specified in kml. For example load the kml sample from the kml documentation for IconStyle (https://developers.google.com/kml/documentation/kmlreference#iconstyle) It specifies the image at http://maps.google.com/mapfiles/kml/pal3/icon21.png which when viewed in a browser is a building on a green field, but in earth shows up as mountains.
Seems almost as though earth is hard coded to use an internal palette whenever a google hosted image is found and the palettes have gotten out of sync.
(Earth version is 6.2.1.6014 (beta))
I think this is a unfortunate legacy issue.
Google Maps at one point changed around their icons - reusing the same filenames!
Google Earth on the other hand knows that many users where using the specific icons in their Places and KML files. So rather than everybodies icons suddenly changing randomly, they choose to still show the old icons.
Would be funny if it wasn't true!
If you really want to use Google hosted icons, you could use an alternative URL - one that hopefully Google Earth wont attempt to 'fix', eg http://googleapis.com/mapfiles/kml/pal3/icon21.png
But really would not recommend relying on Google Hosted icons. They can change at any point.
If you really don't want to have any problem download the icons you want to use and create a KMZ layer instead of KML. Like that you will be able to have a folder with your images inside and you won't be depending on the hosted ones.

Unable to link directly to WMV video file

I have a wmv video hosted in SharePoint. I've created a Content Editor web part with a bit of custom content and I've placed a simple link to the video Click to view.
There is really nothing special going on here. Some users can click on the link and the video opens in their default video player. Other users see a range of different errors/prompts. Some users are prompted for their network credentials and others receive a generic "Internet Explorer cannot display the webpage.
The same problems occur if I create a generic HTML web page (outside of SharePoint) and have users try to launch the video.
I am trying to avoid embedding the video in the HTML and just have users link directly to the video itself.
Has anyone encountered this issue and do you have any suggestions for making this work?
This appears to be a combination of browser issues and file security.
People are being asked for their network credentials because the file itself is not "public"; it requires authentication to be read, or appears to do so from your description. Different browsers will display different messages when attempting to authenticate for the file.
Additionally, the default player for a browser may not be set or the browser may not allow passoff to third party programs, both of which will generate different messages for different browsers. This will always be an issue for hot-linked videos, and there's nothing you can do about it except use some guaranteed playback platform that all consuming browsers must have installed, such as Flash or Silverlight. That comes with issues all on its own, but such is the nature of the online world.

Using Google Docs from web app

We have a requirement for people to be able to look at documents people have uploaded to us (mainly word, possibly some rtf) via our web app. We want the user to be able to open the docs inside the browser, but keep the original formatting and not have the need for another application (like word, acrobat etc).
We thought about using google docs to do this, there appears to be some batch uploading options to get stuff in there but does anyone know if we can use the API's to keep the user on our site without them having to login to google docs themselves, and keep them still on our website with re-directing to google docs to view them.
Cheers
There's an option to make documents public (Somewhere in Share->Advanced Options).
Using api you can get list of documents in your google docs account, you can even search em. In your app you could make a link to the document in google docs which opens in a new window. That way your user will never navigate away from your page. An alternative would be to use an IFrame, but it's considered bad practice.
A completely different approach could be to automatically generate and host a pdf each time someone uploads a file. There are scripts/programs which can do that, just call them after you receive a file.

Resources