दिलचस्प पोस्ट
एक डीआईवी बनाओ एक संपूर्ण तालिका सेल भरें जावा और SQLite Ggplot2 में प्लॉट और लीजेंड के लिए एक क्षैतिज रेखा जोड़ें Google Play और OpenSSL चेतावनी संदेश स्विफ्ट 3 उपयोगकर्ता ऑब्जेक्ट से कस्टम ऑब्जेक्ट को सहेजना और पुनः प्राप्त करना छवि फ़ाइल के लिए ब्राउज़ करें और इसे जावा स्विंग का उपयोग करें URL को साफ करने के लिए * .php पुनर्निर्देशित करें जब Linq में कास्ट () और ओफ्टाइप () का उपयोग किया जाए iPhone UITextField – प्लेसहोल्डर टेक्स्ट का रंग बदलें एनएटी में लॉग-इन / कनेक्टेड उपयोगकर्ताओं की सूची कैसे प्राप्त करें? डेल्फी में कौन सी चर का उपयोग किया जाता है? एक छवि दी गई भूलभुलैया का प्रतिनिधित्व करना और हल करना एक्वाप्स में जवाडॉक पैकेजों को पहचानने में विफल रहा है "SELECT * FROM table_name;" के लिए MySQL पंक्ति आदेश UIWebView से एम्बेडेड YouTube वीडियो प्लेबैक से NSNotifications कैसे प्राप्त करें

Ggmap के साथ विश्व मानचित्र

मैं जीजीएमएप का उपयोग कर रहा हूं और ऑस्ट्रेलिया पर केन्द्रित दुनिया का एक मानचित्र बनाना चाहता हूं, जिसके लिए मैं आसानी से भूकोणित अंक साजिश कर सकता हूं। अन्य मैपिंग पैकेजों में से कुछ की तुलना में ggmap का उपयोग करना बहुत आसान लगता है। फिर भी जब मैं नीचे दिए गए कोड का उपयोग करते हुए मानचित्रों के माध्यम से त्रुटियों को लेता हूं।

gc <- geocode('australia') center <- as.numeric(gc) > map <- get_map(location = center, source="google", maptype="terrain", zoom=0) Error: zoom must be a whole number between 1 and 21 

Get_map सहायता से: ज़ूम: नक्शा ज़ूम, 0 (संपूर्ण विश्व) से 21 (बिल्डिंग), डिफ़ॉल्ट मान 10 (शहर)। ओपनस्ट्राइटमैप्स 18 की ज़ूम को सीमित करता है, और पठार के नक्शे की सीमा मैप्टिपे पर निर्भर करती है। 'ऑटो' स्वचालित रूप से बक्से बॉक्स विनिर्देशों के लिए ज़ूम को निर्धारित करता है, और केंद्र / ज़ूम विनिर्देशों के साथ 10 में चूक है। "

किसी के ज़ूम को बदलने के लिए get_map के लिए त्रुटि नहीं है, लेकिन उस मानचित्र की साजिश रचने के लिए है

 map <- get_map(location = center, source="google", maptype="terrain", zoom=1) ggmap(map) Warning messages: 1: In min(x) : no non-missing arguments to min; returning Inf 2: In max(x) : no non-missing arguments to max; returning -Inf 3: In min(x) : no non-missing arguments to min; returning Inf 4: In max(x) : no non-missing arguments to max; returning -Inf 

ऐसा लगता है कि देशांतर को खींचा नहीं जा रहा है। अंत में 2 की ज़ूम के साथ यह काम करता है लेकिन पूरी दुनिया के मानचित्र के माध्यम से नहीं लाता है

तो, मेरा सवाल है कि मैं एक विश्व मानचित्र प्राप्त करने के लिए get_map का उपयोग कैसे करूं?

सत्र की जानकारी:

