最近、Web開発の勉強をし始めた者です。
Google Map APIの使い方を勉強していたのですが、描画するときの処理の書き方が2種類あるようなのですが、コードの意味がわからず、違いがよく分かりません。どなたかお分かりになる方いらっしゃったらよろしくお願いいたします。
Google APIのサイトにサンプルとして載っているコードでは、
HTMLのHEAD部分にスクリプトを記述するスタイルと、BODY部に記述するスタイルの2つが出ています。
動作の違いが分からないのでどちらをどういうときに採用するべきなのか判断できずにいます。
ヘッダに記述するスタイルでは元のinitMapをfunction(export)でラップ?しているようなのですが、よく意味が分かりません。
ヘッダに記述するスタイル
Javascript
1 <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&libraries=&v=weekly" 2 defer 3 ></script> 4 <script> 5 (function(exports) { 6 "use strict"; 7 8 function initMap() { 9 exports.map = new google.maps.Map(document.getElementById("map"), { 10 center: { 11 lat: -34.397, 12 lng: 150.644 13 }, 14 zoom: 8 15 }); 16 } 17 18 exports.initMap = initMap; 19 })((this.window = this.window || {})); 20 </script>
BODYに記述するスタイル
<script> function initMap() { // Create a new StyledMapType object, passing it an array of styles, // and the name to be displayed on the map type control. var styledMapType = new google.maps.StyledMapType( //中略 {name: 'Styled Map'}); // Create a map object, and include the MapTypeId to add // to the map type control. var map = new google.maps.Map(document.getElementById('map'), { center: {lat: 55.647, lng: 37.581}, zoom: 11, mapTypeControlOptions: { mapTypeIds: ['roadmap', 'satellite', 'hybrid', 'terrain', 'styled_map'] } }); //Associate the styled map with the MapTypeId and set it to display. map.mapTypes.set('styled_map', styledMapType); map.setMapTypeId('styled_map'); } </script>```Javascript
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script>
あなたの回答
tips
プレビュー