2014年7月3日木曜日

2 - ol3-beta.5ex 9b - Google Maps integration example 2

「google-map.js(209-ol3ex.js)」は、地図を表示するのに必要な javascript です。

「209-ol3ex.js」
var gmap = new google.maps.Map(document.getElementById('gmap'), {
// Google Map オブジェクト 以下、オプション
 disableDefaultUI: true, // デフォルトのUI(ユーザインターフェイス)の無効化
 keyboardShortcuts: false,
 draggable: false,
 disableDoubleClickZoom: true,
 scrollwheel: false,
 streetViewControl: false // ストリートビュー ペッグマン コントロール
});
var view = new ol.View2D();
view.on('change:center', function() {
// '.on()[jQuery]' 地図の中心が移動したとき関数が実行(中心座標を Google Map に設定)
 var center = ol.proj.transform(view.getCenter(), 'EPSG:3857', 'EPSG:4326');
 gmap.setCenter(new google.maps.LatLng(center[1], center[0]));
});
view.on('change:resolution', function() {
// '.on()[jQuery]' 解像度が変わったとき関数が実行(ズームを Google Map に設定)
 gmap.setZoom(view.getZoom());
});
var vector = new ol.layer.Vector({
 source: new ol.source.GeoJSON({
//  url: 'data/geojson/countries.geojson',
  url: 'v3.0.0-beta.5/examples/data/geojson/countries.geojson',
  projection: 'EPSG:3857'
 }),
 style: new ol.style.Style({
  fill: new ol.style.Fill({
   color: 'rgba(255, 255, 255, 0.6)'
  }),
  stroke: new ol.style.Stroke({
   color: '#319FD3',
   width: 1
  })
 })
});
var olMapDiv = document.getElementById('olmap');
var map = new ol.Map({
 layers: [vector],
 interactions: ol.interaction.defaults({
 // OpenLayers の interaction を制御
  altShiftDragRotate: false,
  pan: false,
  rotate: false
 }).extend([new ol.interaction.DragPan({kinetic: false})]),
 target: olMapDiv,
 view: view
});
view.setCenter([0, 0]);
view.setZoom(1);
olMapDiv.parentNode.removeChild(olMapDiv); // 要素の全ての子ノードを削除
gmap.controls[google.maps.ControlPosition.TOP_LEFT].push(olMapDiv);


292a-ol3ex.png

0 件のコメント: