matometaru
12/9/2016 - 1:16 AM

Google Maps API

Google Maps API

https://developers.google.com/maps/documentation/javascript/3.exp/reference?hl=ja#MapOptions
https://syncer.jp/google-maps-javascript-api-matome
http://www.webdesignleaves.com/wp/htmlcss/641/

/*! 必須作成インスタンス
=========================================== */
// 1.座標
var latlng = new google.maps.LatLng( 26.350425 , 126.771183 );
// 2.地図
var map = new google.maps.Map(id, mapOptions);
// 3.ピン(オプションのmapでどの地図にmakerを建てるか決めるので地図の次)
var marker = new google.maps.Map(markerOptions);

/*! Mapクラスのオプション
=========================================== */
var id = document.getElementById('map-kumejima');
var latlng = new google.maps.LatLng( 26.350425 , 126.771183 );
/*! Mapクラスのオプション
=========================================== */
var mapOptions = {
    backgroundColor:            '#ddd',                     // 背景色
    center:                     latlng ,                    // 中心座標 [latlng]
    clickableIcons:             false,                      // clickで情報ウィンドウを表示
    disableDefaultUI:           true,                       // 全てのコントロールを無効化
    disableDoubleClickZoom:     false,                      // ダブルクリックでズームを無効化
    draggable:                  true,                       // ドラッグ
    draggableCursor:            url(../img/draggable.png),  // 地図上にてカーソルを変更する
    draggingCursor:             url(../img/draggable.png),  // ドラッグ時のカーソルを変更する
    fullscreenControl:          true,                       // フルスクリーンコントローラー表示
    fullscreenControlOptions:   { postion: google.maps.ControlPosition.RIGHT_BOTTOM },
    gestureHandling:            'auto',                     // cooperative,greedy(2本指操作解除),none
    heading:                    270,                        // 地図タイプが航空写真で、さらに、角度変更に対応している地域でのみ、有効です。
    keyboardShortcuts:          true,                       // キーボードのキーで操作
    mapTypeControl:             false,                      // マップタイプ切替コントローラの表示
    mapTypeControlOptions:      {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, //マップタイプのスタイル設定
    mapTypeId:                  google.maps.MapTypeId.SATELLITE,         //デフォルトはROADMAP
    maxZoom:                    21,                         // 0~21
    minZoom:                    1,                          // 0~21
    noClear:                    true,                       // id内の中の要素をmap生成時に消さない
    panControl:                 true,                       // パンコントロールを表示
    panControlOptions:          { postion: google.maps.ControlPosition.RIGHT_BOTTOM },
    rotateControl:              true,                       // 回転コントロールを表示(ストリートビューモード)
    rotateControlOptions:       { position: google.maps.ControlPosition.RIGHT_BOTTOM },
    scaleControl:               true,                       // スケールコントロールを表示
    scaleControlOptions:        { position: google.maps.ControlPosition.RIGHT_BOTTOM },
    scrollwheel:                true,                       // マウスのホイール操作で縮尺を変更する
    signInControl:              true,                       // サインインコントロールを表示
    streetView:                 google.maps.StreetViewPanorama(), //
    streetViewControl:         true,                       // ペグマンの表示
    streetViewControlOptions:   { position: google.maps.ControlPosition.RIGHT_BOTTOM },
    styles:                     [{featureType: "all",elementType: "all",stylers: [{ hue: "#00ffcc" }]}];, //stylesOption 長くなるので変数で設定する
    tilt:                       10,                         // 角度を数値で指定
    zoom:                       15 ,                        // ズーム値
    zoomControl:                true,                       // Zoomコントロール表示
    zoomControlOptions:         { position: google.maps.ControlPosition.RIGHT_BOTTOM },
};
var map = new google.maps.Map(id, mapOptions);

/*! Mapクラスのメソッド
=========================================== */
var map = new google.maps.Map(id, mapOptions);
map.fitBounds()
map.getCenter()
map.getZoom()
map.panBy() // 指定したピクセル分だけ現在の中心座標から移動する。
map.panBy()
map.panTo(new google.maps.LatLng(35.173889, 136.908357));



/*! Markerクラスのオプション
=========================================== */
var markerOptions = {
    map: map,   // google.maps.Mapで作成したインスタンス
    position: latlng,

}

/*! Markerクラスのメソッド
=========================================== */
var marker = new google.maps.Map(markerOptions);



/*! よくあるカスタム例
================================================================================================================================= */


/*! 複数の地図を管理する
=========================================== */
// 変数管理
$(function(){
    createMap('mapField01', 26.350425, 126.771183, '久米島', '<p class="map-txt">久米島</p>');
    createMap('mapField02', 34.1, 135.5, 'test', '<p class="map-txt"></p>');
    createMap('mapField03', 35.1, 136.8, 'test', '<p class="map-txt"></p>');
});
// 表示用
function createMap(id, lat, lng, title, content) {
    var centerPosition = new google.maps.LatLng(lat, lng);
    var option = {
        zoom : zoom_size,
        center : centerPosition,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    };
    //地図本体描画
    var googlemap = new google.maps.Map(document.getElementById(id), option);
    //マーカーオプションの指定
    var markerOption = {
        position : centerPosition,
        map : googlemap,
        title : title
    };
    //マーカー追加
    var marker = new google.maps.Marker(markerOption);
    //情報ウインドウオプションの指定
    var infoWindowOption = {
        position : centerPosition,
        pixelOffset: new google.maps.Size(0, -40),
        content : content
    };

    //情報ウインドウ追加
    var infoWindow = new google.maps.InfoWindow(infoWindowOption);
    infoWindow.open(googlemap);
}

/*! resizeで中央を保つ
=========================================== */
$(window).on({
    resize:function(){
        map.panTo(latlng);//既にLatLngインスタンスを作成している場合
        // map.panTo(new google.maps.LatLng(35.173889, 136.908357));
    },
});
<div class="map-wrap">
	<div id="map-kumejima" class="map"></div>
</div>
.map-wrap {
	max-width: 100%;
	width: 100%;
	padding-top: 50%; /* 幅:高さ = 2:1 の地図 */
	height: 0 ;
	margin: 0 ;
	position: relative;
}
.map {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}