Nokia Here tiles provider ?

Hello everyone,

It looks like Nokia Here is able to provide their tiles via a RESTFull service :
https://developer.here.com/rest-apis/documentation/enterprise-map-tile/topics/overview.html

However, I'm not sure what imagery provider could be use in Cesium to use this service.
Here's what a typical tile request would looks like :
https://developer.here.com/rest-apis/documentation/enterprise-map-tile/topics/example-satellite-map.html

I suppose that if we could define a custom url format, it would be very easy to do this.
Something like that :

var myCustomFormat = "{url}/{mapId}/{Z}/{X}/{Y}/{size}/{format}?{cred}";
var imageProvider = new CustomImageryProvider(mycustomFormat,
{url : 't.here.nokia.com',
mapId : '1.1',
size : '256',
format : 'png',
cred : 'app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg'})

Is there a way to do such a thing ?
What should I use to deal with Nokia Here tile API ?

Thanks,

Olivier

I wrote a very hacky Cesium imagery provider for Here maps awhile back. It’s here:
https://github.com/NICTA/nationalmap/blob/155eab7db4431258a90f03825d050193d07697a0/src/Map/HereMapsImageryProvider.js

My app is built with browserify, so if yours isn’t you’ll need to make some changes (remove all the requires at the top, put “Cesium.” in front of every Cesium type, for example). And of course you’ll need to replace the hard-coded (and now probably expired) app_id and app_code.

It would be really good to have a CustomImageryProvider as you’ve described, and not that hard to do. We’d welcome a pull request along that line.

Kevin

Hi Kevin,

Well, I'd be happy to contribute :slight_smile:

If I'm not wrong, such a module should be put in the Scene layer and use mostly the Core layer, right ?

I see this contributor guide : https://github.com/AnalyticalGraphicsInc/cesium/wiki/Contributor's-Guide

Apart that guide, is there any coding convention I should be aware of ?

Hi,

Great!

Yes, it should go in Scene (use any of the other ImageryProviders as a model) and will primarily use Core types (though Renderer types are allowed as well, if necessary).

In addition to the Contributor’s Guide, there’s a coding conventions page and a documentation best practices page in the wiki (though some of it is out of date):

https://github.com/AnalyticalGraphicsInc/cesium/wiki/JavaScript-Coding-Conventions

https://github.com/AnalyticalGraphicsInc/cesium/wiki/Documentation%20Best%20Practices

And also the CONTRIBUTING.md file in the repo:

https://github.com/AnalyticalGraphicsInc/cesium/blob/master/CONTRIBUTING.md

Thanks,

Kevin

Olivier, this sounds great, thanks for the contribution. One question - does their terms of service allow other visualization applications like Cesium? Do you have a link to their TOS?

Thanks,

Patrick

I don’t have the TOS handy, but Here licenses their imagery for use by others, much like Bing. You just need to get an API key.

Hi Patrick,

Here are the terms and conditions : https://developer.here.com/terms-and-conditions

They don't seem to forbid other visualization applications to use their services, but they forbid other map to do so. Section 7.3 and this FAQ (point 5) seems to indicate that (https://developer.here.com/faqs#l&t)

Also it looks like there is a limitation in using multiple similar service provider in parallel :

"You are not permitted to use both the content layered by you and similar HERE Content concurrently for the same particular geographical area."

Not sure that I understand well but that might be an issue if you want to let the user choose between, let's say Bing Maps and Here in Cesium

Looking over their full TOS, I see nothing that would prevent us from integrating the ability to use HERE functionality into Cesium. Looks like other maps, like Leaflet and OpenLayers already support it.

Of course any end-users building applications with Cesium should always strive to make sure their app, as delivered, is in full compliance with any TOS for data they are using. I’m sure it’s possible to build a Cesium app that violates the HERE TOS, but Cesium providing an imagery layer itself seems to be allowed.

Olivier - thanks for the link.

I agree with Matt and Kevin that I believe it is fine to include this in Cesium. HERE has restrictions that would prevent some types of applications and combining with some datasets (for example Section 4.2, 7, and 8 in their TOS), but this is something to consider on an application by application basis.

Patrick

Hi Olivier,

Do you implement the provider? I don’t see any result at the end of the post.

在 2015年5月8日星期五 UTC+8下午6:13:54,theog…@gmail.com写道:

I’ve done a bit more work on Kevin’s implementation (mostly exposing settings and credit support), and I’ve got a PR up for it now. https://github.com/AnalyticalGraphicsInc/cesium/pull/6241