センサーのパラメータ指定

広告

Google Maps APIを使用するのに必要なJavaScriptコードを読み込む時、パラメータとしてAPIキーの他にsensorパラメータが必須となっています。このsensorパラメータについて簡単に説明しておきます。

1.sensorパラメータとは
2.サンプルコード

地図を使ったサイトを作成する場合、利用者の位置情報を使用することがあります。位置情報を使うには利用者側のセンサー(GPSなど)を使用しますが、現在のGoogle Maps APIではこのセンサーを利用するかどうかを明示的に指定する必要があります。

必要なJavaScriptコードの読み込みは次のように行っています。

<script type="text/javascript"
  src="http://maps.googleapis.com/maps/api/js?key=(APIキー)&sensor=(true or false)">
</script>

パラメータとして指定している「sensor」は必須であり、ドキュメントでは次のように解説されています。

URL の sensor パラメータは必須です。このアプリケーションがユーザーの位置情報を取得するのにセンサー(GPS など)を使用するかどうかを示します。この例では、パラメータの値を true または false に明示的に設定する必要があることを強調するために、set_to_true_or_false を変数のままにしています。

Google Maps APIを使って作成するアプリケーションが位置情報を取得する必要がある場合はtrue、そうでない場合はfalseを指定して下さい。sensorを使用する例については別のページで解説します。

では実際に試してみます。今回は「sensor」パラメータを省略した場合にどのようになるのかだけを確認してみます。

function initialize() {
  var latlng = new google.maps.LatLng(34.687146,135.52597);
  var opts = {
    zoom: 15,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), opts);
}
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="robots" content="noindex,nofollow,noarchive" />
    <title>Google Maps サンプル</title>

    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?amp;key=(APIキー)">
    </script>

    <script src="./js/code4_1.js" type="text/javascript"></script>

  </head>
  <body onload="initialize()">
    <p>自宅の地図です。</p>

    <div id="map_canvas" style="width:500px; height:300px"></div>

  </body>
</html>

ブラウザでWebページを開くと次のように表示されます。

p4-1

このように「sensor」パラメータが指定されていないと「Google Maps API サーバーでリクエストが拒否されました。リクエスト内で指定した「sensor」パラメータには「true」または「false」のいずれかを指定する必要があります。」といったエラーが表示されます。センサーを使わない場合でも必ず「sensor=false」は必ず記述して下さい。

( Written by Tatsuo Ikura )