API 맵에 Macbox GL JS 맵 연동

개요

  • YOLP JavaScript API와 MapboxGL JS 두 장의 지도
  • 를 가로로 배열
  • YOLP JavaScript API의 지도를 굴러가거나 줄임자를 변경할 때 MapboxGL JS의 지도를 같은 방식으로 이동시킨다
  • 소스 코드

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset='utf-8' />
      <title>Twin maps</title>
      <script src="https://map.yahooapis.jp/js/V1/jsapi?appid=___YOUR_APPLICATION_ID___"></script>
      <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.2.1/mapbox-gl.js'></script>
      <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.2.1/mapbox-gl.css' rel='stylesheet' />
      <style>
        body  { position:absolute; margin:0; padding:0; width:100%; height:100%; }
        #ymap { position:absolute; top:0; left:0;   width:50%; height:100%; }
        #bmap { position:absolute; top:0; left:50%; width:50%; height:100%; }
      </style>
    </head>
    <body>
    
    <div id='ymap'></div>
    <div id='bmap'></div>
    
    <script>
    // YOLP 地図を表示
    var ymap = new Y.Map('ymap', {
      configure: {
        doubleClickZoom: true,
        scrollWheelZoom: true,
        continuousZoom: true
      }
    });
    ymap.drawMap(new Y.LatLng(35.1707925, 136.882763), 16, Y.LayerSetId.NORMAL);
    
    // YOLP 地図の移動後の処理
    ymap.bind('moveend', function(){
      // YOLP 地図の中心緯度経度に Mapbox 地図を移動 
      let c = ymap.getCenter();
      bmap.panTo(new mapboxgl.LngLat(c.lng(), c.lat()));
    });
    
    // YOLP 地図の縮尺変更後の処理
    ymap.bind('zoomend', function(){
      // YOLP 地図のズームレベルに Mapbox 地図を合わせる
      let z = ymap.getZoom();
      bmap.setZoom(z - 2); // ズームレベル数値が2段階ほどちがう
    });
    
    // Mapbox のアクセストークンをセット
    mapboxgl.accessToken = '___YOUR_MAPBOX_ACCESS_TOKEN___';
    
    // Mapbox 地図を表示
    var bmap = new mapboxgl.Map({
      container: 'bmap', // container id
      style: 'mapbox://styles/mapbox/streets-v11',
      center: [136.882763, 35.1707925],
      zoom: 14,
    });
    </script>
    
    </body>
    </html>
    

    캡처









    참고 자료

  • YOLP(지도): Yahoo!자바스크립트 맵 API-Yahoo, 완성!개발자 네트워크
  • API Reference | Mapbox GL JS | Mapbox
  • 좋은 웹페이지 즐겨찾기