Как найти квад / имя / масштаб с сервера USGS Terra - PullRequest
5 голосов
/ 06 августа 2010

В настоящее время я работаю над разработкой реализации API Карт Google, которая накладывает топографические данные с сервера Terra Server USGS. Я думаю, что у меня это под рукой, за исключением того, что я не могу понять, как определить имя квадрата, имя и масштаб для текущей плитки, обслуживаемой Terra Server. Если вы зайдете на этот сайт и увеличите карту, информация будет отображаться, поэтому это должно быть возможно:

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

Вот ссылки на некоторые статьи, в которых объясняется, как Terra Server называет изображения:

О MSR Maps

НАЗВАНИЯ СТАНДАРТИЗИРОВАННЫХ ДАННЫХ ДЛЯ ПРОДУКТОВ DRG

Я надеюсь, что какой-то эксперт по геолокации там уже сделал это и может указать мне правильное направление. Я был бы признателен, если бы вы могли дать мне какие-либо подсказки о том, как я могу определить эту информацию из текущего вида карты при наложении данных топографических данных USGS на Карты Google, чтобы создать пользовательский интерфейс, очень похожий на пример карты.

Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 07 сентября 2010

Вы можете использовать OGC Style Web Map Server, который также размещает Microsoft.Они имеют относительно простую структуру широты / долготы / масштаба для извлечения данных, вместо того, чтобы угадывать цифры.Вот URL для Антенна .Переменная Scale s варьируется от 11 до 21.Переменная t позволяет вам выбирать между Aerial и Topos.Установите t = 2 для Topos - здесь есть Topo URL .

Чтобы получить имя четырехугольника, ссылку на карту и т. Д. Вам нужно будет проиндексировать топос и построить базу данных.Если у вас есть Topos на CD, и они имеют формат Tiff, вы можете использовать GDALTindex для создания этого индекса.Помимо этого ваши запросы сводятся к типу Point-in-Polygon, который вы можете выполнить с помощью Net Topology Suite .

, поскольку не существует простого интуитивного отображения для всех различных наборов карт и масштабовлучше всего использовать предварительно вычисленный индекс.

Gdaltindex может индексировать файлы tif и создавать индекс в формате Shapefile.Это может быть отображено в MySQL Geometries с использованием Ogr MySQL .

0 голосов
/ 31 августа 2010

В этом примере сервер trails.com доставляет пользовательские изображения плиток через собственную CDN и отображает эти плитки поверх Google Maps с помощью .NET WebHandler.

Поскольку вам нужны данные, поступающие с MSRMaps.com , а не с [Trails.com] [3], вместо этого вы должны указать MSRMaps.com WebHandler.

Ниже рассказывается, как это делают следы. Замените функцию getTileUrl чем-то, что вместо этого вызывает сервер msrmaps.com, например 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...