2017-12-21 6 views
3

Ich versuche eine * .shp Datei hier zu plotten ArcGis. Mit Blick auf die page, wo ich die Daten nahm, würde ich erwarten, dass der farbige Bereich wie folgt aussieht:Wie man ein shp mit Löchern mit ggmap plant?

the map how I would expect it to be.

Aber wenn ich es plotte, bekomme ich etwas anderes (siehe unten). Insbesondere scheinen sich einige Polygone zu überlappen, und einige Bereiche sind mit einer doppelten blauen Schicht gefüllt (Alpha ist 0,5), während sie leer sein sollten.

library(ggmap) 
brMap <- qmap(location = 'baton rouge', zoom = 10, maptype = 'terrain') 

library(rgdal) 
indundationArea <- readOGR('dataset/Estimated_Flood_Inundation_Area/Estimated_Flood_Inundation_Area.shp') 
ogrInfo('dataset/Estimated_Flood_Inundation_Area/Estimated_Flood_Inundation_Area.shp') 
indundationArea <- spTransform(indundationArea, CRS("+proj=longlat +datum=WGS84")) 
indundationArea <- fortify(indundationArea) 

brMap + 
    geom_polygon(aes(x=long, y=lat, group=group), size=.2,color='blue', fill = 'blue', alpha=.5, data=indundationArea) 

enter image description here

+0

Wenn es ein Duplikat war, sollte das Problem durch Herauszoomen gelöst werden? Es ist nicht für mich. Auch ein Teil des Codes in der Antwort gibt einen Fehler: 'get_map (" new york city ", zoom = 10, source =" staubblatt ")' – Dambo

+1

Sie sollten ein reproduzierbares Beispiel liefern, nicht den Code, den Sie mit den Daten ausgeführt haben du hast. Lesen Sie, wie Sie ein [reproduzierbares Beispiel] bereitstellen können (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). p.s. Das ist eine potenziell gute Frage. – Masoud

+0

@Masoud die Daten sind verfügbar unter dem Link, den ich gab, die eine Zip-Datei ist. Gibt es eine Funktion zum Entpacken von einer URL und übergeben Sie eine einzelne Datei aus dem entpackten Ordner? – Dambo

Antwort

4

ist Ihr Problem durch Polygone mit Löchern verursacht. geom_polygon ist derzeit nicht in der Lage, diese korrekt darzustellen. Daher sollten Sie ggpolypath::geom_polypath wie folgt verwenden:

# continue after fortify 
library(ggpolypath) 
brMap + 
    geom_polypath(data = indundationArea, 
       aes(x=long, y=lat, group=group), 
       size=.2, 
       color='blue', 
       fill = 'blue', 
       alpha=.5) 

enter image description here

Eine weitere Option könnte this one sein. Allerdings funktionierte es nicht für mich ...