#!mathjax#

title: Mapping Hans Island

  getOption('mapmiscCachePath')
## [1] "/var/folders/1s/zkmc02qn4k18r6jdtbb459hc0000gn/T//RtmpmPTDOX"
  getOption('mapmiscCacheReadOnly')
## [1] FALSE
if(testing) {
  options(mapmiscVerbose = TRUE)
}
coords = rbind(Alert = c(-62.338889, 82.501389),
  Qaanaaq = c(-69.238685,77.466335), 	
  'Alex Fjord' = c(-75.999722, 78.9),
  'Hans island' = c(-66.459722, 80.828056)
)
x = vect(coords, 
  atts=data.frame(name=rownames(coords)),
  crs=crsLL)
data('worldMap')
worldMap = unwrap(worldMap)
map = openmap(x, path='osm', verbose=TRUE,
    maxTiles=12, buffer=c(30,3), fact=fact)
## zoom is  3 ,  7 tiles
## osm 
## http://tile.openstreetmap.org/ 
## downloading  http://tile.openstreetmap.org/3/1/0.png 
## downloading  http://tile.openstreetmap.org/3/1/1.png 
## downloading  http://tile.openstreetmap.org/3/2/0.png 
## downloading  http://tile.openstreetmap.org/3/2/1.png 
## downloading  http://tile.openstreetmap.org/3/3/0.png 
## downloading  http://tile.openstreetmap.org/3/3/1.png 
## reprojecting
## reprojecting:   4  cycles:1  2  3  3 
## poles:  north
map.new(map)
plot(map,add=TRUE)
points(x)
text(x, label=x$name, pos=4)
scaleBar(x, 'bottom')
scaleBar(x, 'left', seg.len=0, bty='n')
plot of chunk osm

plot of chunk osm

  mapSat = openmap(x, path='opentopomap', maxTiles=4, buffer=c(30,3), fact=fact)
  map.new(mapSat)
  plot(mapSat,add=TRUE)
  points(x)
  text(x, label=x$name, pos=4)
  scaleBar(x, 'bottom')
  scaleBar(x, 'left', seg.len=0, bty='n')
plot of chunk mapquest

plot of chunk mapquest

  mapSat = openmap(x=x[x$name=='Hans island',], 
    path='esri-satellite', fact=fact,  
    buffer=c(8,6,1,1.5), zoom=5)
  
  map.new(mapSat)
  plot(mapSat,add=TRUE)
  points(x, pch=1, col='red', cex=2)
  text(x, label=x$name, pos=4)
  scaleBar(x, 'bottomright')
plot of chunk satellite

plot of chunk satellite

  omercCrs = omerc(x)
  xMerc = project(x, omercCrs)
  mapMerc = openmap(xMerc, path='opentopomap',
    zoom=3, fact=fact,
    buffer=c(3,2)*100*1000)
  
  map.new(mapMerc)
  plot(mapMerc,add=TRUE)
  points(xMerc)
  plot(wrapPoly(worldMap, omercCrs), add=TRUE)
  text(xMerc, label=xMerc$name, pos=4, halo=TRUE)
  scaleBar(xMerc, 'bottom', bty='n')
  scaleBar(xMerc, 'left', seg.len=0, bty='n')
plot of chunk omerc

plot of chunk omerc

map = openmap(xMerc[grep("Hans", xMerc$name),],     
    path='opentopomap', fact=fact,
    buffer=500, verbose=TRUE)   
## zoom is  13 ,  6 tiles
## opentopomap 
## https://a.tile.opentopomap.org/ 
## downloading  https://a.tile.opentopomap.org/13/2583/805.png 
## downloading  https://a.tile.opentopomap.org/13/2583/806.png 
## downloading  https://a.tile.opentopomap.org/13/2583/807.png 
## downloading  https://a.tile.opentopomap.org/13/2584/805.png 
## downloading  https://a.tile.opentopomap.org/13/2584/806.png 
## downloading  https://a.tile.opentopomap.org/13/2584/807.png 
## reprojecting
## reprojecting:   3  cycles:1  2  2
map.new(map)
plot(map, add=TRUE)
points(xMerc, pch=4, col='red', cex=2)
text(xMerc, label=xMerc$name, pos=1, col='red', halo=TRUE)
scaleBar(xMerc, 'bottomleft')
plot of chunk hansisland

