ステップ0:パッケージの読み込み

library(sf)
library(tidyverse)
library(ggplot2)
library(openxlsx)
library(ggspatial)
library(mapview)
library(nngeo)
mapview::mapviewOptions(fgb=FALSE)

ステップ1:保育所のジオコーディング

省略.

ステップ2:港区の小地域境界と背景地図の追加

予め,全ての統計データ・境界データを読み込む.

#東京都港区の認可保育園等一覧データに座標値を付与したデータ
hoiku_minato_xy <- openxlsx::read.xlsx(xlsxFile="hoiku_minato_xy.xlsx",sheet="hoiku_minato") %>%
  #変数名が半角数字で始まっていると扱いにくいので,「歳」で終る変数名について,頭に「num_」という文字列を付ける
  dplyr::rename_with(~paste0("num_",.),ends_with("歳"))
#データの先頭行を表示
head(hoiku_minato_xy)
##                     住所           保育園名                           所在地
## 1     東京都港区芝5-18-1           芝保育園                     芝5-18-1-101
## 2 東京都港区浜松町 1-6-7         神明保育園 浜松町 1-6-7\r\nプラザ神明1~3階
## 3  東京都港区芝公園2-7-3       芝公園保育園                      芝公園2-7-3
## 4    東京都港区芝2-12-16 アスク芝公園保育園                        芝2-12-16
## 5   東京都港区三田1-2-18 太陽の子三田保育園    三田1-2-18\r\nTTD PLAZAビル2階
## 6   東京都港区三田1-3-31   あい保育園赤羽橋    三田1-3-31\r\nForecast三田2階
##   num_0歳 num_1歳 num_2歳 num_3歳 num_4歳 num_5歳  計     経度     緯度
## 1      20      28      30      30      30      30 168 139.7478 35.64837
## 2      21      29      30      30      30      30 170 139.7575 35.65882
## 3      16      22      26      30      30      30 154 139.7506 35.65422
## 4       6      10      10      11      11      12  60 139.7525 35.65155
## 5      10      12      12      12      12      12  70 139.7406 35.65509
## 6       6      12      12      10      10      10  60 139.7435 35.65458
#東京都港区の境界データ
minato_boundary <- sf::st_read(dsn="minato_boundary.shp",
                               stringsAsFactors=FALSE,
                               quiet=TRUE,
                               options="ENCODING=UTF-8")
head(minato_boundary)
## Simple feature collection with 1 feature and 35 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: -11280.19 ymin: -41831.35 xmax: -4649.14 ymax: -35206.84
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##      KEY_CODE PREF CITY S_AREA PREF_NAME CITY_NAME   S_NAME KIGO_E HCODE
## 1 13103001001   13  103 001001    東京都      港区 芝1丁目   <NA>  8101
##       AREA PERIMETER H27KAxx_ H27KAxx_ID KEN KEN_NAME SITYO_NAME GST_NAME
## 1 68807.76  1230.141     4364       4363  13   東京都       <NA>     港区
##   CSS_NAME KIHON1 DUMMY1 KIHON2  KEYCODE1  KEYCODE2 AREA_MAX_F KIGO_D N_KEN
## 1     <NA>   0010      -     01 103001001 103001001          M   <NA>  <NA>
##   N_CITY KIGO_I     MOJI KBSUM JINKO SETAI   X_CODE   Y_CODE  KCODE1
## 1   <NA>   <NA> 芝1丁目    24  1539   925 139.7547 35.65104 0010-01
##                         geometry
## 1 POLYGON ((-9655.132 -40791....
#東京都港区境界から1km以内の駅データ
station_minato_1kmbuf_rp <- sf::st_read(dsn="station_minato_1kmbuf_rp.shp",
                                        stringsAsFactors=FALSE,
                                        quiet=TRUE,
                                        options="ENCODING=UTF-8")
