putting scalebar and north arrow on google map

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

putting scalebar and north arrow on google map

Christopher Lusk
Hi - I've made a map to show the spatial arrangement of my plots, and would
now like to add a scale bar (in hundreds of metres) and a north arrow. I've
seen several solutions online, most of which threw error messages when I
tried them. Although the solution below doesn't give an error message, it
doesn't actually add anything to the map!

Any advice would be appreciated.

Chris
..........

library(ggplot2)
library(ggmap)
library(maps)
library(GISTools)

##Coordinates of four types of plots
Gaps <- read.table(text="lon lat
176.431823     -38.086894
176.4329002     -38.08855667
176.4286505     -38.08421246
176.4239767     -38.08297953
176.4306576     -38.09032491
176.4181457     -38.08283416
176.4325089     -38.09042394
176.4243027     -38.08215021
176.4220882     -38.08720573
176.430974    -38.093108", header = TRUE, strip.white = TRUE)

Understorey <- read.table(text="lon lat
176.431523   -38.086965
176.418408   -38.082935
176.4244189     -38.08242069
176.4287644     -38.08372266
176.4240118     -38.0823004
176.4333778     -38.08853369
176.4217424     -38.0876122
176.4309304     -38.09055117
176.4324084     -38.0907023
176.430821   -38.093687", header = TRUE, strip.white = TRUE)

Treeferns <- read.table(text="lon lat
176.432134      -38.086298
176.4246547     -38.08226916
176.4335132     -38.08801622
176.4183628     -38.08260261
176.429       -38.08413018
176.4213997     -38.08710868
176.4304333     -38.09064678
176.4324081     -38.0909994
176.4242689     -38.08264669
176.429837      -38.093061", header = TRUE, strip.white = TRUE)

Margins <- read.table(text="lon lat
176.4225302     -38.08177849
176.427018     -38.08879161
176.4207786     -38.08356826
176.4315118     -38.08251629
176.426456     -38.08920441
176.426010   -38.088253
176.422526   -38.082794
176.421399   -38.084780
176.429339   -38.092742", header = TRUE, strip.white = TRUE)

## Get the map at right zoom level
OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
maptype='hybrid', zoom=15)

## Plot the points on the map
ggmap(OkatainaMap) +
  geom_point(data=Gaps, aes(x=lon, y=lat), pch=15, colour="chartreuse1",
size=2.5, alpha=1) +
  geom_point(data=Understorey, aes(x=lon, y=lat), pch=21, colour="gray40",
bg="black", size=3, alpha=1) +
  geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23, colour="gray40",
bg="blue", size=2.5, alpha=1) +
  geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
size=2.5, alpha=1)

##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)

map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")

...................


Dr. Chris Lusk
Senior Research Fellow
Environmental Research Institute
The University of Waikato
Private Bag 3105, Hamilton
New Zealand / Aotearoa
http://sci.waikato.ac.nz/sites/clusk/
Ph 64 7 838 4205
Senior Editor, *NZ J Botany*
~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: putting scalebar and north arrow on google map

Florian Detsch
Chris,

here is a rather manual lattice-based approach that might point you in
the right direction. dismo::gmap(..., rgb = TRUE) returns a Raster*
object that can easily be transformed to a list compatible with
'sp.layout' by using mapview::rgb2spLayout(...). Note that if you want
to stick with latlon coordinates (EPSG:4326), but display the scale bar
in meters, you are required to specify dismo::gmap(..., lonlat = TRUE)
and adjust the 'scale' argument used to create the scale bar accordingly.

Best,
Florian


library(dismo)
library(mapview)

## get map using `dismo::gmap`
OkatainaMap <- gmap(extent(176.425, 176.425, -38.0845, -38.0845),
                     type = 'hybrid', scale = 2, zoom = 15, rgb = TRUE)

## scale bar
scale <- list("SpatialPolygonsRescale", layout.scale.bar(), scale = 500,
               offset = c(19638250, -4592600), fill = c("white", "black"))
text1 <- list("sp.text", c(19638250, -4592670), "0", cex = .75, font = 2)
text2 <- list("sp.text", c(19638800, -4592670), "500 m", cex = .75, font
= 2)

## north arrow
arrow <- list("SpatialPolygonsRescale", layout.north.arrow(type = 1),
               offset = c(19638450, -4592500), scale = 300)

## display data
spplot(OkatainaMap[[1]], colorkey = FALSE, col.regions = "transparent",
        scales = list(draw = TRUE),
        sp.layout = list(rgb2spLayout(OkatainaMap), arrow, scale, text1,
text2))


On 18.07.2016 06:57, Chris Lusk wrote:

> Hi - I've made a map to show the spatial arrangement of my plots, and would
> now like to add a scale bar (in hundreds of metres) and a north arrow. I've
> seen several solutions online, most of which threw error messages when I
> tried them. Although the solution below doesn't give an error message, it
> doesn't actually add anything to the map!
>
> Any advice would be appreciated.
>
> Chris
> ..........
>
> library(ggplot2)
> library(ggmap)
> library(maps)
> library(GISTools)
>
> ##Coordinates of four types of plots
> Gaps <- read.table(text="lon lat
> 176.431823     -38.086894
> 176.4329002     -38.08855667
> 176.4286505     -38.08421246
> 176.4239767     -38.08297953
> 176.4306576     -38.09032491
> 176.4181457     -38.08283416
> 176.4325089     -38.09042394
> 176.4243027     -38.08215021
> 176.4220882     -38.08720573
> 176.430974    -38.093108", header = TRUE, strip.white = TRUE)
>
> Understorey <- read.table(text="lon lat
> 176.431523   -38.086965
> 176.418408   -38.082935
> 176.4244189     -38.08242069
> 176.4287644     -38.08372266
> 176.4240118     -38.0823004
> 176.4333778     -38.08853369
> 176.4217424     -38.0876122
> 176.4309304     -38.09055117
> 176.4324084     -38.0907023
> 176.430821   -38.093687", header = TRUE, strip.white = TRUE)
>
> Treeferns <- read.table(text="lon lat
> 176.432134      -38.086298
> 176.4246547     -38.08226916
> 176.4335132     -38.08801622
> 176.4183628     -38.08260261
> 176.429       -38.08413018
> 176.4213997     -38.08710868
> 176.4304333     -38.09064678
> 176.4324081     -38.0909994
> 176.4242689     -38.08264669
> 176.429837      -38.093061", header = TRUE, strip.white = TRUE)
>
> Margins <- read.table(text="lon lat
> 176.4225302     -38.08177849
> 176.427018     -38.08879161
> 176.4207786     -38.08356826
> 176.4315118     -38.08251629
> 176.426456     -38.08920441
> 176.426010   -38.088253
> 176.422526   -38.082794
> 176.421399   -38.084780
> 176.429339   -38.092742", header = TRUE, strip.white = TRUE)
>
> ## Get the map at right zoom level
> OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
> maptype='hybrid', zoom=15)
>
> ## Plot the points on the map
> ggmap(OkatainaMap) +
>    geom_point(data=Gaps, aes(x=lon, y=lat), pch=15, colour="chartreuse1",
> size=2.5, alpha=1) +
>    geom_point(data=Understorey, aes(x=lon, y=lat), pch=21, colour="gray40",
> bg="black", size=3, alpha=1) +
>    geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23, colour="gray40",
> bg="blue", size=2.5, alpha=1) +
>    geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
> size=2.5, alpha=1)
>
> ##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)
>
> map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
> north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")
>
> ...................
>
>
> Dr. Chris Lusk
> Senior Research Fellow
> Environmental Research Institute
> The University of Waikato
> Private Bag 3105, Hamilton
> New Zealand / Aotearoa
> http://sci.waikato.ac.nz/sites/clusk/
> Ph 64 7 838 4205
> Senior Editor, *NZ J Botany*
> ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> [hidden email]
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

--
Florian Detsch (M.Sc. Physical Geography)
Environmental Informatics
Department of Geography
Philipps-Universität Marburg
Deutschhausstraße 12
35032 (parcel post: 35037) Marburg, Germany

Phone: +49 (0) 6421 28-25323
Web: http://umweltinformatik-marburg.de/en/staff/florian-detsch/

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: putting scalebar and north arrow on google map

Manuel Spínola
In reply to this post by Christopher Lusk
Or you can try the package ggsn with the package ggmap

Manuel

2016-07-17 22:57 GMT-06:00 Chris Lusk <[hidden email]>:

> Hi - I've made a map to show the spatial arrangement of my plots, and would
> now like to add a scale bar (in hundreds of metres) and a north arrow. I've
> seen several solutions online, most of which threw error messages when I
> tried them. Although the solution below doesn't give an error message, it
> doesn't actually add anything to the map!
>
> Any advice would be appreciated.
>
> Chris
> ..........
>
> library(ggplot2)
> library(ggmap)
> library(maps)
> library(GISTools)
>
> ##Coordinates of four types of plots
> Gaps <- read.table(text="lon lat
> 176.431823     -38.086894
> 176.4329002     -38.08855667
> 176.4286505     -38.08421246
> 176.4239767     -38.08297953
> 176.4306576     -38.09032491
> 176.4181457     -38.08283416
> 176.4325089     -38.09042394
> 176.4243027     -38.08215021
> 176.4220882     -38.08720573
> 176.430974    -38.093108", header = TRUE, strip.white = TRUE)
>
> Understorey <- read.table(text="lon lat
> 176.431523   -38.086965
> 176.418408   -38.082935
> 176.4244189     -38.08242069
> 176.4287644     -38.08372266
> 176.4240118     -38.0823004
> 176.4333778     -38.08853369
> 176.4217424     -38.0876122
> 176.4309304     -38.09055117
> 176.4324084     -38.0907023
> 176.430821   -38.093687", header = TRUE, strip.white = TRUE)
>
> Treeferns <- read.table(text="lon lat
> 176.432134      -38.086298
> 176.4246547     -38.08226916
> 176.4335132     -38.08801622
> 176.4183628     -38.08260261
> 176.429       -38.08413018
> 176.4213997     -38.08710868
> 176.4304333     -38.09064678
> 176.4324081     -38.0909994
> 176.4242689     -38.08264669
> 176.429837      -38.093061", header = TRUE, strip.white = TRUE)
>
> Margins <- read.table(text="lon lat
> 176.4225302     -38.08177849
> 176.427018     -38.08879161
> 176.4207786     -38.08356826
> 176.4315118     -38.08251629
> 176.426456     -38.08920441
> 176.426010   -38.088253
> 176.422526   -38.082794
> 176.421399   -38.084780
> 176.429339   -38.092742", header = TRUE, strip.white = TRUE)
>
> ## Get the map at right zoom level
> OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
> maptype='hybrid', zoom=15)
>
> ## Plot the points on the map
> ggmap(OkatainaMap) +
>   geom_point(data=Gaps, aes(x=lon, y=lat), pch=15, colour="chartreuse1",
> size=2.5, alpha=1) +
>   geom_point(data=Understorey, aes(x=lon, y=lat), pch=21, colour="gray40",
> bg="black", size=3, alpha=1) +
>   geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23, colour="gray40",
> bg="blue", size=2.5, alpha=1) +
>   geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
> size=2.5, alpha=1)
>
> ##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)
>
> map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
> north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")
>
> ...................
>
>
> Dr. Chris Lusk
> Senior Research Fellow
> Environmental Research Institute
> The University of Waikato
> Private Bag 3105, Hamilton
> New Zealand / Aotearoa
> http://sci.waikato.ac.nz/sites/clusk/
> Ph 64 7 838 4205
> Senior Editor, *NZ J Botany*
> ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> [hidden email]
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>



--
*Manuel Spínola, Ph.D.*
Instituto Internacional en Conservación y Manejo de Vida Silvestre
Universidad Nacional
Apartado 1350-3000
Heredia
COSTA RICA
[hidden email] <[hidden email]>
[hidden email]
Teléfono: (506) 8706 - 4662
Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/>
Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: putting scalebar and north arrow on google map

Tim Salabim
My suggestion would be the wonderful tmap package. It is, however, using
OpenStreetMap rather than google for background maps AFAIK.

Tim

On 18.07.2016 14:32, Manuel Spínola wrote:

> Or you can try the package ggsn with the package ggmap
>
> Manuel
>
> 2016-07-17 22:57 GMT-06:00 Chris Lusk <[hidden email]>:
>
>> Hi - I've made a map to show the spatial arrangement of my plots, and would
>> now like to add a scale bar (in hundreds of metres) and a north arrow. I've
>> seen several solutions online, most of which threw error messages when I
>> tried them. Although the solution below doesn't give an error message, it
>> doesn't actually add anything to the map!
>>
>> Any advice would be appreciated.
>>
>> Chris
>> ..........
>>
>> library(ggplot2)
>> library(ggmap)
>> library(maps)
>> library(GISTools)
>>
>> ##Coordinates of four types of plots
>> Gaps <- read.table(text="lon lat
>> 176.431823     -38.086894
>> 176.4329002     -38.08855667
>> 176.4286505     -38.08421246
>> 176.4239767     -38.08297953
>> 176.4306576     -38.09032491
>> 176.4181457     -38.08283416
>> 176.4325089     -38.09042394
>> 176.4243027     -38.08215021
>> 176.4220882     -38.08720573
>> 176.430974    -38.093108", header = TRUE, strip.white = TRUE)
>>
>> Understorey <- read.table(text="lon lat
>> 176.431523   -38.086965
>> 176.418408   -38.082935
>> 176.4244189     -38.08242069
>> 176.4287644     -38.08372266
>> 176.4240118     -38.0823004
>> 176.4333778     -38.08853369
>> 176.4217424     -38.0876122
>> 176.4309304     -38.09055117
>> 176.4324084     -38.0907023
>> 176.430821   -38.093687", header = TRUE, strip.white = TRUE)
>>
>> Treeferns <- read.table(text="lon lat
>> 176.432134      -38.086298
>> 176.4246547     -38.08226916
>> 176.4335132     -38.08801622
>> 176.4183628     -38.08260261
>> 176.429       -38.08413018
>> 176.4213997     -38.08710868
>> 176.4304333     -38.09064678
>> 176.4324081     -38.0909994
>> 176.4242689     -38.08264669
>> 176.429837      -38.093061", header = TRUE, strip.white = TRUE)
>>
>> Margins <- read.table(text="lon lat
>> 176.4225302     -38.08177849
>> 176.427018     -38.08879161
>> 176.4207786     -38.08356826
>> 176.4315118     -38.08251629
>> 176.426456     -38.08920441
>> 176.426010   -38.088253
>> 176.422526   -38.082794
>> 176.421399   -38.084780
>> 176.429339   -38.092742", header = TRUE, strip.white = TRUE)
>>
>> ## Get the map at right zoom level
>> OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
>> maptype='hybrid', zoom=15)
>>
>> ## Plot the points on the map
>> ggmap(OkatainaMap) +
>>    geom_point(data=Gaps, aes(x=lon, y=lat), pch=15, colour="chartreuse1",
>> size=2.5, alpha=1) +
>>    geom_point(data=Understorey, aes(x=lon, y=lat), pch=21, colour="gray40",
>> bg="black", size=3, alpha=1) +
>>    geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23, colour="gray40",
>> bg="blue", size=2.5, alpha=1) +
>>    geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
>> size=2.5, alpha=1)
>>
>> ##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)
>>
>> map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
>> north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")
>>
>> ...................
>>
>>
>> Dr. Chris Lusk
>> Senior Research Fellow
>> Environmental Research Institute
>> The University of Waikato
>> Private Bag 3105, Hamilton
>> New Zealand / Aotearoa
>> http://sci.waikato.ac.nz/sites/clusk/
>> Ph 64 7 838 4205
>> Senior Editor, *NZ J Botany*
>> ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
>>
>>          [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> [hidden email]
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>
>
>

--
#####################################
Tim Appelhans
Department of Geography
Environmental Informatics
Philipps Universität Marburg
Deutschhausstraße 12
Raum 00A08
35032 Marburg (Paketpost: 35037 Marburg)
Germany

Tel +49 (0) 6421 28-25957

http://environmentalinformatics-marburg.de/

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: putting scalebar and north arrow on google map

Bacou, Melanie
No self promotion, but in case you're looking for code examples using
leaflet plugins (scalebar and minimap) available through `tmap` :
http://tools.harvestchoice.org/ar/ (code is linked at the bottom of the
page).

--Mel.


On 7/18/2016 8:36 AM, Tim Appelhans wrote:

> My suggestion would be the wonderful tmap package. It is, however,
> using OpenStreetMap rather than google for background maps AFAIK.
>
> Tim
>
> On 18.07.2016 14:32, Manuel Spínola wrote:
>> Or you can try the package ggsn with the package ggmap
>>
>> Manuel
>>
>> 2016-07-17 22:57 GMT-06:00 Chris Lusk <[hidden email]>:
>>
>>> Hi - I've made a map to show the spatial arrangement of my plots,
>>> and would
>>> now like to add a scale bar (in hundreds of metres) and a north
>>> arrow. I've
>>> seen several solutions online, most of which threw error messages
>>> when I
>>> tried them. Although the solution below doesn't give an error
>>> message, it
>>> doesn't actually add anything to the map!
>>>
>>> Any advice would be appreciated.
>>>
>>> Chris
>>> ..........
>>>
>>> library(ggplot2)
>>> library(ggmap)
>>> library(maps)
>>> library(GISTools)
>>>
>>> ##Coordinates of four types of plots
>>> Gaps <- read.table(text="lon lat
>>> 176.431823     -38.086894
>>> 176.4329002     -38.08855667
>>> 176.4286505     -38.08421246
>>> 176.4239767     -38.08297953
>>> 176.4306576     -38.09032491
>>> 176.4181457     -38.08283416
>>> 176.4325089     -38.09042394
>>> 176.4243027     -38.08215021
>>> 176.4220882     -38.08720573
>>> 176.430974    -38.093108", header = TRUE, strip.white = TRUE)
>>>
>>> Understorey <- read.table(text="lon lat
>>> 176.431523   -38.086965
>>> 176.418408   -38.082935
>>> 176.4244189     -38.08242069
>>> 176.4287644     -38.08372266
>>> 176.4240118     -38.0823004
>>> 176.4333778     -38.08853369
>>> 176.4217424     -38.0876122
>>> 176.4309304     -38.09055117
>>> 176.4324084     -38.0907023
>>> 176.430821   -38.093687", header = TRUE, strip.white = TRUE)
>>>
>>> Treeferns <- read.table(text="lon lat
>>> 176.432134      -38.086298
>>> 176.4246547     -38.08226916
>>> 176.4335132     -38.08801622
>>> 176.4183628     -38.08260261
>>> 176.429       -38.08413018
>>> 176.4213997     -38.08710868
>>> 176.4304333     -38.09064678
>>> 176.4324081     -38.0909994
>>> 176.4242689     -38.08264669
>>> 176.429837      -38.093061", header = TRUE, strip.white = TRUE)
>>>
>>> Margins <- read.table(text="lon lat
>>> 176.4225302     -38.08177849
>>> 176.427018     -38.08879161
>>> 176.4207786     -38.08356826
>>> 176.4315118     -38.08251629
>>> 176.426456     -38.08920441
>>> 176.426010   -38.088253
>>> 176.422526   -38.082794
>>> 176.421399   -38.084780
>>> 176.429339   -38.092742", header = TRUE, strip.white = TRUE)
>>>
>>> ## Get the map at right zoom level
>>> OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
>>> maptype='hybrid', zoom=15)
>>>
>>> ## Plot the points on the map
>>> ggmap(OkatainaMap) +
>>>    geom_point(data=Gaps, aes(x=lon, y=lat), pch=15,
>>> colour="chartreuse1",
>>> size=2.5, alpha=1) +
>>>    geom_point(data=Understorey, aes(x=lon, y=lat), pch=21,
>>> colour="gray40",
>>> bg="black", size=3, alpha=1) +
>>>    geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23,
>>> colour="gray40",
>>> bg="blue", size=2.5, alpha=1) +
>>>    geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
>>> size=2.5, alpha=1)
>>>
>>> ##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)
>>>
>>> map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
>>> north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")
>>>
>>> ...................
>>>
>>>
>>> Dr. Chris Lusk
>>> Senior Research Fellow
>>> Environmental Research Institute
>>> The University of Waikato
>>> Private Bag 3105, Hamilton
>>> New Zealand / Aotearoa
>>> http://sci.waikato.ac.nz/sites/clusk/
>>> Ph 64 7 838 4205
>>> Senior Editor, *NZ J Botany*
>>> ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
>>>
>>>          [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> [hidden email]
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>
>>
>

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: putting scalebar and north arrow on google map

Dominik Schneider
+1 ggsn

On Mon, Jul 18, 2016 at 9:16 AM, Bacou, Melanie <[hidden email]> wrote:

> No self promotion, but in case you're looking for code examples using
> leaflet plugins (scalebar and minimap) available through `tmap` :
> http://tools.harvestchoice.org/ar/ (code is linked at the bottom of the
> page).
>
> --Mel.
>
>
>
> On 7/18/2016 8:36 AM, Tim Appelhans wrote:
>
>> My suggestion would be the wonderful tmap package. It is, however, using
>> OpenStreetMap rather than google for background maps AFAIK.
>>
>> Tim
>>
>> On 18.07.2016 14:32, Manuel Spínola wrote:
>>
>>> Or you can try the package ggsn with the package ggmap
>>>
>>> Manuel
>>>
>>> 2016-07-17 22:57 GMT-06:00 Chris Lusk <[hidden email]>:
>>>
>>> Hi - I've made a map to show the spatial arrangement of my plots, and
>>>> would
>>>> now like to add a scale bar (in hundreds of metres) and a north arrow.
>>>> I've
>>>> seen several solutions online, most of which threw error messages when I
>>>> tried them. Although the solution below doesn't give an error message,
>>>> it
>>>> doesn't actually add anything to the map!
>>>>
>>>> Any advice would be appreciated.
>>>>
>>>> Chris
>>>> ..........
>>>>
>>>> library(ggplot2)
>>>> library(ggmap)
>>>> library(maps)
>>>> library(GISTools)
>>>>
>>>> ##Coordinates of four types of plots
>>>> Gaps <- read.table(text="lon lat
>>>> 176.431823     -38.086894
>>>> 176.4329002     -38.08855667
>>>> 176.4286505     -38.08421246
>>>> 176.4239767     -38.08297953
>>>> 176.4306576     -38.09032491
>>>> 176.4181457     -38.08283416
>>>> 176.4325089     -38.09042394
>>>> 176.4243027     -38.08215021
>>>> 176.4220882     -38.08720573
>>>> 176.430974    -38.093108", header = TRUE, strip.white = TRUE)
>>>>
>>>> Understorey <- read.table(text="lon lat
>>>> 176.431523   -38.086965
>>>> 176.418408   -38.082935
>>>> 176.4244189     -38.08242069
>>>> 176.4287644     -38.08372266
>>>> 176.4240118     -38.0823004
>>>> 176.4333778     -38.08853369
>>>> 176.4217424     -38.0876122
>>>> 176.4309304     -38.09055117
>>>> 176.4324084     -38.0907023
>>>> 176.430821   -38.093687", header = TRUE, strip.white = TRUE)
>>>>
>>>> Treeferns <- read.table(text="lon lat
>>>> 176.432134      -38.086298
>>>> 176.4246547     -38.08226916
>>>> 176.4335132     -38.08801622
>>>> 176.4183628     -38.08260261
>>>> 176.429       -38.08413018
>>>> 176.4213997     -38.08710868
>>>> 176.4304333     -38.09064678
>>>> 176.4324081     -38.0909994
>>>> 176.4242689     -38.08264669
>>>> 176.429837      -38.093061", header = TRUE, strip.white = TRUE)
>>>>
>>>> Margins <- read.table(text="lon lat
>>>> 176.4225302     -38.08177849
>>>> 176.427018     -38.08879161
>>>> 176.4207786     -38.08356826
>>>> 176.4315118     -38.08251629
>>>> 176.426456     -38.08920441
>>>> 176.426010   -38.088253
>>>> 176.422526   -38.082794
>>>> 176.421399   -38.084780
>>>> 176.429339   -38.092742", header = TRUE, strip.white = TRUE)
>>>>
>>>> ## Get the map at right zoom level
>>>> OkatainaMap <- get_googlemap(center = c(lon = 176.425, lat = -38.0845),
>>>> maptype='hybrid', zoom=15)
>>>>
>>>> ## Plot the points on the map
>>>> ggmap(OkatainaMap) +
>>>>    geom_point(data=Gaps, aes(x=lon, y=lat), pch=15,
>>>> colour="chartreuse1",
>>>> size=2.5, alpha=1) +
>>>>    geom_point(data=Understorey, aes(x=lon, y=lat), pch=21,
>>>> colour="gray40",
>>>> bg="black", size=3, alpha=1) +
>>>>    geom_point(data=Treeferns, aes(x=lon, y=lat), pch=23,
>>>> colour="gray40",
>>>> bg="blue", size=2.5, alpha=1) +
>>>>    geom_point(data=Margins, aes(x=lon, y=lat), pch=17, colour="orange",
>>>> size=2.5, alpha=1)
>>>>
>>>> ##Add scale and north arrow (NEITHER COMMAND WORKS FOR ME)
>>>>
>>>> map.scale(x=176.42,y=-38.092, ratio=FALSE, relwidth=0.2, col="white")
>>>> north.arrow(xb=176.435, yb=-38.079, len=0.02, lab="N", col="white")
>>>>
>>>> ...................
>>>>
>>>>
>>>> Dr. Chris Lusk
>>>> Senior Research Fellow
>>>> Environmental Research Institute
>>>> The University of Waikato
>>>> Private Bag 3105, Hamilton
>>>> New Zealand / Aotearoa
>>>> http://sci.waikato.ac.nz/sites/clusk/
>>>> Ph 64 7 838 4205
>>>> Senior Editor, *NZ J Botany*
>>>> ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
>>>>
>>>>          [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-sig-Geo mailing list
>>>> [hidden email]
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>>
>>>>
>>>
>>>
>>
> _______________________________________________
> R-sig-Geo mailing list
> [hidden email]
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo