Подтвердить что ты не робот

Как работает Google Maps?

Как называется технология Google Maps, которая позволяет серверу отправлять только часть карты, запрошенной у пользователя, для повышения производительности, и есть ли какая-нибудь библиотека для этого?

4b9b3361

Ответ 1

В целом технология может быть описана как сервер карты. Сервер карты генерирует карту для запрашиваемого местоположения из большого набора предварительно сформированных изображений плитки карты, охватывающих всю планету. Сервер карты может накладывать данные из других баз данных поверх этого. Комбинация клиента просмотра карт и географической базы данных традиционно называется Географическая информационная система (ГИС).

Любой пользователь может писать веб-приложения, которые вставляют карты Google, используя API Карт Google. Также есть прекрасный сервер карт с открытыми исходными кодами (называемый MapServer), если вы хотите развернуть свой собственный сервер карт.

Ответ 2

Как указано, Google сгенерировал все эти 256x256 плитки и просто обслуживает соответствующие фрагменты. Из ваших комментариев кажется, что вы ищете что-то, чтобы сгенерировать эти плитки для вас. Несколько человек написали код, чтобы нарезать изображение на плитки - например http://crazedmonkey.com/blog/googletilecutter или http://www.klokan.cz/projects/gdal2tiles/ оба, похоже, способны делать то, что вы ищете.

Ответ 3

Если вы посмотрите на ссылку для страницы с картами google, она будет выглядеть так:

http://maps.google.com/maps?f=q&hl=en&sll=37.0625,-95.677068&sspn=53.345014,88.769531&ie=UTF8&ll=41.226264,-81.454246&spn=0.012507,0.021672&z=16

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

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

Ответ 4

Вы также можете использовать API Карт Google своими собственными изображениями. Конечно, им не обязательно быть карта; они могут быть любыми изображениями. Это позволит пользователю перетаскивать и масштабировать, например, на картах Google.

Ответ 6

Общее имя для основной дисциплины ГИС.

Вы запрашиваете больше информации из общего любопытства или имеете конкретную техническую потребность в проекте?

Ответ 7

Это просто огромное изображение, состоящее из квадратных кусков, загружаемых без изменений (с использованием AJAX и т.д.). Я полагаю, что это сделали некоторые внутренние библиотеки Google (может быть также GWT).

Подробнее об этой теме: http://blog.grimpoteuthis.org/2005/02/mapping-google.html

Ответ 8

Карты Google и Google Планета Земля используют что-то известное как KML или "Keypole Markup Language", который является особым вариантом XML. Он назван в честь первых спутников гео-слежения. Вы можете хранить информацию о местоположении в Google Планета Земля (и это все равно будет происходить до Google Maps), используя эту разметку для геокодирования своих конкретных координат широты и долготы. Вы можете даже включить высоту.

Ответ 9

Это то, что вы можете попробовать самостоятельно с помощью OpenSource, http://www.geoserver.org http://www.openlayers.org а также последний, но тем не менее важный http://geowebcache.org/

Вы должны иметь возможность настроить минимальную среду, которая делает что-то похожее на maps.google через пару часов.

Ответ 10

Чтобы не ответить на вопрос, просто расширьте информацию. У Microsoft есть что-то, называемое "Deep zoom" для Silverlight, что облегчает выполнение такого эффекта.

Это бесплатный композитор, где вы можете разбивать ваши фотографии (или одну большую картинку) и выполнять некоторые другие настройки, а затем разбивать их на множество небольших изображений в подпапках, по одной папке для каждого уровня масштабирования. А затем создайте страницу, которая может их потреблять плавно.

Хорошая запись в блоге об этом: http://weblogs.asp.net/jgalloway/archive/2008/03/21/why-silverlight-2-deep-zoom-really-is-something-new.aspx

Ответ 11

Я работаю над браузером для просмотра очень больших исторических планов и сцен. Хорошая помощь для первых шагов (старый блог) я нашел в http://www.cadmaps.com/gisblog/?p=7 чтобы понять пирамиды изображения (что работает с Картами Google).

С "tiler" я создаю много изображений, таких как testImage_0001111100.png. 0001111100 - это, например, 5-й уровень масштабирования и положение x/y в пирамиде изображения. Большинство вычислений (соседние изображения, стек изображений вверх и вниз) выполняются серверами по php, вызванным запросами ajax.

Я боюсь в данный момент с (не неразрешимыми) проблемами при плавном перемещении и масштабировании. Это моя проблема - но прочитайте статью.

Ответ 12

Google получает снимки со снимками высокого разрешения от служб, которые продают эти изображения, затем они хранят и обрезают изображения и обслуживают только те, которые требуются, когда вы смотрите на определенную точку. То есть, вы заметили, когда вы увеличиваете и уменьшаете масштаб, чтобы увидеть квадратные плитки? те, которые обслуживает вас Google Server.

Вам также нужно учитывать, как они обрабатывают нагрузку с помощью Файловой системы Google и MapReduce

Ответ 13

AJAX позволяет обновить часть страницы с javascript. В основном, javascript возвращает запрос на веб-сервер и заменяет часть существующей страницы результатом.

JQuery - это одна библиотека, которая делает это проще. Я не знаю, что использует Google.