2016-07-11 30 views
13

A partire da oggi 2016-07-11, MapQuest ha interrotto l'accesso diretto alle proprie tessere. Sembrano supportare solo gli SDK di Leaflet, iOS e Android. Qualche idea su come far riavere gli Openlayer su MapQuest, o dovremmo pensare a un'alternativa diversa? Grazie.accesso diretto alla tile mapquest fuori produzione

+1

sono sulla stesso modo ... – Dani

+2

Qualcuno ha ricevuto alcuna notifica prima di arrestare il servizio ??? Sono fuori parole su come descrivere questo atto di professionalità –

+1

@AnestisKivranoglou Sono come te ... improvvisamente, la mappa nella mia app si è fermata per mostrare la mappa ai clienti ... Era davvero imbarazzante. – Dani

risposta

4

Per immagini di mappe di base con OpenLayers, siamo fondamentalmente in basso a Bing Maps, Mapbox e DigitalGlobe. Tutti e tre i servizi richiedono una chiave API e tutti e tre offrono un livello gratuito.

Attualmente sto utilizzando DigitalGlobe e sono stato molto contento della risoluzione fino ad ora. Per usarlo in OpenLayers, prima registrati per una chiave API sul loro sito.

http://mapsapidocs.digitalglobe.com/

poi basta usare la seguente fonte di piastrelle (non dimenticatevi di YOUR_ACCESS_TOKEN):

new ol.layer.Tile({ 
    title: 'DigitalGlobe Maps API: Recent Imagery with Streets', 
    attribution: "© DigitalGlobe, Inc", 
    source: new ol.source.XYZ({ 
      url: 'http://api.tiles.mapbox.com/v4/digitalglobe.nal0mpda/{z}/{x}/{y}.png?access_token=YOUR_ACCESS_TOKEN' 
    }) 
}) 

Questo ti dà loro immagini satellitari globale con risoluzioni che vanno da pochi metri fino a 10 centimetri! Offrono più livelli di base di quello che ho fornito in questo esempio, ma questo dovrebbe iniziare rapidamente.

Per ulteriori OpenLayers esempi con DigitalGlobe, vedi questo link:

http://mapsapidocs.digitalglobe.com/docs/maps-api-openlayers

0

Al momento, sono passato temporaneamente alla mappa di Bings come soluzione alternativa. Sì, richiede anche una chiave API, ma almeno funziona con OL3.

0

Poiché questa domanda ha guadagnato popolarità per qualsiasi utente interessato in panico, questa è una soluzione rapida.

Invece di creare i livelli della mappa attraverso Volantino direttamente Ora è necessario Scarica E Includere(non dimenticare la vostra chiave) il MapQuest Volantino Plugin.

<script src="https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=KEY"></script> 

Poi si Creare la mappa di strato con il plugin MapQuest

window.map = L.map('map', { 
     center: [50.066, 8.73], 
     zoom: 13 
     //Or alternatively init layer here layers:MQ.mapLayer() 
    }); 

    var mapLayer = MQ.mapLayer().addTo(map); 

MapQuest Plugin Documentation

+0

Eventuali indizi sul modo migliore di implementare l'API di mapquest aggiornata con la [mappa degli utenti di LeafletJS] (http://users.leafletjs.com/)? Ho provato ad aggiungere lo script nella tua risposta (con la mia chiave), ma non ho avuto molta fortuna. –

+0

Abbiamo appena seguito la documentazione di base della mappa. https://developer.mapquest.com/documentation/leaflet-plugins/maps –

+0

Ho finito per utilizzare una versione modificata di [un'altra risposta] (http://stackoverflow.com/questions/38315300/mapquest-direct-tile- accesso-interrotto/38324489? noredirect = 1 # comment65038325_38375848). –

4

Utilizzare la fonte OSM:

var osmLayer = new ol.layer.Tile({ 
    source: new ol.source.OSM() 
}); 

invece di questo:

new ol.layer.Tile({ 
    source: new ol.source.MapQuest({ layer: 'osm' }) 
}); 

Funziona bene con OL3.

2

Ho chiesto loro on their forum. La risposta è no, non possiamo più usare i riquadri di MapQuest con altri SDK di quelli forniti da MapQuest.

Inoltre, anche con gli SDK di MapQuest, la memorizzazione nella cache/memorizzazione dei dati è vietata, anche con un account a pagamento.

L'unica altra opzione (che io sappia) se avete bisogno di una mappa gratuita, illimitata, in tutto il mondo, è Open Street Map. Nessuna immagine satellitare però, MapQuest era, purtroppo, l'unica (che io sappia).

Se sei pronto a pagare, dovresti essere in grado di utilizzare MapBox.

EDIT: un altro nuovo e fresco Ho appena ricevuto una e-mail dal team di MapQuest:

actually we don't do the maps anymore, we use Mapbox. 
MapQuest is focusing on some mobile and IoT applications, routing and direction engines rather than maps 
5

E 'semplice come cambiare la vostra tileUrl.

Sostituire questo:

var tileUrl = 'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png?x'; 

con questo:

var tileUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; 

Quindi utilizzare come prima:

L.tileLayer(tileUrl, { }).addTo(map); 
+0

Non ho potuto ottenere 'tileUrl = 'http: // {s} .tile.openstreetmap.org/{z}/{x}/{y} .png'' per funzionare. Sono riuscito a farlo funzionare se ho usato 'tileUrl = 'http://tile.openstreetmap.org/ {z}/{x}/{y} .png'' –

+0

usando' https: //tile.openstreetmap .org/1/1/1.png' restituisce [certificato di sicurezza] (http://imgur.com/a/JDjyn) errori. –

-3

sono passato a ESRI basemap, funziona benissimo.

Accertarsi di aver opuscolo riferimento:

enter image description here

È anche possibile utilizzare world_Street_Map e altre mappe di base ESRI.

+1

Non utilizzare immagini per esempi di codice. Questo non è il modo in cui funziona lo Stack Exchange. –