sessionInfo () आर संस्करण 2.15.0 (2012-03-30) प्लेटफार्म: i386-pc-mingw32 / i386 (32-बिट)

 locale: [1] LC_COLLATE=English_United Kingdom.1252 [2] LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] mapproj_1.1-8.3 maps_2.2-6 rgdal_0.7-12 sp_0.9-99 [5] ggmap_2.1 ggplot2_0.9.1 loaded via a namespace (and not attached): [1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2 grid_2.15.0 [5] labeling_0.1 lattice_0.20-6 MASS_7.3-17 memoise_0.1 [9] munsell_0.3 plyr_1.7.1 png_0.1-4 proto_0.3-9.2 [13] RColorBrewer_1.0-5 reshape2_1.2.1 RgoogleMaps_1.2.0 rjson_0.2.8 [17] scales_0.2.1 stringr_0.6 tools_2.15.0 

Solutions Collecting From Web of "Ggmap के साथ विश्व मानचित्र"

संपादित करें : ggplot2 v 0.9.3 में अपडेट किया गया

मैंने कुछ इसी तरह की कोशिश की, लेकिन थोड़ी सी सफलता के साथ। हालांकि, map पैकेज से विश्व मानचित्र को केन्द्रित करने के कई तरीके हैं: यहां देखें, यहां , और यहां । उत्तरार्द्ध से कोड का उपयोग करते हुए, यहां एक उदाहरण है, जो 160 के भूखंडों पर दुनिया के नक्शे को केन्द्रित करता है, भूखंडों क्रान दर्पण स्थानों (जीओजीपीएप पैकेज से जीओकोड geocode() फ़ंक्शन का उपयोग करके प्राप्त समन्वय geocode() जीजीप्लोट 2 का उपयोग करके प्लॉट किए गए विश्व मानचित्र पर और न्यूजीलैंड geom_polygon ) मानचित्र के बाईं ओर स्थित अफ्रीका के 160 अक्षांश पर नक्शा केंद्रित करना, और नक्शे के दायीं ओर स्थित अधिकांश ग्रीनलैंड।

 library(maps) library(plyr) library(ggplot2) library(sp) library(ggmap) # Get some points to plot - CRAN Mirrors Mirrors = getCRANmirrors(all = FALSE, local.only = FALSE) Mirrors$Place = paste(Mirrors$City, ", ", Mirrors$Country, sep = "") # Be patient tmp = geocode(Mirrors$Place) Mirrors = cbind(Mirrors, tmp) ################################################################################################### # Recentre worldmap (and Mirrors coordinates) on longitude 160 ### Code by Claudia Engel March 19, 2012, www.stanford.edu/~cengel/blog ### Recenter #### center <- 160 # positive values only # shift coordinates to recenter CRAN Mirrors Mirrors$long.recenter <- ifelse(Mirrors$lon < center - 180 , Mirrors$lon + 360, Mirrors$lon) # shift coordinates to recenter worldmap worldmap <- map_data ("world") worldmap$long.recenter <- ifelse(worldmap$long < center - 180 , worldmap$long + 360, worldmap$long) ### Function to regroup split lines and polygons # Takes dataframe, column with long and unique group variable, returns df with added column named group.regroup RegroupElements <- function(df, longcol, idcol){ g <- rep(1, length(df[,longcol])) if (diff(range(df[,longcol])) > 300) { # check if longitude within group differs more than 300 deg, ie if element was split d <- df[,longcol] > mean(range(df[,longcol])) # we use the mean to help us separate the extreme values g[!d] <- 1 # some marker for parts that stay in place (we cheat here a little, as we do not take into account concave polygons) g[d] <- 2 # parts that are moved } g <- paste(df[, idcol], g, sep=".") # attach to id to create unique group variable for the dataset df$group.regroup <- g df } ### Function to close regrouped polygons # Takes dataframe, checks if 1st and last longitude value are the same, if not, inserts first as last and reassigns order variable ClosePolygons <- function(df, longcol, ordercol){ if (df[1,longcol] != df[nrow(df),longcol]) { tmp <- df[1,] df <- rbind(df,tmp) } o <- c(1: nrow(df)) # rassign the order variable df[,ordercol] <- o df } # now regroup worldmap.rg <- ddply(worldmap, .(group), RegroupElements, "long.recenter", "group") # close polys worldmap.cp <- ddply(worldmap.rg, .(group.regroup), ClosePolygons, "long.recenter", "order") # use the new grouping var ############################################################################# # Plot worldmap using data from worldmap.cp windows(9.2, 4) worldmap = ggplot(aes(x = long.recenter, y = lat), data = worldmap.cp) + geom_polygon(aes(group = group.regroup), fill="#f9f9f9", colour = "grey65") + scale_y_continuous(limits = c(-60, 85)) + coord_equal() + theme_bw() + theme(legend.position = "none", panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank(), #axis.text.x = element_blank(), axis.text.y = element_blank(), axis.ticks = element_blank(), panel.border = element_rect(colour = "black")) # Plot the CRAN Mirrors worldmap = worldmap + geom_point(data = Mirrors, aes(long.recenter, lat), colour = "red", pch = 19, size = 3, alpha = .4) # Colour New Zealand # Take care of variable names in worldmap.cp head(worldmap.cp) worldmap + geom_polygon(data = subset(worldmap.cp, region == "New Zealand", select = c(long.recenter, lat, group.regroup)), aes(x = long.recenter, y = lat, group = group.regroup), fill = "blue") 

यहां छवि विवरण दर्ज करें

मुझे हाल ही में एक ही त्रुटि मिल गई है और यह $ $ $ 80 डिग्री के बाहर अक्षांश पसंद नहीं करने के लिए नीचे ggmap उबला हुआ है।

हालांकि, मुझे अपनी छवि को अलग से डाउनलोड करना पड़ा क्योंकि यह डाउनलोड के लिए बहुत बड़ा था (ओएसएम के साथ); यह आपकी समस्या नहीं है, लेकिन मैं इसे भविष्य के पाठकों के लिए रिकॉर्ड करता हूं।

यहां बताया गया है कि मैंने इसे कैसे हल किया:

  • BigMap के माध्यम से एक मर्केंटर अनुमानित छवि का अलग डाउनलोड
  • अक्षांश को कुछ ध्यान देने की जरूरत थी: मुझे ऐसी त्रुटियां मिल गईं जो आपने $ $ pm $ 80 डिग्री के बाहर अक्षांश सीमा के साथ दिखायीं, जब मुझे उम्मीद थी कि 85 डिग्री ओएसएम कवर तक सब कुछ ठीक होना चाहिए), लेकिन मैंने उन्हें ट्रैक नहीं किया क्योंकि मैं वैसे भी बहुत अधिक अक्षांशों की आवश्यकता नहीं है
  • 0 डिग्री / 0 डिग्री सेंटर मेरे उद्देश्य के लिए अच्छा था (मैं यूरोप में हूं :-)), लेकिन आप निश्चित रूप से छवि काट कर सकते हैं, भले ही यह आपके लिए अच्छा है और इसे खुद को cbind द्वारा cbind बस सुनिश्चित करें कि आप अपने कट के देशांतर को जानते हैं
  • फिर अपनी छवि का बाउंडिंग बॉक्स सेट करें
  • और उपयुक्त वर्गों को असाइन करें

