SYNCERのロゴ
アイキャッチ画像

Map: gestureHandling

gestureHandlingはMapクラスのオプションです。スマートフォンなどにおけるタッチ操作を制御できます。具体的には、ドラッグ操作による地図の位置変更とピンチイン、ピンチアウトによるズーム操作が対象です。

string

下記のいずれかのキーワードを指定する。

"auto"
初期値。表示しているページがスクロールできる場合はcooperative、スクロールできない場合はgreedyが適用される。
"cooperative"
ドラッグ操作を二本指じゃないとできない。ページのスクロールを邪魔しない趣旨。
"greedy"
旧バージョンの仕様。一本指でドラッグ操作ができる。
"none"
ドラッグ操作と、ピンチイン、ピンチアウトによるズーム変更のどちらもできない。
var opts = {
	gestureHandling: "none" ,
} ;

デモ

各キーワードの動作確認をしてみて下さい。

auto

初期値。このページは高さがありスクロールできるので、"cooperative"が適用されます。

// <div id="map-canvas"></div>
var mapDiv = document.getElementById( "map-canvas" ) ;

var opts = {
	center: new google.maps.LatLng( 35, 139 ) ,
	zoom: 11 ,
	gestureHandling: "auto" ,
} ;

var map = new google.maps.Map( mapDiv, opts ) ;

cooperative

ドラッグ操作による地図の位置変更は二本指じゃないとできません。これにより、ページのスクロールで地図に引っかかることがなくなります。

// <div id="map-canvas"></div>
var mapDiv = document.getElementById( "map-canvas" ) ;

var opts = {
	center: new google.maps.LatLng( 35, 139 ) ,
	zoom: 11 ,
	gestureHandling: "cooperative" ,
} ;

var map = new google.maps.Map( mapDiv, opts ) ;

greedy

一本指で操作できます。ページスクロール中に地図に引っかかってしまうデメリットもあります。

// <div id="map-canvas"></div>
var mapDiv = document.getElementById( "map-canvas" ) ;

var opts = {
	center: new google.maps.LatLng( 35, 139 ) ,
	zoom: 11 ,
	gestureHandling: "greedy" ,
} ;

var map = new google.maps.Map( mapDiv, opts ) ;

none

ドラッグ操作と、ピンチイン、ピンチアウトによるズーム操作が無効になります。

// <div id="map-canvas"></div>
var mapDiv = document.getElementById( "map-canvas" ) ;

var opts = {
	center: new google.maps.LatLng( 35, 139 ) ,
	zoom: 11 ,
	gestureHandling: "none" ,
} ;

var map = new google.maps.Map( mapDiv, opts ) ;

サンプルコード

<!DOCTYPE html>
<html>
<head>
	<style>
#map-canvas {
	width: 600px ;
	height: 600px ;
}
	</style>
</head>
<body>
	<div id="map-canvas"></div>

	<script src="//maps.googleapis.com/maps/api/js?key={APIキー}"></script>
	<script>
var mapDiv = document.getElementById( "map-canvas" ) ;

var opts = {
	center: new google.maps.LatLng( 35, 139 ) ,
	zoom: 11 ,
	gestureHandling: "none" ,
} ;

var map = new google.maps.Map( mapDiv, opts ) ;
	</script>
</body>
</html>

デモページを開く

  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2015年9月1日 (火)
コンテンツを公開しました。