Instead of requesting a Switzerland map from Google, you should request a map of a specific location by specifying the longitude / latitude and the desired scale (and possibly scale). Then you do not have to use coord_map() and blur the image.
Here are the basics, you can play with colors and sizes, as in any ggplot:
library(ggplot2) library(ggmap) # copying text off screen # since the OP did not use dput() data<-read.table("clipboard") # reformat data=data[,-1] names(data)=c("lon","lat","id") data$lon <- as.numeric(gsub('[\\(\\)\\,]', '', data$lon)) data$lat <- as.numeric(gsub('[\\(\\)\\,]', '', data$lat)) head(data) # lon lat id # 1 7.17350 45.8688 2 # 2 7.17254 45.8689 3 # 3 7.17164 45.8692 4 # etc # determine a reasonable center for map, # this could fail in some places (near poles, 180th meridian) # also google appears to shift things slightly center = paste(min(data$lat)+(max(data$lat)-min(data$lat))/2, min(data$lon)+(max(data$lon)-min(data$lon))/2, sep=" ") # get map image from google map <- get_map(location = center, zoom = 11, maptype = "terrain", source = "google") # start a ggplot. it won't plot til we type p p <- ggmap(map) # add text labels, these will overlap p <- p + geom_text(data=data,aes(x = lon, y = lat, label = id), colour="white",size=4,hjust=0, vjust=0)+ theme(legend.position = "none") # add points last so they are on top p <- p + geom_point(data=data,aes(x=lon, y=lat),colour="white",size=2) # display plot p

This is naturally described in ?get_map and ?get_googlemap .
source share