2010-08-06 16 views
5

Attualmente sto lavorando allo sviluppo di un'implementazione dell'API di Google Maps che sovrappone i dati topografici di USGS Terra Server. Penso di averlo praticamente sotto mano tranne che non riesco a capire come determinare il nome del quad, nome, scala & per il riquadro corrente che viene servito da Terra Server. Se si visita questo sito e di zoom della mappa che si sta visualizzando le informazioni quindi deve essere possibile:Come trovare quad/nome/scala da USGS Terra Server

http://www.trails.com/topomap.aspx?trailid=fgu003-087

Ecco i link ad alcuni articoli che spiega di più come le immagini vengono nominati dal Terra Server:

About MSR Maps

STANDARDIZED DATA SET NAMES FOR DRG PRODUCTS

Spero che qualche esperto geoloc là fuori ha già fatto questo e mi può puntare nella giusta di rezione. Sarei grato se tu potessi darmi qualche indizio su come potrei determinare queste informazioni dalla visualizzazione corrente della mappa quando sovrapponi i dati topografici USGS su Google Maps per produrre un'esperienza utente molto simile a quella della mappa di esempio.

Grazie in anticipo per il vostro aiuto!

risposta

0

Nell'esempio, il server trails.com consegna le immagini personalizzate delle tessere tramite il proprio CDN e visualizza quelle tessere su Google Maps utilizzando un WebHandler .NET.

Poiché i dati provengono da MSRMaps.com e non da [Trails.com] [3], si punterà invece su MSRMaps.com WebHandler.

Di seguito è riportato il percorso dei sentieri. Sostituire la funzione getTileUrl con qualcosa che fa una chiamata al server msrmaps.com invece, come ad esempio MSR Tile Link

var layer = new GTileLayer(new GCopyrightCollection(''), 1, 21); 
layer.getTileUrl = function(a, b) 
{ 
    var ll = G_NORMAL_MAP.getProjection().fromPixelToLatLng(new GPoint(a.x * 256, (a.y + 1) * 256), b); 
    var ur = G_NORMAL_MAP.getProjection().fromPixelToLatLng(new GPoint((a.x + 1) * 256, a.y * 256), b); 
    return "http://cdn-www.trails.com/services/TopoGetGoogleMapTile.ashx?z=" + b + "&style=drgsr&ll=" + ll.y + "," + ll.x + "&ur=" + ur.y + "," + ur.x; 
} 
var map = new GMap2(document.getElementById("map")); 
map.setCenter(new GLatLng(37.4419, -122.1419), 13); 
map.setUIToDefault(); 
var mapType = new GMapType([layer], G_NORMAL_MAP.getProjection(), 'Trails', { errorMessage: google.mapError, textColor: "white", linkColor: "white" }); 
map.addMapType(mapType); 
map.setMapType(mapType); 
+0

Non ho alcun problema nel recuperare i riquadri effettivi che vengono eseguiti esattamente come li descrivi. Se rileggi la mia domanda il problema con cui ho bisogno di aiuto è come capire che quad, nome e scala sono per un particolare punto di latitudine/longitudine. Qualche idea su come potresti ottenerla dall'API MSR? –

1

È possibile utilizzare l'OGC stile Web Map Server di Microsoft ospita anche. Questi hanno una struttura lat/lon/scale relativamente semplice per il recupero dei dati, piuttosto che lasciarti indovinare i numeri. Ecco un URL per Aerial. La variabile Scale varia da 11-21. La variabile t ti consente di scegliere tra Aerial e Topos. Imposta t = 2 per Topos - qui è Topo URL.

Per ottenere il nome quad e il riferimento della mappa ecc. Sarà necessario indicizzare i topos e creare un database. Se hai i Topos su un CD e sono in formato Tiff, puoi utilizzare GDALTindex per creare questo indice. Oltre a questo le vostre domande si riducono al tipo Point-in-Polygon, che è possibile eseguire utilizzando Net Topology Suite.

Poiché non esiste una semplice mappatura intuitiva per tutti i diversi set di mappe e le scale, un indice precompilato sarà il modo migliore per andare.

Gdaltindex può indicizzare i file tif e produrre un indice nel formato Shapefile. Questo può essere mappato in MySQL Geometries utilizzando il supporto Ogr MySQL.

+0

come ho detto nella mia risposta a @jojaba, ottenere le tessere è banale e non è quello che mi serve aiuto.Voglio sapere come calcolare il quad, il nome e la scala per ogni specifico punto di latitudine e longitudine. La ragione per cui voglio farlo è che gli utenti possono sapere quale topografia USGS fare riferimento per guardare gli stessi dati. Grazie per l'aiuto! –

+0

Quindi è necessario un motivo per cui i Topos USGS sono nominati come sono. Credo che dovrai convertire latlon in UTM e andare da lì. – whatnick

+0

Ho esteso la mia risposta con alcune indicazioni sull'indicizzazione delle mappe. Spero che questo ti aiuti. – whatnick