plot of chunk hansisland

  map = openmap(x[x$name=='Alex Fjord',], 		
    path='opentopomap', zoom=4, fact=fact, 
    buffer=c(5,7,2,1.5), verbose=TRUE)   
## opentopomap 
## https://a.tile.opentopomap.org/ 
## downloading  https://a.tile.opentopomap.org/4/4/1.png 
## downloading  https://a.tile.opentopomap.org/4/4/2.png 
## reprojecting
## reprojecting:   2  cycles:1  1
  map.new(map)
  plot(map, add=TRUE)
  points(x, pch=4, col='red', cex=2)
  text(x, label=x$name, pos=1, col='red', halo=TRUE)
  scaleBar(x, 'bottomleft')
plot of chunk nrcanAlex

plot of chunk nrcanAlex

  crsA = crs("+init=epsg:3573")
  theBox = llCropBox(crsA, buffer.width=100*1000,  crop.distance = 5e7, crop.poles = FALSE, crop.leftright=TRUE, remove.holes=TRUE, cycles=4)
  attributes(crsA)[names(theBox)] = theBox

  x2 = project(x, crsA)
  map = openmap(x2,     
    path='opentopomap', zoom=3, fact=fact, 
    buffer=c(5,7,3,7)*100*1000)   
  map.new(map)
  plot(map, add=TRUE)
  plot(wrapPoly(worldMap, crsA), add=TRUE)
  gridlinesWrap(crsA,norths = seq(70,90,by=5), easts=0)
  points(x2, pch=4, col='red', cex=2)
  text(x2, label=x2$name, pos=1, col='red', halo=TRUE)
  scaleBar(crsA, 'topleft', bty='n')
  scaleBar(crsA, 'bottomright', bty='n')
plot of chunk arcticCRS

plot of chunk arcticCRS

Mapping Antipodes Island

Check to see that Mount Waterhouse and a rocky island are correctly positioned

waterhouseLL = vect(
  cbind(x=178.7729285, y=-49.6941201), 
  crs=crsLL)

rockLL = vect(
  cbind(x=178.78542, y=-49.70003), 
  crs=crsLL)



waterhouseMerc <- project(waterhouseLL, crsMerc)
  
  
rockMerc = project(rockLL, crsMerc)
  mollWaterhouse = moll(waterhouseMerc, angle=45, flip=TRUE)
  waterhouseWrap = project(waterhouseMerc, mollWaterhouse)
  
  southInset = openmap(x=waterhouseWrap, 
    path='osm', zoom = 3, fact=2,#fact, 
    buffer=c(0.8, 0.2,0.4, 0.6)*1000*1000, verbose=TRUE)#c(4,1,2,1)*1)
## osm 
## http://tile.openstreetmap.org/ 
## downloading  http://tile.openstreetmap.org/3/0/5.png 
## downloading  http://tile.openstreetmap.org/3/7/4.png 
## downloading  http://tile.openstreetmap.org/3/7/5.png 
## reprojecting
## reprojecting:   2  cycles:1  1

Red circle has radius 1km.

mapMerc = openmap(waterhouseMerc, buffer=4000)

map.new(mapMerc)
plot(mapMerc, add=TRUE)
points(waterhouseMerc, col='blue', cex=5, pch=1)
# fix
insetMap(crs=mapMerc, 
  pos='bottomright', 
  map=southInset, cropInset = NULL)
#scaleBar(crs=mapMerc,  seg.len=35, pos='center')
sRes = scaleBar(mapMerc, 'bottomleft', cex=1.5, bty='n', outer=FALSE, inset=0.1)

# check if scale bar appears off
scaleCentre = vect(
  cbind(Re(sRes$out$textxy), Im(sRes$out$textxy)), 
  crs=crs(mapMerc))

  scaleCentreLL = project(
    scaleCentre, 
    crsLL
  )	
  circle = vect(
    geosphere::destPoint(
      crds(scaleCentreLL),
      seq(0,360,len=100),
      1000
    ),
    crs = crsLL)
  circle = project(circle, crs(mapMerc))
  points(circle, cex=0.3, col='red')