基礎の基礎。ただマップに地図を表示するだけ。
たったそれだけでも、会社概要に掲載する地図が作れるもんね。カンタン、カンタン。
まずはHTML要素として、地図を表示するためのDIVを配置。あとでJavaScriptからコントロールするので、適当にIDを振っておきましょう。
<input type="text" name="address" id="address" value="東京都港区芝公園4-2-8">
<button type="button" id="submit-geocoding">緯度経度を取得</button>
<textarea id="result-geocoding">ここにレスポンス(JSON)が表示されます</textarea>
<script type="text/javascript">
function initMap() {
var geocoder = new google.maps.Geocoder;
document.getElementById("submit-geocoding").addEventListener("click", function() {
geocodeAddress(geocoder);
});
}
<div id="map-canvas" class="map-canvas" style="width:640px;height:480px;"></div>ここでワンポイント! 地図を表示するためのボックス(この場合は div#map-canvas)に height が未設定だと、0pxのボックスになっちゃいます。忘れずに設定しましょう。今回は style 属性で指定していますが、CSSに記述するほうがスマートです。
それからあとは、JavaScriptで。
下のコードでGoogle Maps APIを呼び出します。
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>YOUR_API_KEY という部分は、Maps JavaScript API を利用する上で必要な API キーです。
取得に関しては、公式ドキュメントの キーの取得、認証 を参照してください。
で、この末尾にある callback=initMap という部分が、「API が読み込み完了したら、initMap という関数を実行してね」って意味です。
というわけで、地図を描画するための関数 initMap を作成しましょう。ざっくり以下のとおり。
function initMap(lat, lng, mapBox, draggable) {
var myLatlng = {lat: 35.658620, lng: 139.745417};
var map = new google.maps.Map(document.getElementById("map-canvas"), {
zoom: 16,
center: myLatlng,
});
var marker = new google.maps.Marker({
}これで地図が表示されます。
マーカーを1つだけ追加するには、var marker = ... で始まる4行を追加してください。
function initMap(lat, lng, mapBox, draggable) {
var myLatlng = {lat: 35.658620, lng: 139.745417};
var map = new google.maps.Map(document.getElementById("map-canvas"), {
zoom: 16,
center: myLatlng,
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map
});
}これまでに書いたコードをまとめると以下のとおり。
<div id="map-canvas" class="map-canvas" style="width:640px;height:480px;"></div>
<script type="text/javascript">
function initMap(lat, lng, mapBox, draggable) {
var myLatlng = {lat: 35.658620, lng: 139.745417};
var map = new google.maps.Map(document.getElementById("map-canvas"), {
zoom: 16,
center: myLatlng,
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>以上で完了。カンタンでしょ?