2016-05-20 1 views
0

Je veux ajouter Ici les cartes des tuiles de carte à ma carte par BruTile/SharpMap.Comment puis-je ajouter ici map comme couche de tuiles par BruTile/SharpMap?

Le schéma d'URL est le suivant par leur documentation:

https://1.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/13/4400/2686/256/png8

app_id = {YOUR_APP_ID}

& App_Code = {YOUR_APP_CODE}

où 13 est zoomlevel, 4400 est la colonne, 2686 est la rangée.

Voici mon code, mais il expire et la carte est vide. L'identifiant de l'application et le code de l'application sont corrects, c'est 100% sûr. Quel peut être le problème?

var networkRes = Networking.HasInternetConnection(); 

if (networkRes.Result == false) 
    throw new Exception(networkRes.InfoMessage); 

var uriString = "https://1.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8"; 

var customParams = new Dictionary<string, string>(); 
customParams.Add("app_id", "someappid"); 
customParams.Add("app_code", "someappcode"); 

var req = new TmsRequest(new Uri(uriString),"png" , customParams); 

var provider = new WebTileProvider(req); 

var tileSource = new TileSource(provider, new SphericalMercatorInvertedWorldSchema()); 

TileLayer tileLayer; 

if (CacheWebMaps) 
{ 
    var path = Path.Combine(MapCacheRoot, HEREBASELAYERNAME); 
    tileLayer = new TileLayer(tileSource, HEREBASELAYERNAME, new Color(), true, path); 
} 
else 
{ 
    tileLayer = new TileLayer(tileSource, HEREBASELAYERNAME); 
} 

tileLayer.SRID = 3857; 

MapBox.Map.Layers.Add(tileLayer); 

Merci d'avance!

+0

Avez-vous basé cela dans leur documentation? Si oui, lequel? – pauldendulk

+1

J'ai utilisé ce doc: https://developer.here.com/rest-apis/documentation/enterprise-map-tile/topics/example-normal-day-view.html Et le code par moi, j'ai mis en œuvre avec succès plusieurs tuiles sources (osm ceux, MapQuest, coutume etc.) mais je ne peux pas faire fonctionner les cartes Here – Tom

+0

[ici] (https://1.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/ normal.day/13/4400/2686/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g) est l'URL que vous avez affichée en haut avec l'identifiant de l'application et le code d'application du site Web de Here maps. Est-ce qu'il affiche également la vignette dans le navigateur avec l'identifiant et le code de votre application? – pauldendulk

Répondre

1

Vous pouvez créer une carte ici tuiles source comme ceci:

var hereMapsTileSource = new HttpTileSource(new GlobalSphericalMercator(0, 8), "https://{s}.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g", new[] {"1", "2", "3", "4"}, name: "Here Maps Source"); 

I a ajouté un exemple pour Samples \ BruTile.Demo (bouton radio en bas). Here est le code que j'ai ajouté.

Je ne suis pas sûr si la version de BruTile que SharpMap utilise soutient HttpTileSource. Sinon, vous pouvez copier HttpTileSource dans votre propre projet.

+0

Merci Paul, très gentil de votre part! Je vais le vérifier lundi! – Tom