2017-07-31 8 views
0

この例では、キャンバスにボタンのクリックイベントをバインドしてから、画像Exampleを返します。どのように私はそれを変更することができます、私はパーマリンクを持つコールopenlayersを使用すると、自動的に私にそのイメージを返しますか?私はC++のプログラムから画像を取得するための簡単なリクエストを使用したいと思います。私は を持っています。 "#map = 12/1085115.28/6035092.46/0"を解析パラメータとして使用します。何か案は? 感謝とご挨拶 メリナopenlayersのキャンバス(イメージ)を返す4

は、これまでのところ私は、あなたが何らかの形で画像としてマップをダウンロードするリンクを追加することはできません

<!DOCTYPE html> 
<html> 
    <head> 
    <title>OpenStreetMap</title> 
    <link rel="stylesheet" href="https://openlayers.org/en/v4.2.0/css/ol.css" type="text/css"> 
    <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --> 
    <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script> 
    <script src="https://openlayers.org/en/v4.2.0/build/ol.js"></script> 
    </head> 
    <body> 
    <div id="map" class="map"></div> 
    <script> 
     var center = [0,0]; 
     var zoom = 0; 
     var rotation = 0; 
     if (window.location.has !== '') 
     { 
     var hash = window.location.hash.replace('#map=', ''); 
     var parts = hash.split('/'); 
     console.log (parts); 
     if (parts.length === 4) 
     { 
      zoom = parseInt(parts[0],10); 
      center = [ 
      parseFloat(parts[1]), 
      parseFloat(parts[2]) 
      ]; 
      rotation = parseFloat(parts[3]); 
     var rotation = 0; 
     } 
    } 
     var openStreetMapLayer = new ol.layer.Tile({ 
     source: new ol.source.OSM({ 
      attributions: [ 
      'All maps © <a href="http://www.openstreetmap.org">openStreetMapLayer</a>', 
      ol.source.OSM.ATTRIBUTION 
      ], 
      opaque: false, 
     // url: '<myosmserver>/hot/{z}/{x}/{y}.png' 
     }) 
     }); 


     var map = new ol.Map({ 
     layers: [ 
      openStreetMapLayer 
     ], 
     target: 'map', 
     controls: ol.control.defaults({ 
      attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ 
      collapsible: false 
      }) 
     }), 
     view: new ol.View({ 
      maxZoom: 20, 
      center: center, 
      zoom: zoom 
     }) 
     }); 

    </script> 
    </body> 
</html> 

答えて

0

を解析パラメータを持っています。どこかにレンダリングする必要があります。

これは動作方法です。 Openlayersがマップをレンダリングすると、マップはHTMLキャンバス要素にレンダリングされます。ダウンロード機能はOpenlayers機能ではなく、HTMLキャンバス機能です。キャンバスには現在のキャンバスのスナップショットを取るAPIがあります。イメージとしてダウンロードできます。

マップをブラウザでレンダリングすることも、サーバー側でレンダリングすることもできます。私はOpenlayersマップをサーバー上でレンダリングしようとはしていませんが、可能でなければなりません。

関連する問題