地圖坐標演算法
A. 地圖學的坐標量算怎麼做
地圖量算的具體內容有:1. 測量點位的地理坐標、平面直角坐標和高程;2. 量算線狀要素的長度、方向、曲率、撓率等;3. 量算地表面積、坡度、坡向等地形參數。
建議你可以去咨詢一下你的老師,這個演算法到底是怎麼算的呢?老師會給你講一下詳細的解答過程
B. 地理坐標的計算方法
子午面與地球橢球面的交線,稱為子午線或經線。所有通過地軸的平面,都和地球表面相交而成為(橢)圓,這就是經線圈。一條經線是一個半(橢)圓弧。所有垂直於地軸的平面與地球橢球面的交線,稱為緯線。緯線是半徑不同的圓,其中半徑最大的緯線稱為赤道。在地球儀上,通過倫敦格林威治天文台原址的那條經線稱為0度經線,也叫本初子午線。在地球儀上,同赤道平行的線叫緯線,緯線指示東西方向,所有緯線長度不相等,緯線標注的度數就是緯度;赤道緯度為零,赤道以北為北緯,以南為南緯。在地球儀上,經緯線相互交織構成經緯網,用經度、緯度表示地面上點的位置叫地理坐標。例如:我國首都北京位於北緯40度和東經116度的交點附近,昆明位於北緯25度和東經103度的交點附近。緯度是地理坐標中的橫坐標,經度是縱坐標。
由地球橢球體上任一點M,引一垂直於點M地平線的直線,其與赤道面相交所構成的夾角稱地理緯度。以赤道為0°,向北、南兩極各以90°計算,向北稱北緯,向南稱南緯。M點經線面與起始經線面間的夾角稱為地理經度。以起始經線為0°,國際上統一規定以通過英國倫敦格林威治天文台的經線為起始經線,向東、西各以180°計算,向東稱東經,向西稱西經。地球上或地圖上的點位表示為M(,λ)。在地圖上以內圖廓和經緯線網(或分度帶)形式表示。在>1∶10萬地形圖上,地理坐標網以圖廓形式表現,圖廓四角注記經緯度數值,內外圖廓間繪有分度帶。在小比例尺地圖上和<1∶2O萬地形圖上,一般都直接繪有地理坐標網,並注有相應的經緯度數值。以此確定地區或地面點的地理位置。
C. 在百度地圖api,經緯度怎麼轉換成百度坐標
坐標轉換服務
坐標轉換介面說明
將其他坐標系轉換到網路坐標系。介面樣例如下:
http://api.map..com/ag/coord/con...
參數說明:
x/y:經緯度坐標
from/to:決定轉換效果,具體參數天填充如下:
坐標系 參數
WGS-84坐標系(GPS) from=0,to=4
GCJ-02坐標系(谷歌、soso、搜狗) from=2,to=4
51地圖坐標系 (需要先將51地圖坐標除10000)from=2,to=4
mapbar坐標系 需要先調用後面的轉換演算法,得到WGS84坐標,再使用:from=0,to=4
返回結果:
json數組,error表明錯誤號,x、y是經過base64加密的字元串,需要自反解
附:mapbar坐標轉換演算法,輸入為mapbar坐標,輸出為gps坐標(js代碼描述)
function mapBar2WGS84(x,y){
x = parseFloat(x)*100000%36000000;
y = parseFloat(y)*100000%36000000;
x1 = parseInt(-(((Math.cos(y/100000))*(x/18000))+((Math.sin(x/100000))*(y/9000)))+x);
y1 = parseInt(-(((Math.sin(y/100000))*(x/18000))+((Math.cos(x/100000))*(y/9000)))+y);
x2 = parseInt(-(((Math.cos(y1/100000))*(x1/18000))+((Math.sin(x1/100000))*(y1/9000)))+x+((x>0)?1:-1));
y2 = parseInt(-(((Math.sin(y1/100000))*(x1/18000))+((Math.cos(x1/100000))*(y1/9000)))+y+((y>0)?1:-1));
return [x2/100000.0,y2/100000.0];
}
限制 每秒訪問少於50次
示例
利用JSONP的方式,進行跨域訪問。示例鏈接:
http://dev..com/wiki/static/map/...
批量坐標轉換介面(高級)
介面參數說明:
1.單組坐標轉換與以前請求的url格式不變
2.批量坐標轉換請求url多加一個參數『mode』,當mode=1時請求批量坐標轉換介面,當mode為其他值時請求單組坐標轉換介面。
參數中每組x坐標間以逗號分隔,每組y坐標間以逗號分隔。如:
http://api.map..com/ag/coord/con...
3.批量坐標轉換坐標組數上限為20個,超過20個則只返回20個結果
返回結果說明:
1.數據以json格式返回
2.單組坐標轉換返回格式與之前相同
3.批量坐標轉換返回格式:
[{"error":0,"x":"NDAuMDA2NjY4MzUzNTg3","y":"MTE2LjAwNTkyMzYyNTU1"},{"error":0,"x":"NTAuMDA2Njc1NDk5OTY3","y":"MTE3LjAwNTkyNDk5OTg1"}]
批量轉換限制
每秒訪問少於50次,一次20個。
批量示例
利用JSONP的方式,進行跨域訪問。示例鏈接:
http://dev..com/wiki/static/map/...
D. GIS中坐標系與偏移演算法總結
一 大地坐標系
1.1 概念
大地坐標系是大地測量中以參考橢球面為基準面建立起來的坐標系。
大地坐標系根據其原點的位置不同,分為地心坐標系和參心坐標系。地心坐標系的原點與地球質心重合,參心坐標系的原點與某一地區或國家所採用的參考橢球中心重合,通常與地球質心不重合。
1.2 常用的參心坐標系與地心坐標系
北京54 參心坐標系(參心坐標系)
西安80 參心坐標系(參心坐標系)
cgcs2000 地心坐標系(地心坐標系)
wgs84 地心坐標系(地心坐標系)
我國先後建立的1954年北京坐標系、1980西安坐標系和新1954年北京坐標系,都是參心坐標系。這些坐標系為我國經濟社會發展和國防建設作出了重要貢獻。
但是,隨著現代科技的發展,特別是全球衛星定位技術的發展和應用,世界上許多發達國家和中等發達國家都已在多年前就開始使用地心坐標系。
國務院批准自2008年7月1日啟用我國的地心坐標系——2000國家大地坐標系(CGCS-2000),同時要求用8-10年的時間,完成現行國家大地坐標系向20000國家大地坐標系的過渡和轉換。過渡期結束,將停止提供現行國家大地坐標系下的測繪成果。
參考:
2018年7月1日起全面使用2000國家大地坐標系,西安80和北京54坐標系正式退出歷史舞台
wgs84是為GPS全球定位系統使用而建立的坐標系統;gps設備採集的數據均為wgs84坐標系。
1.3 不同坐標系之間的轉換
arcgis 軟體中計算完成,參考:[arcgis坐標轉換與投影]( https://www.jianshu.com/p/5c437696be06 )
二 坐標投影
2.1 投影後的坐標形式
原始經緯度:120.0397529296875,30.229220825195313
墨卡托投影後:13362764.171082955,3533048.2025558753
參考: arcgis js api:web墨卡托(3857)轉經緯度坐標(4326)
2.2 投影的目的
方便工程測量、二維圖展示便於理解。
2.3 根據不同需求使用不同的投影演算法
例如: 墨卡托投影後的二維圖導致了地球兩極被拉寬,不適用於工程測量,但適合用作普通二維圖的展示。而大比例尺的工程測量圖對局部區域內精度要求高,而採用高斯克里格投影。
三 gcj02偏移演算法(國家測繪局,被戲稱為火星坐標)
注意 這是偏移演算法,而不是單獨的一個坐標系。習慣上人們將加了偏移演算法的坐標稱為gcj02坐標。經偏移演算法處理的地圖數據偏差一般為 300~500 米。
3.1 在我們國家發布的互聯網地圖按法律規定需要經過偏移演算法加偏移。
例如高德地圖、騰訊地圖。
3.2 網路地圖在gcj02基礎上進行了二次加偏移,稱為bd09坐標
3.3 天地圖是否加偏移?
天地圖採用cgcs2000坐標。
發布在互聯網上的天地圖並不一定都是加偏移,未加偏移的地圖做了特殊處理,很多涉密地理信息在地圖上找不到。
3.4 使用了加偏移的地圖如何進行gis開發
對疊加到地圖上的數據同樣加偏移,實現與底圖吻合。
參考: WGS84坐標與不同加密演算法之間轉換
更多參考:
你必須知道的地理坐標系和投影坐標系
arcgis坐標轉換與投影變換
E. 經緯度演算法
經緯度的來歷:為了精確地表明各地在地球上的位置,人們給地球表面假設了一個坐標系,這就是經緯度線。那麼,最初的經緯度線是怎麼產生?又是如何測定的呢?公元344年,亞歷山大渡海南侵,繼而東征,隨軍地理學家尼爾庫斯沿途搜索資料,准備繪一幅「世界地圖」。他發現沿著亞歷山大東征的路線,由西向東,無論季節變換與日照長短都很相仿。於是做出了一個重要貢獻——第一次在地球上劃出了一條緯線,這條線從直布羅陀海峽起,沿著托魯斯和喜馬拉雅山脈一直到太平洋。
亞歷山大帝國曇花一現,不久就瓦解了。但以亞歷山大為名的那座埃及城裡,出現了一個著名圖書館,多年擔任館長的埃拉托斯特尼博學多才,精通數學、天文、地理。他計算出地球的圓周是46250千米,畫了一張有7條經線和6條緯線的世界地圖。
公元120年,一位青年也在這座古老的圖書館里研究天文學、地理學。他就是克羅狄斯·托勒密。托勒密綜合前人的研究成果,認為繪制地圖應根據已知經緯度的定點做根據,提出地圖上繪制經緯度線網的概念。為此,托勒密測量了地中海一帶重要城市和據點的經緯度,編寫了8卷地理學著作。其中包括8000個地方的經緯度。為使地球上的經緯線能在平面上描繪出來,他設法把經緯線繪成簡單的扇形,從而繪制出一幅著名的「托勒密地圖」。15世紀初,航海家亨利開始把「托勒密地圖」付諸實踐。但是,經過反復考察,卻發現這幅地圖並不實用。亨利手下的一些船長遺憾地說:「盡管我們對有名的托勒密十分敬仰,但我們發現事實都與他說的相反。」
正確地測定經緯度,關鍵需要有「標准鍾」。製造准確的鍾表在海上計時,顯然比依靠天體計時要方便,實用得多。18世紀機械工藝的進步,終於為解決這個長久的難題創造了條件。英國約克郡有位鍾表匠哈里森,他用42年的時間,連續製造了5台計時器,一台比一台精確、完美,精確度也越來越高。第五台只有懷表那麼大小,測定經度時引起的誤差只有1/3英里。差不多同時,法國制鍾匠皮埃爾·勒魯瓦設計製造的一種海上計時器也投入了使用。至此,海上測定經度的問題,終於初步得到了解決。 經緯度計算方法經緯線的座標點可以確定地圖上的任何位置,掌握經緯度和測定方法就能知道自己的所在地在地圖上的相應位置。
經線是指穿過南北極的子午線,它們把地球的圓周分成360度。你可以用時間推算出所在地的經度。例如,當格林威治時間為零點時,你所在地的當地時間 正是8 點20分,兩地之間時差為8小時20分。由此,你所在地的經度為15×8+20÷4=125即東經125度,即地圖上的縱座標。在遠程旅遊時,只要旅遊者 帶著兩塊表,一塊是格林威治的時間,另一塊是當地時間,就能推算出所在地的經度。
緯度是與赤道平行的座標線,它把南北半球各分成90度,與經線垂直相交,1緯度約跨越110公里距離。測定緯度的方法很簡單,在能見到北極星的夜晚,只要在所在位置用量角器測量一個水平線與北極星連線之間的夾角的度數就可以,這個度數就是緯度。
掌握經緯度的測定方法是一個旅遊者最基本的技能。這種技能在荒野、戈壁、沙漠、海洋中是最重要的定位方法。