head(station_minato_1kmbuf_rp)
## Simple feature collection with 6 features and 5 fields
## Geometry type: LINESTRING
## Dimension:     XY
## Bounding box:  xmin: -6658.395 ymin: -42430.44 xmax: -3743.694 ymax: -37354.88
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##   N02_001 N02_002              N02_003    N02_004                    N02_005
## 1      24       5 東京臨海新交通臨海線 ゆりかもめ             お台場海浜公園
## 2      24       5 東京臨海新交通臨海線 ゆりかもめ 東京国際クルーズターミナル
## 3      24       5 東京臨海新交通臨海線 ゆりかもめ           テレコムセンター
## 4      24       5 東京臨海新交通臨海線 ゆりかもめ                       汐留
## 5      24       5 東京臨海新交通臨海線 ゆりかもめ                       台場
## 6      24       5 東京臨海新交通臨海線 ゆりかもめ           東京ビッグサイト
##                         geometry
## 1 LINESTRING (-4995.478 -4109...
## 2 LINESTRING (-5435.78 -42036...
## 3 LINESTRING (-4830.43 -42389...
## 4 LINESTRING (-6606.741 -3735...
## 5 LINESTRING (-5643.361 -4152...
## 6 LINESTRING (-3743.694 -4098...

港区の境界データとOSMから得られる背景地図を重ねてプロット.

ggplot2::ggplot() +
  #背景にOSMのタイルを読み込み
  ggspatial::annotation_map_tile(zoom=13) +
  #境界データをプロット
  ggplot2::geom_sf(data=minato_boundary,
                   #透明で塗りつぶし
                   fill="transparent",
                   #ポリゴン縁の色は青
                   color="blue",
                   #ポリゴン縁の太さは2
                   size=2)

ステップ3:緯度・経度からポイントデータを作成

まずは,緯度・経度から保育園ポイントデータを作成.

#緯度・経度からポイントデータを作成
hoiku_minato_point <- hoiku_minato_xy %>%
  #位置座標を表す変数を指定
  sf::st_as_sf(coords=c("経度","緯度"),
               #位置座標が基づいている座標系(WGS84)を指定
               crs=sf::st_crs(4326)) %>%
  #座標系をWGS84からJGD2011に投影変換
  sf::st_transform(crs=sf::st_crs(6668)) %>%
  #座標系を地理座標系(JGD2011)から投影座標系(平面直角座標系第9系)に投影変換
  sf::st_transform(crs=sf::st_crs(6677))
head(hoiku_minato_point)
## Simple feature collection with 6 features and 10 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -8397.141 ymin: -39007.65 xmax: -6862.163 ymax: -37849.48
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##                     住所           保育園名                           所在地
## 1     東京都港区芝5-18-1           芝保育園                     芝5-18-1-101
## 2 東京都港区浜松町 1-6-7         神明保育園 浜松町 1-6-7\r\nプラザ神明1~3階
## 3  東京都港区芝公園2-7-3       芝公園保育園                      芝公園2-7-3
## 4    東京都港区芝2-12-16 アスク芝公園保育園                        芝2-12-16
## 5   東京都港区三田1-2-18 太陽の子三田保育園    三田1-2-18\r\nTTD PLAZAビル2階
## 6   東京都港区三田1-3-31   あい保育園赤羽橋    三田1-3-31\r\nForecast三田2階
##   num_0歳 num_1歳 num_2歳 num_3歳 num_4歳 num_5歳  計
## 1      20      28      30      30      30      30 168
## 2      21      29      30      30      30      30 170
## 3      16      22      26      30      30      30 154
## 4       6      10      10      11      11      12  60
## 5      10      12      12      12      12      12  70
## 6       6      12      12      10      10      10  60
##                      geometry
## 1 POINT (-7745.588 -39007.65)
## 2 POINT (-6862.163 -37849.48)
## 3 POINT (-7487.781 -38359.86)
## 4 POINT (-7316.257 -38655.56)
## 5 POINT (-8397.141 -38262.31)
## 6 POINT (-8130.535 -38319.25)

保育園ポイントデータを境界データ・背景地図と共にプロット.

