1. 程式人生 > >地圖投影和向量瓦片詳解

地圖投影和向量瓦片詳解

一.引言

    地圖投影的分類很多,世界上目前主流地圖都是採用的Web墨卡託投影方式(國際組織稱其為3857或900913投影),國內高德和百度地圖也是採用的Web墨卡託的投影方式,除了Web墨卡託之外,經緯度投影(簡稱4326投影)也是比較常用,向量瓦片通俗來講就是說資料是以點線面的形式進行儲存,目前國內的高德和百度地圖都是採用的這種方式,因最近工作中使用這兩個概念比較多,在此記錄下以便後續查閱和供他人學習。

二.地圖投影

2.1.地理座標系的概念.

這裡寫圖片描述

2.2.投影座標系的概念.

這裡寫圖片描述

2.3.地理座標系和投影座標系的關係.

這裡寫圖片描述

2.4.地圖投影的分類.

這裡寫圖片描述

這裡寫圖片描述

2.5Web墨卡託投影概念和經緯度投影座標與Web墨卡託座標的相互轉化.

這裡寫圖片描述

這裡寫圖片描述

    Web墨卡託和經緯度投影轉化的程式碼.

/**
     * 經緯度座標轉Web墨卡託座標
     * @param lat
     * @param lon
     * @return
     */
    public static  double [] lonLat2Mercator(double lat,double lon){

        double [] xy = new double[2];
        double x = lon * 20037508.342789 / 180;
        double y = Math.log(Math.tan((90
+lat)*Math.PI/360))/(Math.PI/180); y = y * 20037508.342789 / 180; xy[0] = x; xy[1] = y; return xy; } /** * Web墨卡託座標轉經緯度 * @param mercatorX * @param mercatorY * @return */ public static double [] mercator2lonLat(double mercatorX,double mercatorY ){ double
[] xy = new double[2]; double x = mercatorX/20037508.342789*180; double y = mercatorY/20037508.342789*180; y = 180 /Math.PI*(2*Math.atan(Math.exp(y*Math.PI/180))-Math.PI/2); xy[0] = x; xy[1] = y; return xy; }

三.向量瓦片

3.1.珊格瓦片和向量瓦片的概念.

珊格瓦片是預先在Server端繪製好固定的PNG和JPG圖片集合。
向量瓦片是將向量資料通過不同的描述檔案來組織和定義,在客戶端實時解析資料和完成繪製。

3.2.向量瓦片的資料格式.

向量瓦片常用的資料格式有geojson,PBF,MVT等。
資料來源的話可以使用Mapbox,也可以使用OSM,亦或是使用自己的資料。

注意:向量瓦片記憶體儲的資料是相對座標,並不是地理座標,這麼做的目的是為了減小資料量,加快傳輸效率和前端渲染效率。

3.3.向量瓦片相比珊格瓦片的優勢.

1.不再需要為不同的樣式而反覆進行製圖、渲染、切片、更新service等過程.
2.在當前各種高分屏、視網膜屏大肆發展的階段,避開按照特定DPI和解析度渲染的柵格圖片在不同的顯示裝置上無法以統一清晰的效果呈現.
3.向量瓦片資料是可互動可線上編輯的,而傳統的珊格瓦片資料是不可互動的.
4.向量瓦片的渲染效率比珊格瓦片要高.

3.4.Mapbox提出的向量瓦片標準

注意:Mapbox是一塊開放原始碼的國外地圖SDK,我正在研究Mapbox的原始碼並修改以實現不同的功能需求,如有朋友也在做這個事情,歡迎聯絡我溝通討論,郵箱地址:[email protected]

相關推薦

地圖投影向量瓦片

一.引言     地圖投影的分類很多,世界上目前主流地圖都是採用的Web墨卡託投影方式(國際組織稱其為3857或900913投影),國內高德和百度地圖也是採用的Web墨卡託的投影方式,除了Web墨卡託之外,經緯度投影(簡稱4326投影)也是比較常用,向量

轉載 logback的使用logback.xml http://www.cnblogs.com/warking/p/5710303.html

version tor red java代碼 根節點 ext private 字符串 npe logback的使用和logback.xml詳解 一、logback的介紹  Logback是由log4j創始人設計的另一個開源日誌組件,官方網站: http://logb

微信公眾開發URLtoken填寫

res wrap this true 進行 -m tmp sem 知識 微信公眾開發URL和token填寫詳解 方法/步驟 作為一名微信公眾號開發者,別人進入你的微信公眾號,肯定會看見某些網頁,或者給你發某些信息,你需要實時自動回復,所以你

storm集群部署配置過程

