ネコになって自由気ままに生きてみたいよねー

とりあえず何か書いていきたいと思っています。

google mapに文字などを表示させたい場合

google mapに文字を表示させる機会があったので書きます。

f:id:margaman:20140228153015j:plain

 

google mapに上記のように何か文字などを表示させるには html要素を生成してMap オ

ブジェクトの controls に表示する位置を指定します。(ようするにカスタムコントロー

ル)

 

function init() {

        var latlng = new google.maps.LatLng(26.212312, 127.679157);

        var options = {

              zoom: 13,

              center: latlng,

              mapTypeId: google.maps.MapTypeId.ROADMAP,

              zoomControl: false,

              navigationControl: true

        };

        var target = document.getElementById("map-canvas");

        var map = new google.maps.Map(target, options);

        var marker = new google.maps.Marker({

            map: map,

            clickable: true,

            position: latlng,

            draggable: false

        });

        var container = document.createElement('div');

        createContainer(container);

        map.controls[google.maps.ControlPosition.BOTTOM_RIGHT].push(container);

}

function createContainer(container) {

        container.style.margin = '10px';

        container.style.padding = '10px';

        container.style.border = '1px solid #000';

        container.style.background = '#FFF';

        container.innerText = "testtesttest";

}

 

 位置指定の種類 

参考:Google Maps Javascript API V3 Reference

google.maps.ControlPosition.BOTTOM_CENTER 

google.maps.ControlPosition.BOTTOM_LEFT

google.maps.ControlPosition.BOTTOM_RIGHT

google.maps.ControlPosition.LEFT_BOTTOM

google.maps.ControlPosition.LEFT_CENTER

google.maps.ControlPosition.LEFT_TOP

google.maps.ControlPosition.RIGHT_BOTTOM

google.maps.ControlPosition.RIGHT_CENTER

google.maps.ControlPosition.RIGHT_TOP

google.maps.ControlPosition.TOP_CENTER

google.maps.ControlPosition.TOP_LEFT

google.maps.ControlPosition.TOP_RIGHT

 

 google.maps.ControlPosition.BOTTOM_RIGHTと指定していますが、右下に表示されず

真ん中に表示されています。

これは、他のコントロールが表示されている位置に表示位置を指定した場合に正しく

表示されないこともあるようです。(上記の場合は右下に地図データ....があるた

めに表示されていなのかも)

 

まとめ

ほとんどこのような形で使うことはないと思います(普通はボタンなどを配置する

と思う)が、スマートフォンを使用して移動した距離を表示させる場合などには使える

のではないかと思います。