ggplot2::ggplot() +
  #背景にOSMのタイルを読み込み
  ggspatial::annotation_map_tile(zoom=13) +
  #境界データをプロット
  ggplot2::geom_sf(data=minato_boundary,
                   #透明で塗りつぶし
                   fill="transparent",
                   #ポリゴン縁の色は青
                   color="blue",
                   #ポリゴン縁の太さは2
                   size=2) +
  #保育園ポイントデータ
  ggplot2::geom_sf(data=hoiku_minato_point,
                   #ポリゴン縁の色は紫
                   color="purple")

空間データの可視化には,ggplot2パッケージの他に,例えばmapviewパッケージが利用できる.mapviewは手の込んだ地図を作るのには不向きな一方,複数の背景地図を切り替えたり,空間データをインタラクティブに参照可能(例えば,地図上のプロットをクリックすると属性を表示できる)であるという点で利点を持つ.
ggplot2を用いて作成した地図になるべく近い地図をmapviewで作成すると以下のようになる.

#境界データ
mapview::mapview(x=minato_boundary,
                 #透明で塗りつぶし
                 col.region="transparent",
                 #不透明度0%
                 alpha.regions=0,
                 #ポリゴン縁の色は青
                 color="blue",
                 #ポリゴン縁のサイズは2
                 lwd=2,
                 #凡例を表示しない
                 legend=FALSE) +
  #保育園ポイントデータ
  mapview::mapview(x=hoiku_minato_point,
                   #ポイントの色は紫
                   col.region="purple",
                   #不透明度100%
                   alpha.regions=1,
                   #レイヤ名を「Kindergarten」と設定
                   layer.name="Kindergarten")

ステップ4:1歳児の定員でポイントの大きさを変える

ggplot2::ggplot() +
  #背景にOSMのタイルを読み込み
  ggspatial::annotation_map_tile(zoom=13) +
  #境界データをプロット
  ggplot2::geom_sf(data=minato_boundary,
                   #透明で塗りつぶし
                   fill="transparent",
                   #ポリゴン縁の色は青
                   color="blue",
                   #ポリゴン縁の太さは2
                   size=2,
                   #凡例を表示しない
                   legend=FALSE) +
  #保育園ポイントデータ(変数num_1歳の値に応じてポイントの大きさを変える)
  ggplot2::geom_sf(data=hoiku_minato_point,
                   #ポイントの大きさを規定する変数(今回はnum_1歳)をaesで囲んで指定
                   aes(size=num_1歳),
                   #ポイントの色は赤
                   color="red", 
                   #不透明度40%
                   alpha=0.4) +
  #保育園ポイントデータ
  ggplot2::geom_sf(data=hoiku_minato_point,
                   #ポイントの色は紫
                   color="purple") +
  #日本語が文字化けしない為の設定(Windowsで実行する際は不要)
  ggplot2::theme_gray(base_family="HiraKakuPro-W3")

ステップ5:地物情報の表示

地物情報をインタラクティブに確認するには,mapviewの方が適しているので,ggplot2で作った地図と同様のものをmapviewで作成する.

#境界データ
mapview::mapview(x=minato_boundary,
                 #透明で塗りつぶし
                 col.region="transparent",
                 #不透明度0%
                 alpha.regions=0,
                 #ポリゴン縁の色は青
                 color="blue",
                 #ポリゴン縁のサイズは2
                 lwd=2,
                 #凡例を表示しない
                 legend=FALSE) +
  #保育園ポイントデータ(変数num_1歳の値に応じてポイントの大きさを変える)
  mapview::mapview(x=hoiku_minato_point,
                   #ポイントの色は赤
                   col.region="red",
                   #大きさは変数num_1歳の値に応じて変わる
                   cex=hoiku_minato_point$num_1歳,
                   #凡例を表示しない
                   legend=FALSE) +
  #保育園ポイントデータ
  mapview::mapview(x=hoiku_minato_point,
                   #ポイントの色は紫
                   col.region="purple",
                   #不透明度100%
                   alpha.regions=1,
                   #レイヤ名を「Kindergarten」と設定
                   layer.name="Kindergarten")

ステップ6:駅のポイントデータの作成

現状ラインデータになっている駅データについて,ラインの重心点を取ってポイントデータに変換する.

station_minato_point <- sf::st_centroid(x=station_minato_1kmbuf_rp)

駅のポイントデータを追加した地図をプロット.

