首頁 資料庫 mysql教程 OpenLayers系列(2)多个图层

OpenLayers系列(2)多个图层

Jun 07, 2016 pm 03:42 PM
openlayers 使用 圖層 多個 工具 步驟 系列

工具的使用步骤请参考 OpenLayers系列(1)——入门示例 一节。 多图层地图的构成 多图层的地图由两种图层构成: base layer 和 overlay layer 。 Base layer: 任何一个地图中都存在至少一个图层,否则你的应用将呈现空白,我们把最基本的一个图层称为base lay

工具的使用步骤请参考 OpenLayers系列(1)——入门示例 一节。

多图层地图的构成

    多图层的地图由两种图层构成:base layeroverlay layer

    Base layer: 任何一个地图中都存在至少一个图层,否则你的应用将呈现空白,我们把最基本的一个图层称为base layer。Base layer不止一种或一个,你可以选择任意一个图层作为应用的base layer,但是任何时候base layer都只能有一个是turn on的,如果程序在打开一个base layer时发现已经存在另一个打开着的base layer,则应用会关掉之前的base layer而使用最近打开的一个。所以base layer在地图中的概念就像是(radio button)一个单选按钮。

    Overlay layer: 非base layer的图层统称为overlay layer。应用中可使用并同时打开任何多的overlay layer,你可以使用参数设置该层是否显示。Overlay layer在地图中的概念就像是(checkbox)多选框。

    以上概念你可以在OpenLayers提供的一个图层切换器上形象地看到。

示例1

    以下是一个包含两个图层和图层切换器的示例,该示例在base layer上加上了国家,城市,洲名层:

OpenLayers系列(2)多个图层

打开图层切换器:

OpenLayers系列(2)多个图层

示例1代码:



    <meta charset="utf-8">
   <title>My OpenLayers Map</title>
    <script type="text/javascript" src="OpenLayers.js"></script>
    <script type="text/javascript">

        var map;

       function init() {
	      map = new OpenLayers.Map('map_element', {});//初始化map对象
		  var wms_layer_map = new OpenLayers.Layer.WMS( //定义第一个层
			'Base layer',
			'http://vmap0.tiles.osgeo.org/wms/vmap0',
			{layers: 'basic'},//向map server请求basic层
			{isBaseLayer: true}//设置该层为basic层
		  );

		  var wms_layer_labels = new OpenLayers.Layer.WMS(//定义第二个层
			'Location Labels',
			'http://vmap0.tiles.osgeo.org/wms/vmap0',
			{layers: 'clabel,ctylabel,statelabel',
			transparent: true},
			{opacity: .5}//设置透明度为50%
		  );

		  map.addLayers([wms_layer_map, wms_layer_labels]);//以数组形式将多个层加入map对象

		  map.addControl(new OpenLayers.Control.LayerSwitcher({}));//添加一个层切换器

		  if(!map.getCenter()){
			  map.zoomToMaxExtent();
			}
       }

    </script>



    <div id="map_element" style="width: 500px; height: 500px;">
    </div>

登入後複製

示例2

示例2主要展示部分图层参数的效果,该示例一共有5个图层,第个图层有不同效果,可以不断放大查看。

OpenLayers系列(2)多个图层OpenLayers系列(2)多个图层

代码如下:



    <meta charset="utf-8">
   <title>My OpenLayers Map</title>
    <script type="text/javascript" src="OpenLayers.js"></script>
    <script type="text/javascript">

        var map;

       function init() {
	      map = new OpenLayers.Map('map_element', {});
		  var wms_layer_map = new OpenLayers.Layer.WMS(//base layer
			  'Base layer',
			  'http://vmap0.tiles.osgeo.org/wms/vmap0',
			  {layers: 'basic'},
			  {isBaseLayer: true}
			);

	      var wms_layer_labels = new OpenLayers.Layer.WMS(//国家,洲,城市名层
			  'Location Labels',
			  'http://vmap0.tiles.osgeo.org/wms/vmap0',
			  {layers: 'clabel,ctylabel,statelabel',
			  transparent: true},
			  {visibility: false, opacity:0.5}//默认不显示该层(但可以图层切换器中打开)
			);

         var wms_state_lines = new OpenLayers.Layer.WMS(//洲界层
			  'State Line Layer',
			  'http://labs.metacarta.com/wms/vmap0',
			  {layers: 'stateboundary',
				transparent: true},
			  {displayInLayerSwitcher: false,  //设置该层不显示在图层切换器中
			  minScale: 13841995.078125}//设置一个最小尺度,只有当地图在缩放时达到这个最小尺度时才显示该图层信息
			);

		 var wms_water_depth = new OpenLayers.Layer.WMS(
			 'Water Depth',
			 'http://labs.metacarta.com/wms/vmap0',
			 {layers: 'depthcontour',
			 transparent: true},
			 {opacity:0.8}
			);

		 var wms_roads = new OpenLayers.Layer.WMS(
			 'Roads',
			 'http://labs.metacarta.com/wms/vmap0',
			 {layers: 'priroad,secroad,rail',
			 transparent: true},
			 {transistionEffect:'resize'}//让该图层在缩放时呈现重新计算的效果
			);

		map.addLayers([
		  wms_layer_map,
		  wms_layer_labels,
		  wms_state_lines,
		  wms_water_depth,
		  wms_roads]);

		  map.addControl(new OpenLayers.Control.LayerSwitcher({}));

		  if(!map.getCenter()){
			  map.zoomToMaxExtent();
			}
       }

    </script>



    <div id="map_element" style="width: 500px; height: 500px;">
    </div>

