2015-11-20 2 views
0

J'apprends à utiliser R et Leaflet. J'ai presque fini de faire une carte en utilisant les comtés de Californie, mais je n'aime pas que je puisse voir d'autres états sur la carte. Je voudrais effacer la carte autour de mon polygone (les comtés). J'ai vu un problème similaire résolu ailleurs mais je n'en connais pas assez pour appliquer ce qui a été dit à mon code. Quelqu'un pourrait-il vérifier ce code et suggérer ce que j'ai besoin d'ajouter?Restreindre la partie visible d'une mosaïque Leaflet à une zone de polygone

Si vous faites défiler vers le bas de ce lien, vous verrez ce que j'essaie de faire. http://rpubs.com/stefanya/127436

Le code J'utilise est:

#loading shapefile 
    counties <- readOGR("./shapefiles", layer="cb_2014_us_county_20m") 

#filtering for only california 
    counties <- subset(counties, [email protected]$STATEFP=="06") 

#making a leaflet map of california counties 
    leaflet() %>% addTiles() %>% addPolygons(data=counties) 

#merging the data into this shapefile 
    [email protected] = data.frame([email protected],  sumByCounty[match([email protected][,"NAME"], sumByCounty[,"NAME"]),]) 

#set color palette 
    colorRamp <- colorRamp(c("#2c7fb8","#7fcdbb","#edf8b1"), interpolate = "spline") 
    palette <- colorNumeric(colorRamp, [email protected]$progress) 

    leaflet() %>% addProviderTiles("Stamen.TonerLite") %>% 
addPolygons(
    weight= 2, 
    stroke = TRUE, 
    fillOpacity = .65, 
    data=counties, 
    color = ~palette(progress), 
    popup = ~paste("<strong>County:</strong>",NAME, 
        "<br>", 
        "<strong>Total Responses:</strong>",sumByCounty, 
        "<br>", 
        "<strong>Complete:</strong>",progress,"<strong>%</strong>") 
) %>% addLegend(title = "Response <br> Goal Met", pal = palette, values = [email protected]$progress, bins=5, opacity = 1, position="topright", labFormat = labelFormat(suffix = '%')) 
+1

une solution simple serait de construire un grand polygone sur les autres États pour les cacher ... – ghybs

+0

Vous pouvez peut-être créer votre propre tuile personnalisée. https://help.openstreetmap.org/questions/136/how-do-i-render-my-own-maps-for-my-website –

+0

Est-ce le lien vers le "problème similaire résolu ailleurs": http://gis.stackexchange.com/questions/73048/how-do-i-clip-osm-basemap-with-a-polygon parce que c'est fondamentalement @ghybs contournement, et pourrait être appliqué à la brochure assez facilement. – Spacedman

Répondre

0

Créer un polygone avec deux anneaux, la première avec la géométrie de la terre entière (ou les limites de votre point de vue), la seconde avec la géométrie de la Californie:

[ 
    // World 
    [[90,-180], [90,180], [-90,180], [-90,-180]], 
    // California 
    [[42.006186,-123.233256],[42.011663,-122.378853],[41.995232,-121.037003],[41.995232,-120.001861],[40.264519,-119.996384],[38.999346,-120.001861],[38.101128,-118.71478],[37.21934,-117.498899],[36.501861,-116.540435],[35.970598,-115.85034],[35.00118,-114.634459],[34.87521,-114.634459],[34.710902,-114.470151],[34.448009,-114.333228],[34.305608,-114.136058],[34.174162,-114.256551],[34.108438,-114.415382],[33.933176,-114.535874],[33.697668,-114.497536],[33.54979,-114.524921],[33.40739,-114.727567],[33.034958,-114.661844],[33.029481,-114.524921],[32.843265,-114.470151],[32.755634,-114.524921],[32.717295,-114.72209],[32.624187,-116.04751],[32.536556,-117.126467],[32.668003,-117.24696],[32.876127,-117.252437],[33.122589,-117.329114],[33.297851,-117.471515],[33.538836,-117.7837],[33.763391,-118.183517],[33.703145,-118.260194],[33.741483,-118.413548],[33.840068,-118.391641],[34.042715,-118.566903],[33.998899,-118.802411],[34.146777,-119.218659],[34.26727,-119.278905],[34.415147,-119.558229],[34.40967,-119.875891],[34.475393,-120.138784],[34.448009,-120.472878],[34.579455,-120.64814],[34.858779,-120.609801],[34.902595,-120.670048],[35.099764,-120.631709],[35.247642,-120.894602],[35.450289,-120.905556],[35.461243,-121.004141],[35.636505,-121.168449],[35.674843,-121.283465],[35.784382,-121.332757],[36.195153,-121.716143],[36.315645,-121.896882],[36.638785,-121.935221],[36.6114,-121.858544],[36.803093,-121.787344],[36.978355,-121.929744],[36.956447,-122.105006],[37.115279,-122.335038],[37.241248,-122.417192],[37.361741,-122.400761],[37.520572,-122.515777],[37.783465,-122.515777],[37.783465,-122.329561],[38.15042,-122.406238],[38.112082,-122.488392],[37.931343,-122.504823],[37.893004,-122.701993],[38.029928,-122.937501],[38.265436,-122.97584],[38.451652,-123.129194],[38.566668,-123.331841],[38.698114,-123.44138],[38.95553,-123.737134],[39.032208,-123.687842],[39.366301,-123.824765],[39.552517,-123.764519],[39.831841,-123.85215],[40.105688,-124.109566],[40.259042,-124.361506],[40.439781,-124.410798],[40.877937,-124.158859],[41.025814,-124.109566],[41.14083,-124.158859],[41.442061,-124.065751],[41.715908,-124.147905],[41.781632,-124.257444],[42.000709,-124.213628],[42.006186,-123.233256]] 
] 

Exemple sur Plunker: http://embed.plnkr.co/ZWzuxz/preview