ggplot2::ggplot() +
  #背景にOSMのタイルを読み込み
  ggspatial::annotation_map_tile(zoom=13) +
  #境界データをプロット
  ggplot2::geom_sf(data=minato_boundary,
                   #透明で塗りつぶし
                   fill="transparent",
                   #ポリゴン縁の色は青
                   color="blue",
                   #ポリゴン縁の太さは2
                   size=2,
                   #凡例を表示しない
                   legend=FALSE) +
  #保育園ポイントデータ
  ggplot2::geom_sf(data=hoiku_minato_point,
                   #ポイントの色は紫
                   color="purple") +
  #駅のポイントデータ
  ggplot2::geom_sf(data=station_minato_point)

ステップ7:駅から400m圏内の保育所

各駅ポイントから400mのバッファを生成する.

#駅ポイントから400mのバッファを生成する
station_minato_400mbuf <- sf::st_buffer(x=station_minato_point,dist=400)

保育園ポイントと駅400mバッファの共通部分を取る.

#駅400mバッファを融合し,バッファ間のダブりを除く
station_minato_400mbuf_diss <- station_minato_400mbuf %>%
  dplyr::mutate(key=1) %>%
  dplyr::group_by(key) %>%
  dplyr::summarise()
#保育園ポイントと融合した駅400mバッファの共通部分を取る
hoiku_minato_point_near_station <- sf::st_intersection(x=hoiku_minato_point,
                                                       #今回はバッファの属性をポイントに付与しないので,geometry属性のみ取り出し
                                                       y=sf::st_geometry(station_minato_400mbuf_diss))

駅から400m以内の保育園ポイントデータを,その他空間データと共にプロット.

ggplot2::ggplot() +
  #背景にOSMのタイルを読み込み
  ggspatial::annotation_map_tile(zoom=13) +
  #駅400mバッファ
  ggplot2::geom_sf(data=station_minato_400mbuf,
                   #ポイントの色は紫
                   fill="red",
                   alpha=0.2,
                   size=0.25) +
  #境界データをプロット
  ggplot2::geom_sf(data=minato_boundary,
                   #透明で塗りつぶし
                   fill="transparent",
                   #ポリゴン縁の色は青
                   color="blue",
                   #ポリゴン縁の太さは2
                   size=2,
                   #凡例を表示しない
                   legend=FALSE) +
  #保育園ポイントデータ
  ggplot2::geom_sf(data=hoiku_minato_point,
                   #ポイントの色は紫
                   color="purple") +
  #駅から400m以内の保育園ポイントデータ
  ggplot2::geom_sf(data=hoiku_minato_point_near_station,
                   #ポイントの色は紫
                   color="yellow")

ステップ8:保育所から最寄り駅までの距離の計算と基本統計量

駅ポイント・保育園ポイントのそれぞれについて,XY座標の変数を作成.

station_minato_point <- station_minato_point %>%
  dplyr::mutate(X_sta=sf::st_coordinates(.)[,"X"],
                Y_sta=sf::st_coordinates(.)[,"Y"])
head(station_minato_point)
## Simple feature collection with 6 features and 7 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -6632.568 ymin: -42409.93 xmax: -3807.114 ymax: -37387.58
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##   N02_001 N02_002              N02_003    N02_004                    N02_005
## 1      24       5 東京臨海新交通臨海線 ゆりかもめ             お台場海浜公園
## 2      24       5 東京臨海新交通臨海線 ゆりかもめ 東京国際クルーズターミナル
## 3      24       5 東京臨海新交通臨海線 ゆりかもめ           テレコムセンター
## 4      24       5 東京臨海新交通臨海線 ゆりかもめ                       汐留
## 5      24       5 東京臨海新交通臨海線 ゆりかもめ                       台場
## 6      24       5 東京臨海新交通臨海線 ゆりかもめ           東京ビッグサイト
##                      geometry     X_sta     Y_sta
## 1 POINT (-4963.765 -41069.71) -4963.765 -41069.71
## 2  POINT (-5455.868 -42006.6) -5455.868 -42006.60
## 3 POINT (-4861.694 -42409.93) -4861.694 -42409.93
## 4 POINT (-6632.568 -37387.58) -6632.568 -37387.58
## 5 POINT (-5612.098 -41505.88) -5612.098 -41505.88
## 6 POINT (-3807.114 -41025.35) -3807.114 -41025.35
hoiku_minato_point <- hoiku_minato_point %>%
  dplyr::mutate(X_h=sf::st_coordinates(.)[,"X"],
                Y_h=sf::st_coordinates(.)[,"Y"])
