openlayer載入向量切片
資料是GIS的靈魂,沒有資料也就談不上GIS了,資料分為向量資料和柵格資料,柵格資料也有一些短處,缺乏靈活性、實時性,資料完整性受損是比較突出的問題,向量資料不同於柵格資料,比較靈活,資料完整,將兩者結合誕生出—>向量切片,不要被向量這個詞迷惑,向量切片是不可被編輯的,不可編輯不代表不能獲取其屬性資訊。
向量資料的優點:
向量切片可以以三種形式呈現:GeoJSON、TopoJSON 和 MapBox Vector Tile(.mvt),向量切片技術繼承了向量資料和切片地圖的雙重優勢,有如下優點:
1、 對於柵格切片,更靈活,更細粒度的資料劃分,要素級別;
2、 資料資訊接近無損,但體積更小,請求指定地物的資訊,直接在客戶端獲取,無需再次請求伺服器;
3、樣式可改變和定製(重點),向量切片可以在客戶端或者伺服器端渲染,可以按照使用者賦予的樣式渲染;
4、對於原始向量資料,更小巧,採用了重新編碼,並進行了切分,只返回請求區域和相應級別的資料;
5、資料更新快,或者說是實時的,當資料庫中的空間資料變化後,再次請求的資料是改變後的,在客戶端渲染後既是最新的情況;
6、 更靈活,可以只是返回每個專題資料的圖層,而不是像柵格切片把很多專題資料渲染在一個底圖中。
詳細介紹參考https://blog.csdn.net/qingyafan/article/details/53367204
一、採用geojson載入方式
//投影1 Geoserver和OpenLayer都支援的4326座標系 var projection4326 = new ol.proj.Projection({ code: 'EPSG:4326', units: 'degrees', axisOrientation: 'neu' }); var layerProjection = "4326"; //引數設定:圖層名稱 / 投影座標系 / 初始化樣式 var layer = "cite:beijing1"; var initStyle = new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.2)' }), stroke: new ol.style.Stroke({ color: 'red', width: 2 }), image: new ol.style.Circle({ radius: 7, fill: new ol.style.Fill({ color: '#ffcc33' }) }) }); var vector = new ol.layer.VectorTile({ title: "北京市道路-VectorTile", style: initStyle, projection: projection4326, //向量切片資料 source: new ol.source.VectorTile({ projeciton: projection4326, format: new ol.format.GeoJSON(), tileGrid: ol.tilegrid.createXYZ({ extent: ol.proj.get('EPSG:4326').getExtent(), maxZoom: 22 }), tilePixelRatio: 1, //發出獲取切片的請求 tileUrlFunction: function (tileCoord) { return 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/' + layer + '@EPSG%3A' + layerProjection + '@geojson/' + (tileCoord[0] - 1) + '/' + tileCoord[1] + '/' + (Math.pow(2, tileCoord[0] - 1) + tileCoord[2]) + '.geojson'; } }) });
二、採用pbf方式載入
//投影1 Geoserver和OpenLayer都支援的4326座標系
var projection4326 = new ol.proj.Projection({
code: 'EPSG:4326',
units: 'degrees',
axisOrientation: 'neu'
});
var layerProjection = "4326";
//引數設定:圖層名稱 / 投影座標系 / 初始化樣式
var initStyle = new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255, 255, 255, 0.2)'
}),
stroke: new ol.style.Stroke({
color: 'red',
width: 2
}),
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill({
color: '#ffcc33'
})
})
});
//圖層名
var layerName = 'cite:university';
//切片資源1 基於4326座標系統
var source4326 = new ol.source.VectorTile ({
title: "國內大學分佈-VectorTile",
format: new ol.format.MVT(),
projection: projection4326,
//切片格網直接有4326座標系統的座標範圍與縮放大小指定,因此每一級的都是固定的
tileGrid: ol.tilegrid.createXYZ({
extent: ol.proj.get('EPSG:4326').getExtent(),
maxZoom: 22
}),
tilePixelRatio: 1,
tileUrlFunction: function (tileCoord) {
return 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/' + layerName + '@EPSG% [email protected]/' + (tileCoord[0] - 1)
+ '/' + tileCoord[1] + '/' + (Math.pow(2, tileCoord[0] - 1) + tileCoord[2]) + '.pbf';
}
})
var vectorTile = new ol.layer.VectorTile
({
style: initStyle,
projection: projection4326,
source: source4326
});
三、效果圖
1、獲取屬性資訊
2、整體效果
相關推薦
openlayer載入向量切片
資料是GIS的靈魂,沒有資料也就談不上GIS了,資料分為向量資料和柵格資料,柵格資料也有一些短處,缺乏靈活性、實時性,資料完整性受損是比較突出的問題,向量資料不同於柵格資料,比較靈活,資料完整,將兩者結合誕生出—>向量切片,不要被向量這個詞迷惑,向量切片是不可被編輯的
ol4載入pbf向量切片與樣式定義
概述 看了一下mapbox的向量切片的展示方式,其核心是定義的一個樣式配置檔案,我就在想:Ol4裡面我是否通過styleFunction的方式實現同樣的效果呢,折騰了一上午,別說,styleFunction真好用,在此分享出來,供大家參看。 mapbox
Cesium載入MBTiles向量切片
MBTiles 是由 MapBox 制定的一種將瓦片地圖資料儲存到SQLite資料庫中並可快速使用,管理和分享的規範。該規範由MapBox制定,詳見http://mapbox.com/mbtiles-spec/。 透過資料庫索引的方式提高瓦片索引的效率,比通過瓦
GeoServer中釋出向量切片Vector Tile服務
釋出向量切片Vector Tile服務可以參考官方文件:安裝向量切片外掛 在這裡,GeoServer是以外掛的形式提供向量切片釋出服務的。方法是前往GeoServer官方網站中的下載頁面,在其中找到相
Ubuntu16.0.4 Flask+Postgis(ST_AsMVT) 向量切片初體驗
MVT MVT(Mapbox Vector Tile):傳送門 本文中用到的PostGIS函式 ST_AsMVT ST_AsMVTGeom ST_RemoveRepeatedPoints ST_MakeEnvelope 參考資料: PostGIS常用
Ubuntu16.04 Flask+Python-Mapnik + PostGIS 向量切片初體驗
基礎概念 柵格資料、向量資料 這部分份內容我就不贅述了,感興趣的請自行傳送瀏覽。 向量資料:傳送門 柵格資料:傳送門 柵格資料、向量資料對比:傳送門A、傳送門B、傳送門C 推薦關於柵格資料的部落格:柵格那點事兒 柵格切片、向量切片 柵格切片 柵格切片圖層將底圖作為影象檔案
(三) arcgis runtime for android 100.3開發學習(載入影像切片服務)
今天我們來學關於arcgis影像切片服務,注意這個例子的demo比較簡單。我們主要看一下ArcGISMapImageLayer類的UML圖。程式碼是非常簡單的。 來看一下原始碼,非常簡單。 package com.esri.arcgisruntime.sample
4.01WorldWindAndroid載入TileImage切片解析
重點類: TileSufaceImage public void setLevelSet(LevelSet levelSet) { if (levelSet == null) { throw new IllegalArgumentException
【技術貼】ArcGIS Runtime for Xamarin入門教程-呼叫向量切片
上一篇文章介紹了Xamarin版本的各種新的特性,開發出向量切片,移動地圖包,3D效果絲毫不遜色,那這些功能是怎麼實現的呢,今天這篇文章就將揭示如何呼叫向量切片。 1安裝環境 工欲善其事,必先利其器由於,可能大家對Xamarin的開發環境搭建可能不太熟悉,在此先
25 向量切片相關引數說明
向量切片是ArcGIS Pro新推出的功能,廢話不多說,進入正題 1、建立自定義切片方案 【Server Tools】--【Caching】--【Generate Map Server Cache Tiling Scheme】 注:改工具不單單為【向量切片】建立方案,因此在Tile Size中有不同大小
openlayer載入WMS圖層例子(LAYERS對應值填的是name屬性)
<!DOCTYPE html> <html> <head> <title>Tiled WMS</title> <link rel="stylesheet" href="https://op
專案角度談向量切片運用以及Geoserver處理自定義規格向量切片方案
1. 背景 向量切圖方案目前已經是很常見的一個方案,在2016年時團隊基於Sharpmap開發了支援不同座標系、不同切圖引數、任意向量資料(點、線、面)的工具。也著手開發了支援向量切圖瀏覽器前端配圖的工具。在當時研究之前,也寫過一篇初步研究的文章:WebGIS中向量切圖的初步研究(http://www.cn
向量切片(Vector tile)
轉自:http://www.cnblogs.com/escage/p/6387529.html 說明:本月的主要工作都是圍繞製作向量切片這一個核心問題進行的,所以2月的主題就以這個問題為主,目前分支出來的一些內容主要包括了TMS(Tile map service),O
基於實時向量切片的要素繪製Demo
文章基於我拆自Geoserver的向量切片外掛中的程式碼做的一個封裝:https://github.com/polixiaohai/mvn-repository。其中有兩個比較成熟的封裝,有需要的朋友可以自行使用。 maven中倉庫配置: <repository> <
OpenLayer載入百度座標偏移問題解決(方案二)
前言:上一篇文章介紹了百度座標載入在,天地圖,OSM像這類的非百度地圖的第三方地圖,本文主要講述的用載入百度地圖作為底圖這樣我們不再需要座標轉你,但是在使用WGS-84座標的時候,我們需要把他們轉到BD-9座標系上才能載入到地圖上的正確位置。上一篇文章中,我們只需要轉換百度座
Leaflet,OpenLayers3載入ArcGIS切片(png格式,Exploded鬆散型)
需求 做了一個簡單的WebGIS應用,不想因為載入切片就安裝一臺GIS伺服器。於是想直接訪問圖片的方式來載入地圖。 需解決的問題 leafletjs目前是不能夠直接載入ArcGIS服務切片的,但可以藉助esri-leaflet外掛來載入。如果沒
關於使用L.vectorGrid進行向量切片,無法獲取點屬性的問題
在L.vectorGrid(以下簡稱為lvg)編寫者的issue帖中找到了解決了無法找到lng的問題的方法。 由於: (1)pointSymbolizers繼承自circleMarker; (2)lvg marker不含有latlng。 (3)lvg要素沒有固定的latlng,只有瓦片的區域性座標。從
向量切片地圖前端開發tileserver-gl
向量切片前段開發tileserver-gl tileserver-gl簡介 MapBox GL TileServer-gl目錄結構 字型fonts 樣式配置style.js 符號集圖示配置sprite
OpenLayer載入百度座標偏移問題解決(方案一)
思路:方案一的問題就是解決百度座標載入OSM地圖或者天地圖偏移的問題,我們通過百度api獲取的座標,用OL去載入的時候有座標偏移的問題,百度座標獲取的是BD-9經過二次加密的座標系,而OL是WGS-84要想不偏移我們應該將BD-9轉到WGS-84,在這裡我們用到了一個大牛編寫
Leaflet呼叫geoserver釋出的向量切片
geoserver如何釋出切片就不寫了,大家都可以查到。 index.html <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <titl