web-dev-qa-db-ja.com

リーフレットライブラリを使用して複数のポップアップ値を出力する

いくつかのデータを使用して特定の場所にマーカーを含むマップを作成し、ポップアップ関数を使用して複数の値を出力しています。

私が取得しているデータはSQLからのものであり、そのためのコードは次のとおりです。

con <- odbcConnect("data", uid = "user", pwd = "password")
area <- sqlQuery(con, "EXEC sp")

Area変数には、11行6列が含まれています。 6つの列は、Region(text)、Employed(integer)、Retired(integer)、employed(integer)、Longitude(integer)、Latitude(integer)です。

リーフレットライブラリを使用して、経度と緯度を使用して地図上にポイントを作成しています。ユーザーが地図上の重要なポイントをクリックしたときにポップアップとして表示したい他のもの。

各ポイントのポップアップを使用して、マップとポイントを作成する方法のコード。

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=area$Longitude, lat=area$Latitude, popup=area$Region)

上記の関数は機能し、地図上に正しい地域名でポップアップ出力を表示します。しかし、ポップアップを複数の列に変更しようとすると、マップはポイントとともに表示されますが、クリックしても応答しません。

ポップアップに複数の値を出力する方法を教えてもらえますか?.

このようなもの:

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=area$Longitude, lat=area$Latitude, popup=c(area$Region, area$Employed, area$Retired, area$Unemployed))

注:ポイントをクリックすると、ポップアップが次のように表示されます。

Region Name
Employed: 559
Retired: 400
Unemployed: 300

私はまだRの知識を把握しているので、私が何を意味するのか理解できない場合は質問してください。

私はrstudioでこれをやっています

9
Faiz Saiyed

paste()の代わりにc()を使用する必要があります。 HTMLの改行を使用して、複数の行を取得できます。このテストされていないコードを試してください:

m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng = area$Longitude, lat = area$Latitude,
             popup = paste("Region", area$Region, "<br>",
                           "Employed:", area$Employed, "<br>",
                           "Retired:", area$Retired, "<br>",
                           "Unemployed:", area$Unemployed))
25
djhurio