GISFile представляет возможность использования векторных тайлов, работающих по принципу загрузки частей карты(плитки). Использование этого метода оправдано при отображении карт с большим количеством объектов, а также для отображения скопированного кэша векторных тайлов в форматах (json, zip, kml, kmz). Нами разработано несколько библиотек JavaScript API, которые подключены в окнах отображения слоёв и карт, а также могут быть использованы для Ваших разработок.
| Файл | Библиотека | Формат | Описание | 
|---|---|---|---|
| gisfile.box.js | L.GisFileBox | zip (json) | отображение проекта карты | 
| gisfile.json.js | L.GisFileJson | json, zip (json) | отображение слоя | 
| gisfile.kml.js | L.GisFileKml | kml, kmz | отображение слоя | 
Примечание. Для максимального ускорения тайлы для проектов карт и слоёв кэшируются динамически и система автоматически не проверяет наличие изменений. После корректирования набора слоёв или объектов необходимо нажать в окне с параметрами карты или слоя кнопку "Обновление тайлов". После этого система будет проверять дату обновления тайлов и при необходимости будет выполнять их обновление.
<html>
    <head>
        <script src="http://gisfile.com/js/jquery/jquery-1.8.0.min.js"></script>
        <link rel="stylesheet" href="http://gisfile.com/css/leaflet.css" />
        <script src="http://gisfile.com/js/leaflet.js"></script>
        <script src="http://gisfile.com/js/gisfile.box.js"></script>
        <script src="http://gisfile.com/js/jszip.min.js"></script>
    </head>
    <body>
        <div id="map" style="width: 100%; height: 500px"></div>
        <script type="text/javascript">
            var map = new L.map("map", {
                    center: [50.4487, 30.5873], 
                    zoom: 10
                });
            $(function() {
                new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
                var gisfile = new L.GisFileBox({map : 'SpatialTown'}).addTo(map);
                gisfile._update();
            })
        </script>
    </body>
</html>
        
        
        
        
Примечание. С целью уменьшения размера пакетов передаваемых сервером и увеличения скорости отображения, передаются только объекты размер которых в запрашиваемом масштабе превышает 10 пикселей. По умолчанию, библиотеки JavaScript также не отображают на карте объекты меньше 10 пикселей, даже если они были загружены с сервера. Изменить минимальный размер можно с помощью параметра minSize.
<html>
    <head>
        <script src="http://gisfile.com/js/jquery/jquery-1.8.0.min.js"></script>
        <link rel="stylesheet" href="http://gisfile.com/css/leaflet.css" />
        <script src="http://gisfile.com/js/leaflet.js"></script>
        <script src="http://gisfile.com/js/gisfile.json.js"></script>
        <script src="http://gisfile.com/js/jszip.min.js"></script>
    </head>
    <body>
        <div id="map" style="width: 100%; height: 500px"></div>
        <script type="text/javascript">
            var map = new L.map("map", {
                    center: [50.43146, 30.99928], 
                    zoom: 16
                });
            if (map) {
                var osm = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
                map.addLayer( osm);
                    new L.GisFileJson({ layer : 'kipai'
                        , url: 'http://gisfile.com/layer/{l}/{z}/{x}/{y}.zip'
                        , minSize: 5
                        , onActiveFeature: function (feature, layer) {
                            if (feature.properties && feature.properties.name && feature.properties.name.length > 0)
                                layer.bindPopup( feature.properties.name);
                        }
                        , style: function(feature) {
                            return {weight: 1, fillOpacity: 0.1, color: '#FA0000', fillColor: '#FA0000'};
                        }
                    }).addTo(map);
            }
        </script>
    </body>
</html>