यहां मैं क्या करता हूं:

 require ("ggmap") library ("png") zoom <- 2 map <- readPNG (sprintf ("mapquest-world-%i.png", zoom)) map <- as.raster(apply(map, 2, rgb)) # cut map to what I really need pxymin <- LonLat2XY (-180,73,zoom+8)$Y # zoom + 8 gives pixels in the big map pxymax <- LonLat2XY (180,-60,zoom+8)$Y # this may or may not work with google # zoom values map <- map [pxymin : pxymax,] # set bounding box attr(map, "bb") <- data.frame (ll.lat = XY2LonLat (0, pxymax + 1, zoom+8)$lat, ll.lon = -180, ur.lat = round (XY2LonLat (0, pxymin, zoom+8)$lat), ur.lon = 180) class(map) <- c("ggmap", "raster") ggmap (map) + geom_point (data = data.frame (lat = runif (10, min = -60 , max = 73), lon = runif (10, min = -180, max = 180))) 

परिणाम:
ggplot दुनिया का नक्शा

संपादित करें: मैंने आपके Google नक्शे के साथ थोड़ा सा खेला, लेकिन मुझे अक्षांश सही नहीं मिला। 🙁

जीजीप्लोट की इनबिल्ट कॉन्सडीमैप देखें यह टाइल्स के तीसरे पक्ष के सेट की आवश्यकता के बिना मानचित्र बना सकता है। सरल नक्शों के लिए यह बहुत अच्छा है और सभी सुंदरता का उपयोग कर सकते हैं जो कि ggplot है।

http://docs.ggplot2.org/current/coord_map.html