Что значит кэшировать карту
Kartofan
суббота, 4 января 2014 г.
Как работает кэширование карт
В версии 3.1.0 было добавлено кэширование карт. Для чего это нужно? Все просто, если у вас хороший интернет, да и сидите вы в мягком кресле у себя дома, за большим компьютером, то вам особо думать об этой функции не нужно.А вот если вы выезжаете в поля, где интернет то есть то нет, то вам стоит прочитать этот раздел до конца.
Кэширование в двух словах: когда вы просматриваете карты, ее кусочки постоянно закачиваются из интернета и отображаются вам, но если включить кэширование, то можно эти кусочки сохранить локально в вашем браузере в специальном хранилище (indexedDb кому интересно) и в последствии не тратиться на трафик или если интернета нет, но в любом случае просматривать карты в независимости от обстоятельств. К тому же если вы не уверены что тот сервис с которого вы берете карты просуществует вечно, то вы можете сделать его локальную копию и наслаждаться своей неуязвимостью.
Но есть одно замечание. Тайлы не будут записываться в кэш если у вас включено дополнение типа адблок (то что блокирует рекламу). Выключите его, рекламы-то все равно нет, или хотя бы разрешите доступ к katofan.info/server.php (что это ниже) и все должно стать хорошо.
Дальше идут технические подробности которые можно и не читать.
Ну во первых я написал сразу два кэширующих сервера. Зачем это нужно? Первый сервер на PHP. Он простой как палка, тупо дергает картинку и отдает ее дальше в JSONP с картинкой закодированной в Base64. Если вам ничего это не понятно, но хочется сервер использовать свой (что только похвально), то тупо закидываете файл server.php из исходников на свой сервер с PHP и прописываете его в настройках программы. Все должно заработать.
Второй сервер написан на NodeJS. Это реализация Javascript на сервере. Я его писал в начале, но т.к. PHP несколько ближе основной массе населения, то решил написать и тот что выше. Но в чем прикол спросите вы? А прикол в том что этот сервер помимо кэширования сохраняет сами картинки карт. Это очень удобно если вы хотите во чтобы то ни стало сохранить какие-то карты. Т.е. он создает для каждого типа карт отдельную папочку и раскладывает там все скаченные тайлы. К тому же его очень просто запустить на локальном компьютере. Ставите NodeJS, с помощью npm ставите все зависимости и запускаете node app.js. Все сервер работает на 127.0.0.1:3000/cache (если нужно более подробно пишите в комментариях)
Пока нет возможности импорта-экспорта кэша, но я работаю в этом направлении.
[Советы и трюки] Сохраняем карту в кэш в Google Maps
Несмотря на то, что Apple так старательно работает над собственным картографическим сервисом, а в России уже давно существуют прекрасные Яндекс.Карты, многие владельцы iOS-устройств не мыслят своей жизни именно без Google Maps. Достаточно вспомнить то недоумение и, наверное, даже злость, которые выплеснулась во многие комментарии и посты, когда Apple решила отказаться от карты поискового гиганта. Но даже самые ярые поклонники Google Maps не знают некоторых особенностей этого сервиса и одноименного приложения. Например, не все знают, как сохранить карту в кэш.
Все очень просто. Зайдите в приложение Google Maps на своем iOS-устройстве и выберете необходимую область. Под областью подразумевается определенный участок карты. Желательно, чтобы он был не очень большим. Удивительно, но, например, рассматривая США, в кэш можно будет сохранить куда больший участок карты, чем, например, некоторые страны Евросоюза. А вот с Россией вообще иногда могут возникнуть проблемы — приложение напрочь откажется сохранять карту.
Итак, после того как участок будет выбран, наберите в строке поиска следующую команду «Ok maps» и нажмите кнопку Search. Если карту можно сохранить в кэш, приложение моментально этим и займется, вы сразу увидите процесс сохранения на экране вашего iOS-устройства. Если нельзя, то вы, само собой, увидите на экране отказ.
Сохраненную карту можно будет использовать без подключения к Сети. Карта масштабируется в обычных пределах. Но ни одним из онлайн-сервисов воспользоваться не получится, что и понятно.
ArcGIS for Server
В этом разделе
Что происходит во время процесса кэширования?
Кэширование не происходит автоматически. Чтобы создать кэш, сначала нужно разработать карту, а затем предоставить ее для совместного использования. После этого нужно задать некоторые параметры кэша и начать создание листов. Можно создать все листы сразу или разрешить формирование некоторых листов по необходимости, т.е. при первом обращении к ним.
При кэшировании карты вы отрисовываете ее на нескольких заданных уровнях масштабирования, чтобы затем пользователи смогли приближать и отдалять карту. При выборе параметров кэша нужно определить, какие масштабы требуется кэшировать. Если это просто первая проба инструментов кэширования, можно разрешить компьютеру выбрать какие-то масштабы. Однако обычно масштабы заранее подбирают так, чтобы обеспечить качественное отображение карты в каждом из этих масштабов. Следует записать масштабы и использовать их при разработке карт в ArcMap. Когда придет время создавать кэш, нужно указать эти масштабы в настройках инструмента создания кэша.
Есть и другие параметры, которые важно понимать при создании кэша. Дополнительные сведения можно найти в разделе Доступные свойства кэша карты.
Кэш хранится в директории кэша вашего сервера. При установке ArcGIS for Server директория кэша сервера создается в локальной папке. При добавлении дополнительных ГИС-серверов для поддержки сайта следует настроить общий доступ к директории кэша сервера, для того чтобы она была доступна с других задействованных компьютеров.
Выбираемые масштабы и устанавливаемые значения параметров кэша составляют схему листов. В каждом кэше есть файл схемы листов, который можно импортировать при создании новых кэшей, чтобы все кэши использовали одни и те же размеры листов и масштабы. Это как правило помогает поднять производительность веб-приложений, содержащих более одного кэшированного сервиса. Дополнительно можно выбрать именно ту схему листов, которая используется в ArcGIS Online, Bing Maps и Google Maps. Это позволит накладывать ваши листы кэша на листы этих картографических онлайн-сервисов.
Можно ли кэшировать все карты?
Кэш карты представляет собой снимок карты в какой-то момент времени. Поэтому кэш прекрасно работает для таких карт, которые нечасто меняются. К ним относятся: карты улиц, изображения и карты рельефа.
Если даже данные изменяются, все равно можно использовать кэширование, периодически обновляя кэш с помощью соответствующих инструментов. Также настраивается и график автоматического запуска таких обновлений. Чтобы понять, можно ли кэшировать карту, которая часто меняется, полезно ответить на вопросы:
Насколько актуальной должна быть моя карта?
Если необходимо, чтобы данные на карте были «живыми», если недопустима временная задержка, кэширование неприемлемо. Однако если короткая задержка допустима, и за это временное окно кэш можно обновить, кэширование можно применять.
Насколько велик кэш и насколько широко распространены изменения данных?
Эти два вопроса дополняют друг друга. Большой кэш требует больше времени на создание. Практичней обновлять большой кэш только в случае, если есть возможность изолировать область изменений и обновлений. Если кэш невелик, можно позволить себе быструю перестройку всего кэша.
Если обновления нельзя выполнить за приемлемое время, кэширование для такой карты неудобно.
После решения перечисленных вопросов используйте кэширование в тех случаях, где оно подходит. Повышение производительности, пожалуй, наиболее ценное преимущество, получаемое при создании и обновлении кэша.
Дополнительная информация об обновлении кэша сервера находится в разделе Обновления кэша карты.
Есть ли при этом возможность получить базовые данные?
Хотя кэши карты представляют собой изображения данных, вы все же можете разрешить пользователям выполнять задачи поиска, идентификации и запросы в картографическом сервисе. Эти инструменты получают с сервера географические положения объектов и возвращают результаты. Приложение выводит поверх кэшированного изображения результаты в формате исходного графического слоя.
Как начать кэширование?
Вы можете создать листы при публикации сервиса (что подходит для небольшого кэша) или сформировать кэш самостоятельно после публикации (подходит для большого кэша, когда вы хотите географически ограничить кэш, формируемый для больших масштабов). Если вы создаете кэш самостоятельно, используйте инструмент геообработки Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles) из набора инструментов Серверные инструменты (Server Tools).
Что такое кэширование карт?
Что происходит во время процесса кэширования?
Кэширование не происходит автоматически. Чтобы создать кэш, сначала нужно разработать карту, а затем предоставить ее для совместного использования. После этого нужно задать некоторые параметры кэша и начать создание листов. Можно создать все листы сразу или разрешить формирование некоторых листов по необходимости, т.е. при первом обращении к ним.
При кэшировании карты вы отрисовываете ее на нескольких заданных уровнях масштабирования, чтобы затем пользователи смогли приближать и отдалять карту. При выборе параметров кэша нужно определить, какие масштабы требуется кэшировать. Если это просто первая проба инструментов кэширования, можно разрешить компьютеру выбрать какие-то масштабы. Однако обычно масштабы заранее подбирают так, чтобы обеспечить качественное отображение карты в каждом из этих масштабов. Следует записать масштабы и использовать их при разработке карт в ArcMap. Когда придет время создавать кэш, нужно указать эти масштабы в настройках инструмента создания кэша.
Есть и другие параметры, которые важно понимать при создании кэша. Дополнительные сведения можно найти в разделе Доступные свойства кэша карты.
Кэш хранится в директории кэша вашего сервера. При установке ArcGIS for Server директория кэша сервера создается в локальной папке. При добавлении дополнительных ГИС-серверов для поддержки сайта следует настроить общий доступ к директории кэша сервера, для того чтобы она была доступна с других задействованных компьютеров.
Выбираемые масштабы и устанавливаемые значения параметров кэша составляют схему листов. В каждом кэше есть файл схемы листов, который можно импортировать при создании новых кэшей, чтобы все кэши использовали одни и те же размеры листов и масштабы. Это как правило помогает поднять производительность веб-приложений, содержащих более одного кэшированного сервиса. Дополнительно можно выбрать именно ту схему листов, которая используется в ArcGIS Online, Bing Maps и Google Maps. Это позволит накладывать ваши листы кэша на листы этих картографических онлайн-сервисов.
Можно ли кэшировать все карты?
Кэш карты представляет собой снимок карты в какой-то момент времени. Поэтому кэш прекрасно работает для таких карт, которые нечасто меняются. К ним относятся: карты улиц, изображения и карты рельефа.
Если даже данные изменяются, все равно можно использовать кэширование, периодически обновляя кэш с помощью соответствующих инструментов. Также настраивается и график автоматического запуска таких обновлений. Чтобы понять, можно ли кэшировать карту, которая часто меняется, полезно ответить на вопросы:
Насколько актуальной должна быть моя карта?
Если необходимо, чтобы данные на карте были «живыми», если недопустима временная задержка, кэширование неприемлемо. Однако если короткая задержка допустима, и за это временное окно кэш можно обновить, кэширование можно применять.
Насколько велик кэш и насколько широко распространены изменения данных?
Эти два вопроса дополняют друг друга. Большой кэш требует больше времени на создание. Практичней обновлять большой кэш только в случае, если есть возможность изолировать область изменений и обновлений. Если кэш невелик, можно позволить себе быструю перестройку всего кэша.
Если обновления нельзя выполнить за приемлемое время, кэширование для такой карты неудобно.
После решения перечисленных вопросов используйте кэширование в тех случаях, где оно подходит. Повышение производительности, пожалуй, наиболее ценное преимущество, получаемое при создании и обновлении кэша.
Дополнительная информация об обновлении кэша сервера находится в разделе Обновления кэша карты.
Есть ли при этом возможность получить базовые данные?
Хотя кэши карты представляют собой изображения данных, вы все же можете разрешить пользователям выполнять задачи поиска, идентификации и запросы в картографическом сервисе. Эти инструменты получают с сервера географические положения объектов и возвращают результаты. Приложение выводит поверх кэшированного изображения результаты в формате исходного графического слоя.
Как начать кэширование?
Вы можете создать листы при публикации сервиса (что подходит для небольшого кэша) или сформировать кэш самостоятельно после публикации (подходит для большого кэша, когда вы хотите географически ограничить кэш, формируемый для больших масштабов). Если вы создаете кэш самостоятельно, используйте инструмент геообработки Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles) из набора инструментов Серверные инструменты (Server Tools).
ArcGIS for Server
В этом разделе
Что происходит во время процесса кэширования?
Кэширование не происходит автоматически. Чтобы создать кэш, сначала нужно разработать карту, а затем предоставить ее для совместного использования. После этого нужно задать некоторые параметры кэша и начать создание листов. Можно создать все листы сразу или разрешить формирование некоторых листов по необходимости, т.е. при первом обращении к ним.
При кэшировании карты вы отрисовываете ее на нескольких заданных уровнях масштабирования, чтобы затем пользователи смогли приближать и отдалять карту. При выборе параметров кэша нужно определить, какие масштабы требуется кэшировать. Если это просто первая проба инструментов кэширования, можно разрешить компьютеру выбрать какие-то масштабы. Однако обычно масштабы заранее подбирают так, чтобы обеспечить качественное отображение карты в каждом из этих масштабов. Следует записать масштабы и использовать их при разработке карт в ArcMap. Когда придет время создавать кэш, нужно указать эти масштабы в настройках инструмента создания кэша.
Есть и другие параметры, которые важно понимать при создании кэша. Дополнительные сведения см. в разделе Доступные свойства кэша карты.
Кэш хранится в директории кэша вашего сервера. При установке ArcGIS for Server директория кэша сервера создается в локальной папке. При добавлении дополнительных ГИС-серверов для поддержки сайта следует настроить общий доступ к директории кэша сервера, для того чтобы она была доступна с других задействованных компьютеров.
Выбираемые масштабы и устанавливаемые значения параметров кэша составляют схему листов. В каждом кэше есть файл схемы листов, который можно импортировать при создании новых кэшей, чтобы все кэши использовали одни и те же размеры листов и масштабы. Это как правило помогает поднять производительность веб-приложений, содержащих более одного кэшированного сервиса. Дополнительно можно выбрать именно ту схему листов, которая используется в ArcGIS Online, Bing Maps и Google Maps. Это позволит производить наложение ваших листов кэша на листы этих картографических онлайн-сервисов.
Можно ли кэшировать все карты?
Кэш карты представляет собой снимок карты в какой-то момент времени. Поэтому кэш прекрасно работает для таких карт, которые нечасто меняются. К таким случаям относятся карты общего назначения, карты данных аэрофотосъемки и топокарты.
Насколько актуальной должна быть моя карта?
Если необходимо, чтобы данные на карте были «живыми», если недопустима временная задержка, кэширование неприемлемо. Однако если короткая задержка допустима, и за это временное окно кэш можно обновить, кэширование можно применять.
Насколько велик кэш и насколько широко распространены изменения данных?
Эти два вопроса дополняют друг друга. Большой кэш требует больше времени на создание. Практичней обновлять большой кэш только в случае, если есть возможность изолировать область изменений и обновлений. Если кэш невелик, можно позволить себе быструю перестройку всего кэша.
Если обновления нельзя выполнить за приемлемое время, кэширование для такой карты неудобно.
После решения перечисленных вопросов используйте кэширование в тех случаях, где оно подходит. Повышение производительности, пожалуй, наиболее ценное преимущество, получаемое при создании и обновлении кэша.
Дополнительная информация об обновлении кэша сервера находится в разделе Обновления кэша карты.
Будут ли исходные ГИС-данные доступны после создания пакета листов?
Хотя кэши карты представляют собой изображения данных, вы сможете предоставить доступ к исходным данным картографического сервиса для выполнения задач поиска, идентификации и выполнении запросов. Эти инструменты получают с сервера географические положения объектов и возвращают результаты. Приложение выводит поверх кэшированного изображения результаты в формате исходного графического слоя.
Как начать кэширование?
Вы можете создать листы при публикации сервиса (что подходит для небольшого кэша) или сформировать кэш самостоятельно после публикации (подходит для большого кэша, когда вы хотите географически ограничить кэш, формируемый для больших масштабов). Если вы создаете кэш самостоятельно, используйте инструмент геообработки Управление листами кэша картографического сервиса из набора инструментов Серверные инструменты.
Компоненты программного обеспечения, необходимые для создания и поддержки кэша карт
Ниже приведен обзор важных компонентов программного обеспечения, о которых нужно знать при создании и управлении кэшами карт.
Закладка Кэширование
На закладке Кэширование в диалоговом окне Редактор сервиса можно указать, что сервис должен использовать кэш, а затем сконфигурировать необходимые настройки, например, схему листов. Во вложенной закладке Дополнительные настройки можно выбрать дополнительные опции, например, формат изображения и необходимость конфигурирования кэширования по запросу.
Эта закладка доступна в окне Каталог в ArcMap при публикации сервиса или при отображении свойств сервиса.
Рекомендации по использованию закладки Кэширование находятся в разделе Доступные свойства кэша карты.
Инструмент Создать схему листов кэша картографического сервиса
Инструмент Создать схему листов кэша картографического сервиса позволяет создавать схему листов для карты, которая включает масштабы для кэширования, систему координат кэша и другие крайне важные свойства. В итоге инструмент создает файл схемы листов в формате XML. При создании нового кэша можно указать файл схемы листов, чтобы загрузить эти свойства.
Рекомендуется создавать схему листов с помощью этого инструмента и использовать ее для множества кэшей внутри организации.
Инструмент Управление листами кэша картографического сервера
Так как Управление листами кэша картографического сервера является инструментом геообработки, его можно использовать в скрипте подобно любому другому инструменту для помощи при обновлении кэша на регулярной основе.
Директория кэша
Директория кэша ArcGIS Server – это папка на диске, в которой хранятся листы кэша.
Можно открыть директорию кэша для проверки листов кэша и файла схемы листов conf.xml. Директория кэша также может содержать статус файловой базы геоданных.gdb, который содержит информацию о том, какие листы были построены.
На рисунке ниже показан полистный формат кэша в Windows Explorer, где каждый лист хранится в отдельном файле. В компактном формате кэша используются большие файлы, называемые пакетами, которые хранят несколько листов.
Более подробно о директории кэша сервера см. Доступные свойства кэша карты.