googlemapプラグインを使ってみる

301 Moved Permanently

 

ダウンロードして指示通りにプラグインをインストール

 

テンプレートに

GoogleMap を表示するための Javascript を埋め込みます。</head> の直前あたりに

 

<mt:Ignore><!–[GoogleMap]–></mt:Ignore>
<mt:IfBlogUseGoogleMap>
<script src=”http://maps.google.co.jp/maps?file=api&v=2&key=<$mt:GoogleMapApiKey$>” type=”text/javascript” charset=”utf-8″></script>
<script type=”text/javascript”>
//<![CDATA[
<mt:SetVarBlock name=”center_lat”><mt:IfNonEmpty tag=”EntryGoogleMapLat”><$mt:EntryGoogleMapLat$><mt:else><$mt:BlogGoogleMapDefaultLat$></mt:IfNonEmpty></mt:SetVarBlock>
<mt:SetVarBlock name=”center_lon”><mt:IfNonEmpty tag=”EntryGoogleMapLon”><$mt:EntryGoogleMapLon$><mt:else><$mt:BlogGoogleMapDefaultLon$></mt:IfNonEmpty></mt:SetVarBlock>
var mapId = “map”;
var streetViewId = “view”;
var map;
var view;

// show map
function mapLoad () {
    if (GBrowserIsCompatible()) {
        map = new GMap2( document.getElementById( mapId ) );
        map.setCenter( new GLatLng( <$mt:var name=”center_lat”$>, <$mt:var name=”center_lon”$> ), <$mt:BlogGoogleMapDefaultLevel$> );
        map.addControl( new GLargeMapControl() );
       
        // show cross
        var cross = document.createElement( “div” );
        var crossWidth = 23; // cross width(img)
        var crossHeight = 23; // cross height(img)
        var mapWidth = parseInt( map.getContainer().style.width );
        var mapHeight = parseInt( map.getContainer().style.height );
        var x = ( mapWidth – crossWidth ) / 2; // cross center(x)
        var y = ( mapHeight – crossHeight ) / 2;  // cross center(y)
        cross.style.position = “absolute”;
        cross.style.top = y+”px”;
        cross.style.left = x+”px”;
        cross.style.backgroundImage = “url( <$mt:staticwebpath$>plugins/GoogleMap/center.gif )”;
        cross.style.width = crossWidth+”px”;
        cross.style.height = crossHeight+”px”;
        cross.style.opacity = 0.5;
        map.getContainer().appendChild(cross);
        viewLoad( <$mt:var name=”center_lat”$>, <$mt:var name=”center_lon”$> );
       
        // event listener
        GEvent.addListener( map, ‘click’, mapClickEvent );
        GEvent.addListener( map, ‘move’, mapMoveEvent );
    }
}

// show street view
function viewLoad() {
    targetPoint  = new GLatLng( <$mt:var name=”center_lat”$>, <$mt:var name=”center_lon”$> );
    panoramaOptions  = { latlng:targetPoint };
    view = new GStreetviewPanorama( document.getElementById( streetViewId ), panoramaOptions );
       
    // event listener
    GEvent.addListener( view, “error”, handlePanoramaError );
    GEvent.addListener( view, “initialized”, handleViewInitialized );
}

// map event
function mapInit( lat, lon ) {
    if ( ! lat ) {
        lat = <$mt:var name=”center_lat”$>;
    }
    if ( ! lon ) {
        lon = <$mt:var name=”center_lon”$>;
    }
    map.setCenter( lat, lon );
}

function mapMoveEvent() {
    var xy = map.getCenter();
    if ( document.getElementById( “lat” ) ) {
        document.getElementById( “lat” ).value = xy.lat();
    }
    if ( document.getElementById( “lon” ) ) {
        document.getElementById( “lon” ).value = xy.lng();
    }
    viewInit( xy.lat(), xy.lng() );
}

function mapClickEvent( overlay, point ){
    map.setCenter( point );
    view.setLocationAndPOV( point );
}

// street view event
function viewInit( lat, lon ) {
    if ( ! lat ) {
        lat = <$mt:var name=”center_lat”$>;
    }
    if ( ! lon ) {
        lon = <$mt:var name=”center_lon”$>;
    }
    targetPoint  = new GLatLng( lat, lon );
    view.setLocationAndPOV( targetPoint );
}

function handleViewInitialized( location ) {
    map.setCenter(location.latlng);
}
   
function handlePanoramaError( errorCode ) {
  if ( errorCode == 600 ) {
    document.getElementById( streetViewId ).innerHTML = ‘<p style=”color:red;”>You cannot use street view in this area.</p>’;
    return;
  }
  if ( errorCode == FLASH_UNAVAILABLE ) {
    document.getElementById( streetViewId ).innerHTML = ‘<p style=”color:red;”>You cannnot use streew view by this browser.</p>’;
    return;
  }
}
//]]>
</script>
</mt:IfBlogUseGoogleMap>
<mt:Ignore><!–/[GoogleMap]–></mt:Ignore>

そして、

画面の読み込み時に GoogleMap が表示されるように、body タグに以下の属性を埋め込み

 

<mt:Ignore><!–/[GoogleMap]–></mt:Ignore>
<mt:IfBlogUseGoogleMap>
<body onload=”javascript:mapLoad();” onUnload=”javascript:GUnload()” id=”<$mt:BlogTemplateSetID$>” class=”<$mt:Var name=”body_class”$> <$mt:Var name=”page_layout”$>”>
<mt:else>
<body id=”<$mt:BlogTemplateSetID$>” class=”<$mt:Var name=”body_class”$> <$mt:Var name=”page_layout”$>”>
</mt:IfBlogUseGoogleMap>
<mt:Ignore><!–[GoogleMap]–></mt:Ignore>

あとは、表示部分です。ブログの詳細の本文に表示させるソースを組み込みます。

 

<mt:Ignore><!–[GoogleMap]–></mt:Ignore>
<mt:IfBlogUseGoogleMap>
<div id=”map” style=”width: 500px; height: 350px; border: 1px solid #ccc; margin-bottom: 20px;”></div>
<div id=”view” style=”width: 500px; height: 350px; border: 1px solid #ccc; margin-bottom: 20px;”></div>
</mt:IfBlogUseGoogleMap>
<mt:Ignore><!–/[GoogleMap]–></mt:Ignore>

 

これで記事に座標を入れれば出来上がりです。

 地図の座標取得ページ – ++RAIL+ さん

地図の座標取得ページ - ++RAIL+

コメント

タイトルとURLをコピーしました