Suche senden
Hochladen
R入門とgoogle map +α
•
6 gefällt mir
•
4,292 views
K
kobexr
Folgen
Kobe.R #1 R入門 GoogleMap 巡回セールスマン問題
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 26
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析
MapR Technologies Japan
Perl for visualization
Perl for visualization
Daichi Morifuji
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
Kohei Kadowaki
Leaflet初級編 - Web地図サイトを構築してみよう-
Leaflet初級編 - Web地図サイトを構築してみよう-
Yasunori Kirimoto
RでGIS
RでGIS
Hoshida Yukihisa
RでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
Gtug girls-20140828
Gtug girls-20140828
Daichi Morifuji
FOSS4Gを利用したWebでの地理空間情報公開入門
FOSS4Gを利用したWebでの地理空間情報公開入門
Kosuke Asahi
Empfohlen
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析
MapR Technologies Japan
Perl for visualization
Perl for visualization
Daichi Morifuji
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
Kohei Kadowaki
Leaflet初級編 - Web地図サイトを構築してみよう-
Leaflet初級編 - Web地図サイトを構築してみよう-
Yasunori Kirimoto
RでGIS
RでGIS
Hoshida Yukihisa
RでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
Gtug girls-20140828
Gtug girls-20140828
Daichi Morifuji
FOSS4Gを利用したWebでの地理空間情報公開入門
FOSS4Gを利用したWebでの地理空間情報公開入門
Kosuke Asahi
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
Hideo Harada
Xamarinで作る「オリジナルタイル地図」アプリ
Xamarinで作る「オリジナルタイル地図」アプリ
Kohei Otsuka
FOSS4Gでオープンデータもかんたん
FOSS4Gでオープンデータもかんたん
Kosuke Asahi
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
Yoichi Kayama
GPUを考慮したMapReduceのタスクスケジューリング
GPUを考慮したMapReduceのタスクスケジューリング
Koichi Shirahata
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
Yosuke Onoue
151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation
Takayuki Nuimura
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
清水 正行
FOSS4Gで地理空間情報もかんたん
FOSS4Gで地理空間情報もかんたん
Kosuke Asahi
GTC2011 Japan
GTC2011 Japan
Takuro Iizuka
非静力学海洋モデルkinacoのGPUによる高速化
非静力学海洋モデルkinacoのGPUによる高速化
Takateru Yamagishi
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
Kosuke Kida
Leaflet初級編 - Web地図サイトを構築してみよう-
Leaflet初級編 - Web地図サイトを構築してみよう-
Yasunori Kirimoto
GRASSセミナー基礎編
GRASSセミナー基礎編
Kanetaka Heshiki
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
Masayuki Isobe
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
圭輔 大曽根
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
Kohei KaiGai
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Yosuke Onoue
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Atsushi Hayakawa
KMLとR言語
KMLとR言語
文彦 牧山
Weitere ähnliche Inhalte
Was ist angesagt?
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
Hideo Harada
Xamarinで作る「オリジナルタイル地図」アプリ
Xamarinで作る「オリジナルタイル地図」アプリ
Kohei Otsuka
FOSS4Gでオープンデータもかんたん
FOSS4Gでオープンデータもかんたん
Kosuke Asahi
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
Yoichi Kayama
GPUを考慮したMapReduceのタスクスケジューリング
GPUを考慮したMapReduceのタスクスケジューリング
Koichi Shirahata
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
Yosuke Onoue
151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation
Takayuki Nuimura
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
清水 正行
FOSS4Gで地理空間情報もかんたん
FOSS4Gで地理空間情報もかんたん
Kosuke Asahi
GTC2011 Japan
GTC2011 Japan
Takuro Iizuka
非静力学海洋モデルkinacoのGPUによる高速化
非静力学海洋モデルkinacoのGPUによる高速化
Takateru Yamagishi
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
Kosuke Kida
Leaflet初級編 - Web地図サイトを構築してみよう-
Leaflet初級編 - Web地図サイトを構築してみよう-
Yasunori Kirimoto
Was ist angesagt?
(13)
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
Xamarinで作る「オリジナルタイル地図」アプリ
Xamarinで作る「オリジナルタイル地図」アプリ
FOSS4Gでオープンデータもかんたん
FOSS4Gでオープンデータもかんたん
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
GPUを考慮したMapReduceのタスクスケジューリング
GPUを考慮したMapReduceのタスクスケジューリング
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
FOSS4Gで地理空間情報もかんたん
FOSS4Gで地理空間情報もかんたん
GTC2011 Japan
GTC2011 Japan
非静力学海洋モデルkinacoのGPUによる高速化
非静力学海洋モデルkinacoのGPUによる高速化
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
Leaflet初級編 - Web地図サイトを構築してみよう-
Leaflet初級編 - Web地図サイトを構築してみよう-
Ähnlich wie R入門とgoogle map +α
GRASSセミナー基礎編
GRASSセミナー基礎編
Kanetaka Heshiki
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
Masayuki Isobe
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
圭輔 大曽根
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
Kohei KaiGai
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
Yosuke Onoue
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Atsushi Hayakawa
KMLとR言語
KMLとR言語
文彦 牧山
R intro
R intro
yayamamo @ DBCLS Kashiwanoha
Monadicプログラミング マニアックス
Monadicプログラミング マニアックス
Tomoharu ASAMI
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
Tomoharu ASAMI
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
MapR Technologies Japan
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
nkt77
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
Yuya Matsumura
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
nkt77
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Nobuaki Oshiro
文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition
Toru Tamaki
08遺跡景観の分析〜可視領域を調べる〜
08遺跡景観の分析〜可視領域を調べる〜
Junpei Ishii
CSS3 Design Recipe
CSS3 Design Recipe
Kazunari Hara
Ähnlich wie R入門とgoogle map +α
(20)
GRASSセミナー基礎編
GRASSセミナー基礎編
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
Rを用いたGIS
Rを用いたGIS
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
KMLとR言語
KMLとR言語
R intro
R intro
Monadicプログラミング マニアックス
Monadicプログラミング マニアックス
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition
08遺跡景観の分析〜可視領域を調べる〜
08遺跡景観の分析〜可視領域を調べる〜
CSS3 Design Recipe
CSS3 Design Recipe
Kürzlich hochgeladen
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Kürzlich hochgeladen
(7)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
R入門とgoogle map +α
1.
2.
R とGoogleMap • 鯖江市のデータを取得して Webブラウザ上にマッピングする
3.
R は 便利な解析ツール 統計 分析 •
オープン & フリー • グラフィックス • 充実した解析環境
4.
RStudio で 更に便利に R用のIDE 統計 分析
5.
R の 基本操作
(変数の代入) • a <- 1 #aに1を代入 •b <- c(1:3) #bにベクトル(1,2,3)を代入 •c <- c(‘x’, ‘y’, ‘z’) • d <- data.frame(d1=b, d2=c)
6.
R の 基本操作
(データフレーム) • d <- data.frame(d1=b, d2=c) 要素ラベルで操作できる •要素ラベルは「$」で表す d$d1[2] = d[2, 1] = 2
7.
R の 基本操作
(データの確認・準備) • str(), head(), summary()でデータ確認 str(d$d1) • as.XXXで型を変更 as.integer, as.character… d$d1 <- as.character(d$d1) • names()で要素の名前取得/命名 names(d) names(d) <- c(“名前1”, “名前2”)
8.
R の 基本操作
(パッケージの利用) •Rの機能を拡張するためのパッケージ • install.packages() … インストール • library() or require() … 呼び出し • XML … XMLファイル操作 • googleVis … Google Visualization API
9.
R の 基本操作
(その他便利な機能紹介) • データの取得 txtデータ: read.table csvデータ: read.csv(csvファイル) Excelデータ: xlsxパッケージ、xlsx(xlsファイル) Webデータ: readLines(URL) RCurlパッケージのgetURL •可視化ツール ggplot2: いろいろなプロット ggmap: マッピング
10.
R とGoogleMap • 鯖江市のAED設置場所をマッピング
11.
install.packages('XML'); library(XML) #XML
package install.packages('googleVis'); library(googleVis) #googleVis package int <- "integer"; num <- "numeric"; chr <- "character" #データ型の略記 url <- "http://www3.city.sabae.fukui.jp/xml/aed/aed.xml" #鯖江市URL data <- xmlToDataFrame(url, stringsAsFactors=F, colClasses=c(int, chr, chr, int, num, num, chr)) #型指定でデータ取得 data$latlong <- paste(data$latitude, data$longitude, sep=":") #データ加工 plot(gvisMap(data, locationvar="latlong", tipvar="name")) #表示 R とGoogleMap (コード) • データ取得から可視化まで、これだけ
12.
R とGoogleMap (内容) •
鯖江市HPからデータを取得 •データを確認、加工 • マッピングしてWebブラウザで表示
13.
R とGoogleMap (データを取得) •
XMLデータを取得する #XMLパッケージの導入 #この中の関数xmlToDataFrameを利用する install.packages(‘XML’) library(XML) #関数xmlToDataFrameを使ってXMLデータを取得 #この関数についてのヘルプを見るには、?xmlToDataFrame int <- "integer“; num <- "numeric“; chr <- "character“ url <- "http://www3.city.sabae.fukui.jp/xml/aed/aed.xml" data <- xmlToDataFrame(url, stringsAsFactors=F, colClasses=c(int, chr, chr, int, num, num, chr))
14.
R とGoogleMap (データの確認) •データの中身を(簡単に)確認する #str関数でデータフレームの構造を確認 str(data) 'data.frame':
134 obs. of 7 variables: $ no : int 1 115 116 117 118 119 120 121 122 123 ... $ name : chr "鯖江高等学校 " "鯖江市嚮陽会館" "鯖江市役所" "JAたんなん ふれあいセンター " ... $ address : chr "鯖江市舟津町2丁目5-42 " "鯖江市桜町2丁目7番1号" "鯖江市西山町13番1号"... $ count : int 1 1 1 1 1 1 1 1 1 1 ... $ latitude : num 35.9 35.9 36 36 36 ... $ longitude: num 136 136 136 136 136 ... $ url : chr "http://www3.city.sabae.fukui.jp/xml/aed/#1" "http://www3.city.sabae.fukui.jp/xml/aed/#115” ... latitude … 緯度 longitude … 経度
15.
R とGoogleMap (データを加工) •
データをマッピング用に加工する #googleVisパッケージの導入 #この中の関数gvisMapを利用する Install.packages(‘googleVis’) library(googleVis) #gvisMap関数で座標を指定するには、「緯度:経度」の形式が必要 #dataに緯度:経度を要素とする項目latlongを追加する #「データフレーム$項目名」<- 要素 で割り当て #欲しい要素は「data$latitude:data$longitude」なので #「data$latitude」と「data$longitude」を「:」で結合(paste) data$latlong <- paste(data$latitude, data$longitude, sep=":")
16.
R とGoogleMap (データを表示) •マッピングする #gvisMapを利用してマッピング用データを準備 map
<- gvisMap(data, locationvar=“latlong”, tipvar=“name”) #「option」で条件設定をすることもできる map <- gvisMap(data, locationvar = “latlong”, tipvar = “name”, options = list(showTip = F, enableScrollWheel = T, useMapTypeControl = T)) #作成したデータをブラウザで表示する plot(map)
17.
R とGoogleMap (完成?)
18.
+α: セールスマンの巡回 http://www.bunkyo.ac.jp/~nemoto/lecture/seminar2/ 2000/kimura/ronbun2.htm 巡回セールスマン問題(じゅんか いセールスマンもんだい、 英: traveling
salesman problem、 TSP)は、都市の集合と各2都市 間の移動コスト(たとえば距離) が与えられたとき、全ての都市を ちょうど一度ずつ巡り出発地に 戻る巡回路の総移動コストが最 小のものを求める(セールスマン が所定の複数の都市を1回だけ 巡回する場合の最短経路を求め る)組合せ最適化問題である。 (Wikipedia)
19.
街の公園を巡回し管理している人がいます。 彼らの移動時間を短くできないか考えてみます。 +α: セールスマンの巡回 イメージ図
20.
流山市のオープンデータトライアルHPから、「平和台」の公園データを使います。 http://www.city.nagareyama.chiba.jp/10763/index.html #CSVファイルのURL url.parks <- "http://www.city.nagareyama.chiba.jp/dbps_data/_material _/localhost/shisetsu_kouen.csv" #公園データの取得 parks <-
read.csv(url.parks) #平和台が付く公園の収集 parks.selected <- parks[grep("平和台", parks$名称), 1:7] 公園の位置を取得
21.
取得データの確認 • 公園は全部で10ヶ所 • 今回は名称、緯度、経度を使用
22.
地図上へのプロット MP <- M
+ geom_point(data = parks.selected, aes(x=経度, y=緯度), size=7, colour="red") 公園の中には、実際にHPで紹介されている位 置とは違う位置にプロットされてしまうものもあ ります(下記、平和台1号公園)。左図のプロッ トはとりあえずの目安と考えて下さい。 HPの緯度経度 からのプロット HPで紹介され ている位置
23.
「平和台」の公園データを同じ箇所を通らないように、最短で巡回する経路を考え てみます。まず、各公園間の移動時間を計算します。 1 2 3
4 5 6 7 8 9 10 1 0.0 5.3 5.8 0.0 5.4 3.0 4.9 5.1 2.2 11.2 2 5.3 0.0 6.1 5.7 11.1 4.5 8.9 9.3 4.8 6.5 3 5.8 6.1 0.0 5.2 8.0 5.5 9.2 9.5 3.2 10.4 4 0.0 5.7 5.2 0.0 5.4 3.0 4.9 5.1 2.2 11.2 5 5.4 11.1 8.0 5.4 0.0 7.1 5.2 4.1 6.0 16.0 6 3.0 4.5 5.5 3.0 7.1 0.0 5.1 5.5 2.8 9.5 7 4.9 8.9 9.2 4.9 5.2 5.1 0.0 2.9 6.3 11.5 8 5.1 9.3 9.5 5.1 4.1 5.5 2.9 0.0 6.2 13.4 9 2.2 4.8 3.2 2.2 6.0 2.8 6.3 6.2 0.0 10.6 10 11.2 6.5 10.4 11.2 16.0 9.5 11.5 13.4 10.6 0.0 #徒歩で移動する場合 travelmode = "walking" #nr x nrの時間行列と距離行列の作成 nr <- nrow(parks.selected) time <- matrix(0, nr, nr) distance <- matrix(0, nr, nr) for (i in 1:nr){ parks.selected.i <- parks.selected[i,] loc.i <- c(parks.selected.i$経度, parks.selected.i$緯度) for (j in (i+1):nr){ parks.selected.j <- parks.selected[j,] loc.j <- c(parks.selected.j$経度, parks.selected.j$緯度) route.ij <- route(loc.i, loc.j, mode=travelmode, structure="route") #時間行列と距離行列に代入 time[i, j] = time[j, i] <- sum(route.ij$minutes, na.rm=T) distance[i, j] = distance[j, i] <- sum(route.ij$km, na.rm=T) } } 各公園(1~10)間の移動時間を、 route関数で計算した結果。単位は min。徒歩移動とした。車移動の場合 は、travelmode=“driving” 公園間の距離の計算
24.
最短距離の計算 10ヶ所の公園を1回ずつ経由するルートを、TSPパッケージを使って計算します。 install.packages("TSP"); library(TSP) ans <-
solve_TSP(TSP(time)) • TSP関数で、距離の行列をTSP形式に変換 TSP: symmetric traveling salesperson problem(セールスマン巡回問題) • solve_TSP関数で、最短経路を求める この順で公園をまわっていけばいいということらしい。
25.
公園の巡回順路、所用時間、距離をプロットしていきます。 #経路のプロット。ans[k]番目からans[k+1]番目の公園への移動経路のプロット for (k in
1:(nr-1)){ h1 <- ans[k]; h2 <- ans[k+1] route <- na.omit(route(c(lon[h1], lat[h1]), c(lon[h2], lat[h2]), mode=travelmode, structure="route")) #与えられた座標をそのまま使用すると正しく表示されないことがあるので、 #移動経路の始点(最後にまわる公園については終点)を公園の位置とした。 M <- M + geom_point(data=route[1,], aes(x=lon, y=lat), size=10, colour="red", alpha=0.75) M <- M + geom_text(data=route[1,], aes(x=lon, y=lat), label=k, colour="white") M <- M + geom_text(data=route[1,], aes(x=lon, y=lat+0.0005), label=parks.selected$名称[h1], colour=“red”, size=4) M <- M + geom_path(data=route, aes(x=lon, y=lat), size=1.5, colour="red", alpha=0.75) M <- M + geom_text(data=route, aes(x=mean(lon), y=mean(lat)), label=paste(sprintf("%3.1f", sum(route$min)), "min, ", sprintf("%3.1f", sum(route$km)), "km", sep=""), colour="white", size=4) if (nrow(route)<2){ lonlat <- data.frame(lon=lon[c(h1, h2)], lat=lat[c(h1, h2)]) M <- M + geom_path(data=lonlat, aes(x=lon, y=lat), size=0.75, colour="red", alpha=0.75, type="dotted") } } M <- M + geom_point(data=route[nrow(route),], aes(x=lon, y=lat), size=10, colour="red", alpha=0.75) M <- M + geom_text(data=route[nrow(route),], aes(x=lon, y=lat), label=k+1, colour="white") M <- M + geom_text(data=route[nrow(route),], aes(x=lon, y=lat+0.0015), label=parks.selected$名称[h1], colour="red", size=4) プロット
26.
完成 (ごちゃごちゃ
Jetzt herunterladen