[Google Maps Platform] APIの取得

2018年7月16日より、価格改定が行われ、(仕様は6月から)Google Maps API などが、Google Maps Platform に統合され、再び APIキーが必要になりました。また、無料版という概念がなくなり、一定のアクセス数までは無料なため、基本有料で、クレジットカードの登録が必要となり、ハードルが高くなりました。。。
https://cloud.google.com/maps-platform/?hl=ja
より、使ってみるを選択します。

  1. マップ(Maps)
  2. 経路(Routes)
  3. 場所 (Places)

これまで、有償だったサービスも統合されたので、3つの選択肢を選ぶことができます。ここでは、すべて選択します。(通常は必要なもののみチェックします)

次に、プロジェクトを作ります。「My Project」にし、なくなく同意します。

プロジェクト「My Project」にたいして、請求アカウントを登録します。

APIキーが発行されます。

URIなどで、APIキーを不正使用できないよう設定することができます。

また、無料枠を超えないようコンソールで制限をかけることもできます。

https://console.cloud.google.com/google/maps-apis/api-list?consoleUI=CLOUD&hl=ja

[GIS] 町丁目データの入手

無料の市区町村単位の行政区画データは、国土地理院の基盤地図情報:http://fgd.gsi.go.jp/download/があるが、
町丁目単位になると有料ばかり

http://arcgis.ezwords.net/kiji/s-stat_shape_download.html

に、無料データ入手方法が書いてあったのでメモ。

  1. http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.doへ行く
  2. 地図でみる統計(統計GIS)をクリック
  3. データダウンロードをクリック
  4. 平成17年国勢調査(小地域)をクリック
  5. 「世帯人員別一般世帯数」にチェック。次へをクリック
  6. 必要な地図をチェック
  7. 好みの形式(世界測地系平面直角座標系・Shape形式)をダウンロード

[GIS] 基盤地図情報

ArcGISなどのGISソフトでは、国土地理院の基盤地図情報を扱うことができる。

  1. +[[国土地理院基盤地図情報サイト:http://www.gsi.go.jp/kiban/へアクセスします。
  2. 基盤地図情報ダウンロードサービスを利用するためには、ユーザー登録が必要になりました。ユーザー登録後、ログインしてください。
  3. アンケート画面で、利用目的を答えます。
  4. 必要な地図を選びます。ここでは、説明用として基盤地図情報縮尺レベル25000(JPGIS形式)を選びます。(GML形式には対応していない)
  5. 地図を選択します。(選択を増やすとファイルサイズが大きくなります。)
  6. 選択したら「選択して次へ」を選択します。
  7. [全てチェック」を選択し、「まとめてダウンロード」を選択します。
  8. PackDLMap.zipがダウンロードされます。
  9. ZIPファイルを展開します。

ArcGIS国内データ変換ツールを使う場合

ArcGIS10.0以降では、国内データ変換ツールを使ってArcGISのシェープファイルに変換することができます。

  1. ArcGISを起動します。
  2. ArcToolboxを選択し、「変換ツール(国内データ)」-「基盤地図情報」から「基盤地図情報のインポート(Import)」を選択します。
  3. 入力ファイルでxmlファイルを選択します。
  4. 出力ジオデータベースにフォルダを指定します。
  5. OKを押すと変換されるはず。。。できない。。

 

国土地理院基盤地図情報閲覧コンバートソフトを使う場合

  1. http://fgd.gsi.go.jp/download/ から、基盤地図情報閲覧コンバートソフトをダウンロードして展開します。
  2. 新規プロジェクトを選択し、xmlファイルを選択します。
  3. 「OK」を押します。
  4. 地図が読み込まれます。
  5. エクスポートからエクスポートを選択し、全てを選択します。
  6. 出力フォルダを選択します。
  7. 「OK」を選択します。
  8. 変換が終わるまでしばらく待ちます。(PCの能力に応じます。私のマシン)Core2Duo2.33Ghzで福岡県25000行政区画で40-かかりました。)

[Google Maps Api] 現在地を表示する

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0px; padding: 0px }
  #map_canvas { height: 100% }
</style>
<script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
 var initialLocation = new google.maps.LatLng(35.65861, 139.745447);
 var browserSupportFlag =  new Boolean();

 function initialize() {
  var myOptions = {
    zoom: 16,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  
  // Try W3C Geolocation (Preferred)
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new  google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
  var beachMarker = new google.maps.Marker({
      position: initialLocation,
      map: map,
  });
 
 
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  // Browser doesn't support Geolocation
  } else {
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
  
  function handleNoGeolocation(errorFlag) {
    if (errorFlag == true) {
      alert("GPS信号を受信しませんでした.");
    } else {
      alert("このブラウザは現在地表示に対応していません。");
    }
    map.setCenter(initialLocation);
  }

  var beachMarker = new google.maps.Marker({
      position: initialLocation,
      map: map,
  });
  
 }
  
 </script>
 </head>
 <body onload="initialize()">
   <div id="map_canvas" style="width:100%; height:100%"></div>
 </body>
</html>

 

[Google Maps Platform] 特定の場所をGoogle Mapで表示する

https://developers.google.com/maps/documentation/javascript/tutorial?hl=ja を参照。

再び、APIキーが必要となりました。

日本文理大学の位置を表示します。

http://www.geocoding.jp/ などで、日本文理大学の緯度経度を調べます。

地図中央値(WGS84) 緯度: 33度13分52.258秒(33.231183) 経度: 131度43分27.688秒(131.724358) OLC: 8Q5H6PJF+FP

TeraPad、秀丸エディタなど、文字コード UTF-8 に対応したテキストエディタを使って HTMLファイルを作成します。ファイルの文字コードはUTF-8で保存します。

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>
      var map;
      function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: 33.135258 , lng: 131.4327688},
          zoom: 8
        });
      }
    </script>
    <script src="https://maps.googleapis.com/maps/api/js?key=取得した
APIキー&callback=initMap"
    async defer></script>
  </body>
</html>