登入後複製


   
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

比特幣今日價格行情 比特幣今日價格行情 Apr 28, 2025 pm 07:39 PM

比特幣今日價格波動受宏觀經濟、政策、市場情緒等多因素影響,投資者需關注技術和基本面分析以做出明智決策。

現貨王者轉型記:Gate.io MeMebox 2.0如何佈局下一代鏈上生態? 現貨王者轉型記:Gate.io MeMebox 2.0如何佈局下一代鏈上生態? Apr 28, 2025 pm 03:36 PM

Gate.io通過MeMebox 2.0實現了從現貨交易向鏈上生態的轉型。 1) 構建跨鏈基礎設施,支持12條主鏈互通;2) 打造DeFi應用生態,提供一站式服務;3) 實施激勵機制,重構價值分配。

比特幣值多少美金 比特幣值多少美金 Apr 28, 2025 pm 07:42 PM

比特幣的價格在20,000到30,000美元之間。 1. 比特幣自2009年以來價格波動劇烈,2017年達到近20,000美元,2021年達到近60,000美元。 2. 價格受市場需求、供應量、宏觀經濟環境等因素影響。 3. 通過交易所、移動應用和網站可獲取實時價格。 4. 比特幣價格波動性大,受市場情緒和外部因素驅動。 5. 與傳統金融市場有一定關係,受全球股市、美元強弱等影響。 6. 長期趨勢看漲,但需謹慎評估風險。

靠譜的數字貨幣交易平台推薦 全球十大數字貨幣交易所排行榜2025 靠譜的數字貨幣交易平台推薦 全球十大數字貨幣交易所排行榜2025 Apr 28, 2025 pm 04:30 PM

靠谱的数字货币交易平台推荐:1. OKX,2. Binance,3. Coinbase,4. Kraken,5. Huobi,6. KuCoin,7. Bitfinex,8. Gemini,9. Bitstamp,10. Poloniex,这些平台均以其安全性、用户体验和多样化的功能著称,适合不同层次的用户进行数字货币交易

如何選擇合規安全的比特幣交易平台 如何選擇合規安全的比特幣交易平台 Apr 28, 2025 pm 05:42 PM

選擇合規安全的比特幣交易平台需評估其監管許可、KYC/AML政策和安全措施,推薦Binance、OKX和gate.io三大平台。

歐易官網入口 歐易官方最新入口2025 歐易官網入口 歐易官方最新入口2025 Apr 28, 2025 pm 07:48 PM

選擇可靠的交易平台如歐易(OKEx),確保訪問官方入口。

安全靠譜的虛擬幣交易所平台top10  十大安全靠譜的數字貨幣app推薦 安全靠譜的虛擬幣交易所平台top10 十大安全靠譜的數字貨幣app推薦 Apr 28, 2025 pm 02:36 PM

安全靠譜的虛擬幣交易所平台top10:1. OKX,2. Binance,3. gate.io,4. Coinbase,5. Kraken,6. Huobi,7. KuCoin,8. Bitfinex,9. Bitstamp,10. Poloniex,各平台在交易產品、用戶體驗、安全性等方面表現突出,滿足不同投資者的需求。

免費炒幣看行情軟件推薦 好用的炒幣app排行榜前十 免費炒幣看行情軟件推薦 好用的炒幣app排行榜前十 Apr 28, 2025 pm 04:33 PM

推薦的炒幣看行情軟件前十名是:1. OKX,2. Binance,3. Coinbase,4. KuCoin,5. Huobi,6. Crypto.com,7. Kraken,8. Bitfinex,9. Bybit,10. Gate.io。這些app均提供實時的市場數據和交易工具,適合不同層次的用戶使用。

See all articles