head(hoiku_minato_point)
## Simple feature collection with 6 features and 12 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -8397.141 ymin: -39007.65 xmax: -6862.163 ymax: -37849.48
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##                     住所           保育園名                           所在地
## 1     東京都港区芝5-18-1           芝保育園                     芝5-18-1-101
## 2 東京都港区浜松町 1-6-7         神明保育園 浜松町 1-6-7\r\nプラザ神明1~3階
## 3  東京都港区芝公園2-7-3       芝公園保育園                      芝公園2-7-3
## 4    東京都港区芝2-12-16 アスク芝公園保育園                        芝2-12-16
## 5   東京都港区三田1-2-18 太陽の子三田保育園    三田1-2-18\r\nTTD PLAZAビル2階
## 6   東京都港区三田1-3-31   あい保育園赤羽橋    三田1-3-31\r\nForecast三田2階
##   num_0歳 num_1歳 num_2歳 num_3歳 num_4歳 num_5歳  計
## 1      20      28      30      30      30      30 168
## 2      21      29      30      30      30      30 170
## 3      16      22      26      30      30      30 154
## 4       6      10      10      11      11      12  60
## 5      10      12      12      12      12      12  70
## 6       6      12      12      10      10      10  60
##                      geometry       X_h       Y_h
## 1 POINT (-7745.588 -39007.65) -7745.588 -39007.65
## 2 POINT (-6862.163 -37849.48) -6862.163 -37849.48
## 3 POINT (-7487.781 -38359.86) -7487.781 -38359.86
## 4 POINT (-7316.257 -38655.56) -7316.257 -38655.56
## 5 POINT (-8397.141 -38262.31) -8397.141 -38262.31
## 6 POINT (-8130.535 -38319.25) -8130.535 -38319.25

保育園ポイントに対して最寄の駅ポイントの属性を空間結合する.保育園ポイントの座標値と,結合された最寄駅ポイントの座標値から,最寄駅距離を計算できる.

#データx(保育園ポイント)に対して,最寄りのデータy(駅ポイント)の要素を結合する
hoiku_minato_point_d_sta <- sf::st_join(x=hoiku_minato_point,
                                        y=station_minato_point,
                                        join=st_nearest_feature) %>%
  #保育園ポイントの座標と結合された駅ポイントの座標を使って,ポイント間の直線距離を計算する
  dplyr::mutate(d_sta=sqrt((X_h-X_sta)^2+(Y_h-Y_sta)^2))