多少 帶來 進程 創建 使用 命令 介紹 aml 可能 ---恢復內容開始--- 先整體介紹一下搭建storm集群的步驟: 設置zookeeper集群 安裝依賴到所有nimbus和worker節點 下載並解壓storm發布版本到所有nimbus和worker節點 配置s

接口測試工具soapUI的安裝使用方法

service 技術 key custom media 負載 bmp file text soapUI是一個開源測試工具,通過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。 使用soapUI可以非常方便的實現接口的功能測試、穩

Sql Server參數化查詢之where inlike實現

blog charindex 語句 pan 建議 ack rop for 臨時表 文章導讀 拼SQL實現where in查詢 使用CHARINDEX或like實現where in 參數化 使用exec動態執行SQl實現where in 參數化 為每一個參數生成一個參數

MySQL存儲引擎中的MyISAMInnoDB區別

訪問 過程 包含 lte 處理機制 comm 用戶 isam log MyISAM是MySQL的默認數據庫引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,但卻有一個缺點:不

Android Studio中GitGitHub使用

可能 必須 窗口 gin 擁有 說明 詳細 對話 發現   一、Git和GitHub簡述    1.Git    分布式版本控制系統,最先使用於Linux社區,是一個開源免費的版本控制系統,功能類似於SVN和CVS。Git與其他版本管理工具最大的區別點和優點就是分布式;  

MyISAMInnoDB區別

sam 是什麽 註意 高速 dump 在操作 必須 index 自己 MyISAM是MySQL的默認數據庫引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,但卻有一個缺點:不

netstat Recv-QSend-Q

java ket -a ant 相關 csdn min any ber http://blog.csdn.net/sjin_1314/article/details/9853163   通過netstat -anp可以查看機器的當前連接狀態: Active Inter

js keyup、keypresskeydown事件

rgs spa 小鍵盤 ansi 使用方法 form 單個 sage ges js keyup、keypress和keydown事件都是有關於鍵盤的事件 當一個按鍵被pressed 或released在每一個現代瀏覽器中,都可能有三種客戶端事件。 keydown even

NFS服務器原理安裝配置附案例演練

隨機選擇 span 通訊 操作系統 不同 網絡 定義 重新啟動 exportfs NFS服務器原理和安裝配置詳解附案例演練 1、什麽是NFS服務器   NFS就是Network File System的縮寫,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享

轉:logback的使用logback.xml

靈活 多說 maven path socket win error 輸出日誌 功能 一、logback的介紹  Logback是由log4j創始人設計的另一個開源日誌組件,官方網站: http://logback.qos.ch。它當前分為下面下個模塊:  logback-c

logback的使用logback.xml

ons servle home 切換 內部 實現 負責 ace acc 一、logback的介紹  Logback是由log4j創始人設計的另一個開源日誌組件,官方網站: http://logback.qos.ch。它當前分為下面下個模塊:  logback-core:其它

MVC,MVP MVVM 的

name one control ember 模式 hash 改名 主動性 主動 一、MVC MVC模式的意思是,軟件可以分成三個部分。 視圖(View):用戶界面。 控制器(Controller):業務邏輯 模型(Model):數據保存 各部分之間的通信方式如下

UI自動化測試(二)瀏覽器操作及對元素的定位方法(xpath定位css定位

cli 刷新 ota api enter 版本 ror apache 窗口 Selenium下的Webdriver工具支持FireFox(geckodriver)、 IE(InternetExplorerDriver)、Chrome(ChromeDriver)、 Opera

Java對象類的

htc db2 ucs docs em1 mvp ini ndt ecs 琴7A0坎4純3硬si藕菜時http://docstore.docin.com/xpyd645 膊9強4埔cs黑依oehttp://www.docin.com/nir7778 R7E20wm8

C#網絡編程基礎之進程線程

詳解 面試 ring develop -a display asp.net codes frame 在C#的網絡編程中,進程和線程是必備的基礎知識,同時也是一個重點,所以我們要好好的掌握一下。 一:概念 首先我們要知道什麽是”進程”,什麽是“線程”,好,查一下baik

jsp 九大內置對象其作用

tex next 應用服務 java 響應 exceptio servle 輸出流 XML JSP中一共預先定義了9個這樣的對象,分別為:request、response、session、application、out、pagecontext、config、page、exc

centos7centos6.5環境rpm方式安裝mysql5.7mysql5.6

安裝mysql5.7和mysql5.6詳centos7和centos6.5環境rpm方式安裝mysql5.7和mysql5.6詳解centos環境安裝mysql5.7其實不建議安裝mysql5.7 語法和配置可能和以前的版本區別較大,多坑,慎入1.yum方式安裝(不推薦)a.安裝mysql5.7 yum源ce