天地圖是國家測繪地理信息局建設的地理信息綜合服務網站,是國家地理信息公共服務平臺的公眾版。與常用的谷歌地圖、騰訊地圖、百度地圖、微軟地圖、必應地圖相比,天地圖有什么不同呢?主要體現在數據的權威性和準確性。天地圖發布的國界線、九段線等是準確無誤的;另外國內只有天地圖影像的坐標是無偏移的,其余地圖的坐標都進行過加密處理。Cartopy是一個基于Python的制圖模塊,其提供了加載在線地圖的功能,那么如何添加調用天地圖服務功能呢?其實前期已有相關的工作,但是由于天地圖服務升級,原先的方法都不再適用,這里給出的是最新的調用方法。
網站:天地圖首先需要注冊賬號,然后選擇開發資源→地圖API
進入控制臺,點擊創建新應用,選擇服務器端,這樣可以得到一個密鑰(key)
天地圖地圖服務采用OGC WMTS標準,但是該方法目前沒有試成功,故采用了瓦片地圖(XYZ Tiles)的形式。
添加以下代碼,注意把代碼中的'your_key'替換成之前得到的key
import cartopy.io.img_tiles as cimgt# 天地圖矢量class TDT_vec(cimgt.GoogleWTS): def _image_url(self, tile): x, y, z = tile key = 'your_key' url = 'http://t0.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, key) return url# 天地圖遙感class TDT_img(cimgt.GoogleWTS): def _image_url(self, tile): x, y, z = tile key = 'your_key' url = 'http://t0.tianditu.gov.cn/DataServer?T=img_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, key) return url# 天地圖地形class TDT_ter(cimgt.GoogleWTS): def _image_url(self, tile): x, y, z = tile key = 'your_key' url = 'http://t0.tianditu.gov.cn/DataServer?T=ter_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, key) return url
1、矢量底圖、影像底圖、地形底圖
# 導入模塊import matplotlib.pyplot as pltimport cartopy.crs as ccrsimport cartopy.feature as cfeatfrom cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTERfrom cartopy.mpl.ticker import LongitudeFormatter,LatitudeFormatterimport cartopy.io.shapereader as shpreaderimport numpy as npplt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False fig = plt.figure(figsize=(18, 12))ax = fig.add_subplot(1, 3, 1, projection=ccrs.PlateCarree())ax.set_extent([118, 122, 28, 32],crs=ccrs.PlateCarree())request = TDT_vec()ax.add_image(request, 9)ax.set_title('天地圖矢量底圖',fontsize=15)gl = ax.gridlines(draw_labels=True, linewidth=1, color='k', alpha=0.5, linestyle='--')gl.xlabels_top = gl.ylabels_right = False gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTERax = fig.add_subplot(1, 3, 2, projection=ccrs.PlateCarree())ax.set_extent([118, 122, 28, 32],crs=ccrs.PlateCarree())request = TDT_img()ax.add_image(request, 9)ax.set_title('天地圖影像底圖',fontsize=15)gl = ax.gridlines(draw_labels=True, linewidth=1, color='k', alpha=0.5, linestyle='--')gl.xlabels_top = gl.ylabels_right = False gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTERax = fig.add_subplot(1, 3, 3, projection=ccrs.PlateCarree())ax.set_extent([118, 122, 28, 32],crs=ccrs.PlateCarree())request = TDT_ter()ax.add_image(request, 9)ax.set_title('天地圖地形底圖',fontsize=15)gl = ax.gridlines(draw_labels=True, linewidth=1, color='k', alpha=0.5, linestyle='--')gl.xlabels_top = gl.ylabels_right = False gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTERplt.show()
2、不同層級的底圖
fig = plt.figure(figsize=(18, 12))for i in range(6,9): ax = fig.add_subplot(1, 3, i-5, projection=ccrs.PlateCarree()) ax.set_extent([120.4, 122.1, 30.6, 32.1],crs=ccrs.PlateCarree()) request = TDT_img() ax.add_image(request, i) ax.set_title('Level='+str(i),fontsize=15) gl = ax.gridlines(xlocs=np.arange(120.5, 122.5, 0.5), ylocs=np.arange(30, 32.5, 0.5), draw_labels=True,linewidth = 0.5,color='k', alpha=0.5,linestyle='--') gl.xlabels_top = gl.ylabels_right = Falseplt.show()
參考:
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
ps4剛發布的時候賣多少錢?你好,。500克的給國行2200,1噸的給國行2600(除了一些限量發售,好像還沒有 尚未正式發布)。非國行的價格相對更隨意,但一般都比國行便宜。ps4多少錢?美版PS4售價399美元,約合2430元。上映日期是2013年11月15日。PS4的售價為3380港幣,約合2657元。上映日期是2013年12月17日。港版PS4《地帶:陰影墜落》中英文售價為3780港幣,約合...
DNF銀錠有什么用?等級40以上的戰士可以在赫頓馬爾廣場加入NPC喬安費瑞諾進入地下城。也可以通過入場券進入地下城。進入地下城后,玩家可以自行選擇基礎護送物資【銅錠】。還可以加上其他地下城獲得的【銅錠】【銀錠】【金錠】。dnf金錠有什么用:用金錠,銀錠等。用金幣換票。加了他們之后,通關后獎勵會更高。f如何獲得鏢局的金元寶:1。根據護送物資的價值獲得不同的獎勵。護送成功后會發放獎勵【護送證書】。其他...
世界上最小的裙子?世界上最短的裙子是苗寨的裙子。如果你偶爾去山里的這個村子看看,你會看到很多人會穿這種裙子。在當地穿這樣的短裙是一種習慣和自然。但是在城市里,看到這個,會覺得比較暴露。世界上最短的裙子只有五英寸,通常在演出時穿。但是到了苗寨就變成普通衣服了,因為這里的工作人員都穿這種裙子。女生天生愛美,喜歡很多漂亮的衣服,尤其是短裙,夏天會很酷。在山里這個非常特別的地方,所有的女人都穿著同樣的衣服...