head(hoiku_minato_point_d_sta)
## Simple feature collection with 6 features and 20 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -8397.141 ymin: -39007.65 xmax: -6862.163 ymax: -37849.48
## Projected CRS: JGD2011 / Japan Plane Rectangular CS IX
##                     住所           保育園名                           所在地
## 1     東京都港区芝5-18-1           芝保育園                     芝5-18-1-101
## 2 東京都港区浜松町 1-6-7         神明保育園 浜松町 1-6-7\r\nプラザ神明1~3階
## 3  東京都港区芝公園2-7-3       芝公園保育園                      芝公園2-7-3
## 4    東京都港区芝2-12-16 アスク芝公園保育園                        芝2-12-16
## 5   東京都港区三田1-2-18 太陽の子三田保育園    三田1-2-18\r\nTTD PLAZAビル2階
## 6   東京都港区三田1-3-31   あい保育園赤羽橋    三田1-3-31\r\nForecast三田2階
##   num_0歳 num_1歳 num_2歳 num_3歳 num_4歳 num_5歳  計       X_h       Y_h
## 1      20      28      30      30      30      30 168 -7745.588 -39007.65
## 2      21      29      30      30      30      30 170 -6862.163 -37849.48
## 3      16      22      26      30      30      30 154 -7487.781 -38359.86
## 4       6      10      10      11      11      12  60 -7316.257 -38655.56
## 5      10      12      12      12      12      12  70 -8397.141 -38262.31
## 6       6      12      12      10      10      10  60 -8130.535 -38319.25
##   N02_001 N02_002        N02_003    N02_004  N02_005     X_sta     Y_sta
## 1      12       3    6号線三田線     東京都     三田 -7646.771 -39033.13
## 2      12       3 12号線大江戸線     東京都     大門 -7028.785 -38086.95
## 3      12       3    6号線三田線     東京都   芝公園 -7571.003 -38444.10
## 4      12       3    6号線三田線     東京都   芝公園 -7571.003 -38444.10
## 5      12       4    7号線南北線 東京地下鉄 麻布十番 -8718.517 -38292.73
## 6      12       3 12号線大江戸線     東京都   赤羽橋 -8071.097 -38275.59
##                      geometry     d_sta
## 1 POINT (-7745.588 -39007.65) 102.04850
## 2 POINT (-6862.163 -37849.48) 290.09500
## 3 POINT (-7487.781 -38359.86) 118.41524
## 4 POINT (-7316.257 -38655.56) 331.06969
## 5 POINT (-8397.141 -38262.31) 322.81336
## 6 POINT (-8130.535 -38319.25)  73.74842

最寄駅距離変数d_staの各種統計量を計算.

summary(hoiku_minato_point_d_sta$d_sta)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   45.54  203.79  322.18  335.66  474.90  707.20

ステップ9:最寄り駅までの距離が最短,最長の保育所の場所の確認

省略(R側に対応する機能が存在しないため).

補足:保育園-最寄駅間の直線を引いてみる

各保育園ポイントから,最寄りの駅までの直線を生成する.生成した直線を使っても,最寄り駅までの距離は計算可能.

#駅ポイントデータ上での準備
station_minato_point <- station_minato_point %>%
  #駅のID変数としてSIDを作成
  dplyr::mutate(SID=dplyr::row_number())

#st_nn関数では,各保育園ポイントから最寄りの駅のIDをlist形式で取得可能
nngeo::st_nn(x=hoiku_minato_point,y=station_minato_point) %>%
  #ベクトルに変換
  unlist
##  [1]  85  86  84  84  50  92  83  25  86  84   8  27  27  60  30  92  92  50  50
## [20]  53  27  30  25  25  60  50  92  50  91  87  30  61  37  64  39  60  37  34
## [39]  40  39  39  64  75 122  53  53  53 116  53  17  53 116  71  53  71  71  53
## [58]  53  75 116
hoiku_minato_point_con_sta <- hoiku_minato_point %>%
  #保育園ポイントから最寄りの駅ポイントに直線を生成
  dplyr::mutate(geometry=nngeo::st_connect(x=.,y=station_minato_point)) %>%
  #直線が引かれた先の駅のIDを新たな変数として追加
  dplyr::mutate(SID=unlist(nngeo::st_nn(x=.,y=station_minato_point))) %>%
  #駅ポイントからgeometryを削除した上で,駅属性を駅IDをキーとして結合
  dplyr::left_join(y=sf::st_drop_geometry(x=station_minato_point),by="SID") %>%
  #生成した直線の長さを計算することで,最寄り駅までの距離が計算可能
  dplyr::mutate(d_sta=sf::st_length(x=.))
## Calculating nearest IDs
## Calculating lines
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |=                                                                     |   2%
  |                                                                            
  |==                                                                    |   3%
  |                                                                            
  |====                                                                  |   5%
  |                                                                            
  |=====                                                                 |   7%
  |                                                                            
  |======                                                                |   8%
  |                                                                            
  |=======                                                               |  10%
  |                                                                            
  |========                                                              |  12%
  |                                                                            
  |=========                                                             |  13%
  |                                                                            
  |==========                                                            |  15%
  |                                                                            
  |============                                                          |  17%
  |                                                                            
  |=============                                                         |  18%
  |                                                                            
  |==============                                                        |  20%
  |                                                                            
  |===============                                                       |  22%
  |                                                                            
  |================                                                      |  23%
  |                                                                            
  |==================                                                    |  25%
  |                                                                            
  |===================                                                   |  27%
  |                                                                            
  |====================                                                  |  28%
  |                                                                            
  |=====================                                                 |  30%
  |                                                                            
  |======================                                                |  32%
  |                                                                            
  |=======================                                               |  33%
  |                                                                            
  |========================                                              |  35%
  |                                                                            
  |==========================                                            |  37%
  |                                                                            
  |===========================                                           |  38%
  |                                                                            
  |============================                                          |  40%
  |                                                                            
  |=============================                                         |  42%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |================================                                      |  45%
  |                                                                            
  |=================================                                     |  47%
  |                                                                            
  |==================================                                    |  48%
  |                                                                            
  |===================================                                   |  50%
  |                                                                            
  |====================================                                  |  52%
  |                                                                            
  |=====================================                                 |  53%
  |                                                                            
  |======================================                                |  55%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |=========================================                             |  58%
  |                                                                            
  |==========================================                            |  60%
  |                                                                            
  |===========================================                           |  62%
  |                                                                            
  |============================================                          |  63%
  |                                                                            
  |==============================================                        |  65%
  |                                                                            
  |===============================================                       |  67%
  |                                                                            
  |================================================                      |  68%
  |                                                                            
  |=================================================                     |  70%
  |                                                                            
  |==================================================                    |  72%
  |                                                                            
  |===================================================                   |  73%
  |                                                                            
  |====================================================                  |  75%
  |                                                                            
  |======================================================                |  77%
  |                                                                            
  |=======================================================               |  78%
  |                                                                            
  |========================================================              |  80%
  |                                                                            
  |=========================================================             |  82%
  |                                                                            
  |==========================================================            |  83%
  |                                                                            
  |============================================================          |  85%
  |                                                                            
  |=============================================================         |  87%
  |                                                                            
  |==============================================================        |  88%
  |                                                                            
  |===============================================================       |  90%
  |                                                                            
  |================================================================      |  92%
  |                                                                            
  |=================================================================     |  93%
  |                                                                            
  |==================================================================    |  95%
  |                                                                            
  |====================================================================  |  97%
  |                                                                            
  |===================================================================== |  98%
  |                                                                            
  |======================================================================| 100%
#ステップ8で計算した最寄り駅距離
head(hoiku_minato_point_con_sta$d_sta)
## Units: [m]
## [1] 102.04850 290.09500 118.41524 331.06969 322.81336  73.74842
#生成した直線から計算した最寄り駅距離
head(hoiku_minato_point_d_sta$d_sta)
##         1         2         3         4         5         6 
## 102.04850 290.09500 118.41524 331.06969 322.81336  73.74842

境界データ・保育園ポイントデータ・駅ポイントデータとともに,保育園-駅ラインデータを可視化する.

#境界データ
mapview::mapview(x=minato_boundary,
                 #透明で塗りつぶし
                 col.region="transparent",
                 #不透明度0%
                 alpha.regions=0,
                 #ポリゴン縁の色は青
                 color="blue",
                 #ポリゴン縁のサイズは2
                 lwd=2,
                 #凡例を表示しない
                 legend=FALSE) +
  #保育園ポイントデータ
  mapview::mapview(x=hoiku_minato_point,
                   #ポイントの色は紫
                   col.region="purple",
                   #不透明度100%
                   alpha.regions=1,
                   #レイヤ名を「Kindergarten」と設定
                   layer.name="Kindergarten") +
  #駅ポイントデータ
  mapview::mapview(x=station_minato_point,
                   #ポイントの色は緑
                   col.region="green",
                   #不透明度100%
                   alpha.regions=1,
                   #レイヤ名を「Station」と設定
                   layer.name="Station") +
  #保育園・最寄駅間ラインデータ
  mapview::mapview(x=hoiku_minato_point_con_sta,
                   #ラインの色は赤
                   color="red",
                   #レイヤ名を「Station-Kindergarten」と設定
                   layer.name="Station-Kindergarten")