标签: leaflet

是否可以在Leaflet.Draw中放置大小和数量限制?

这个问题是针对Leaflet用户(以及使用Leaflet.draw插件的用户)...

我正在使用Leaflet,并希望允许我的用户在地图的任何区域上绘制1 - 且仅1 - 单个多边形.我还想以某种方式限制该多边形的大小(例如限制正方形的边长或覆盖它的区域 - 最好用度数指定,这样无论缩放如何都会转换设置的大小限制水平).

我的最终目标是简单地提取4个方形顶点的坐标或多边形区域覆盖的坐标.

也就是说,我找到了Leaflet.Draw插件.这很棒,但是,我需要将其功能限制在我的要求之内(一次只绘制1个多边形,特别是不能将尺寸绘制得太大).这可能吗?如果是这样,怎么样?

无论是否可能,有没有更好的方法来做这件事?

javascript plugins leaflet leaflet.draw

1
推荐指数
1
解决办法
1739
查看次数

angular leaflet directive - 单击标记的双向属性

我正在使用angular-leaflet指令,我想知道我的标记对象数组中的哪个标记被点击了.我知道有一些方法可以获得类似于中心的双向属性,但是对于选定的标记.

angularjs leaflet

1
推荐指数
1
解决办法
1815
查看次数

添加多边形以映射R小册子

我正在尝试使用rCharts包显示R的地图.我开始简单,所以我想在地图上添加一个多边形.但我不知道如何.有任何想法吗?addPolygon不起作用.

map <- Leaflet$new()


map$tileLayer(provider = 'Stamen.TonerLite')

map$setView(c(48.1, 16.7), zoom = 10)
map$addPolygon(
  c(48.99831, 49.08815, 49.08815, 48.99831, 48.99831),
  c(13.42666, 13.42666, 13.56383, 13.56358, 13.42666),
  layerId=c("1"),
  options=opts,
  defaultOptions=opts)
map
Run Code Online (Sandbox Code Playgroud)

r leaflet rcharts

1
推荐指数
1
解决办法
2633
查看次数

具有leafletR可变点大小的交互式地图

我创建了一个交互式地图如下:

library(leafletR)
data(quakes)

# store data in GeoJSON file (just a subset here)
q.dat <- toGeoJSON(data=quakes[1:99,], dest=tempdir(), name="quakes")

# make style based on quake magnitude
q.style <- styleGrad(prop="mag", breaks=seq(4, 6.5, by=0.5), style.val=rev(heat.colors(5)), leg="Richter Magnitude", fill.alpha=0.7, rad=8)

# create map
q.map <- leaflet(data=q.dat, dest=tempdir(), title="Fiji Earthquakes", base.map="osm", style=q.style, popup="mag")

# view map in browser
rstudio::viewer(q.map)
Run Code Online (Sandbox Code Playgroud)

现在,我想让圆的大小依赖于另一个变量.让我们说变量'station'.我怎样才能做到这一点?如果这个包不可能,我打开使用另一个包...只要我可以放一个图例,地图是交互式的,点击时会出现一个弹出窗口,颜色可能取决于连续变量.

r leaflet

1
推荐指数
1
解决办法
1508
查看次数

Leaflet:检查对象是Path还是Marker

我有以下代码使用Mapbox.js将GeoJSON图层添加到地图中(当然这是基于Leaflet.js构建的):

var orgLayer = L.geoJson(boundaries, {
    onEachFeature: onEachFeature
});
this.layerGroup.addLayer(orgLayer);

function onEachFeature(feature, layer) {
    layer.on('click', zoomToFeature, _this);
}
function zoomToFeature(e) {
    this.map.fitBounds(e.target.getBounds());
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是GeoJSON可能包含多边形或点,因此Leaflet将图层渲染为路径或标记.当它是多边形(路径)时,一切正常.当它是Points(Markers)时,代码失败e.target.getBounds().

这是可以理解的,因为getBounds它只是Leaf中Leaf的一个方法,而不是Marker上的方法.我猜我可以使用Marker e.target.getLatLng().

但是,如何调整我的代码以检查目标是标记还是路径,并使用正确的方法?

javascript leaflet

1
推荐指数
1
解决办法
2705
查看次数

1
推荐指数
1
解决办法
2127
查看次数

Leaflet R基于多个变量的颜色图?

从我所看到的传单中的彩色地图通常只描绘一个变量(GDP,犯罪统计数据,温度等),如下所示:

一.有没有办法在传单R中制作显示数据框中最高变量的地图?例如,显示哪个酒精饮料在一个国家/地区最受欢迎,比如这个地图?

这http://i.dailymail.co.uk/i/pix/2011/02/17/article-1357892-0D3BD418000005DC-958_972x546.jpg 说我有一个看起来像这样的数据帧,我想做一个类似的映射到酒精饮料一...

Country  Beer Wine Spirits Coffee Tea  
Sweden     7   7      5      10    6
USA        9   6      6       7    5
Russia     5   3      9       5    8
Run Code Online (Sandbox Code Playgroud)

在传单R中有没有办法挑选出含酒精的饮料,给它们分配一种颜色,然后在地图上显示它们,以显示哪种类型的酒精饮料在三个不同的国家最受欢迎?

r leaflet

1
推荐指数
1
解决办法
1227
查看次数

如何参考反应小叶组件的小叶层?

我使用react-leaflet在地图上可视化很长的路径.用户可以从列表中进行选择,我希望所选路径具有不同的颜色.更改状态和再次渲染太慢,我正在寻找更快的解决方案.

Leaflet路径元素有setStyle()方法,所以我的第一个想法是使用它而不是再次渲染.但是如何参考传单层?

class MyPathComponent extends React.Component {

  shouldComponentUpdate(nextProps, nextState) {
    if (nextProps.selected){
      this.setState({selected: true});
      LEAFLET_POLYLINE.setStyle({
        color: 'red'
      });
    }
    return false;
  }

  render() {
    return(
      <Polyline polylines={this.props.path} />
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

那么我应该在这段代码中编写什么而不是LEAFLET_POLYLINE

leaflet reactjs react-leaflet

1
推荐指数
1
解决办法
2869
查看次数

如何从R(Shiny)下载在leaflet.draw中绘制的多边形作为GeoJson文件

我使用leaflet.extra包在R-shiny中创建了一个应用程序,放置了一个用户可以在其中绘制多边形的地图,我的目标是能够下载用户以GeoJson或Shapefil(.shp )。我的应用程序如下所示:

ui <- fluidPage(


textOutput("text"),leafletOutput("mymap")  )
Run Code Online (Sandbox Code Playgroud)

和服务器:

poly<-reactiveValues(poligonos=list()) #save reactiveValues



output$mymap <- renderLeaflet({

     leaflet("mymap") %>%
      addProviderTiles(providers$Stamen.TonerLite, #map type or map theme. -default($Stame.TonerLite)
                       options = providerTileOptions(noWrap = TRUE) 

      )%>% addDrawToolbar(
        targetGroup='draw',
        editOptions = editToolbarOptions(selectedPathOptions = selectedPathOptions()))  %>%
      addLayersControl(overlayGroups = c('draw'), options =
                         layersControlOptions(collapsed=FALSE)) %>%
      addStyleEditor()




  })  

 polygons<- eventReactive(input$mymap_draw_all_features, {

   features<-input$mymap_draw_all_features
   poly$poligonos<-c(poly$poligonos,features)

   return(poly$poligonos)

  })
Run Code Online (Sandbox Code Playgroud)

名为“多边形”的eventReactive函数负责记录绘制的多边形(坐标),但我不知道如何保存它们或将其转换为GeoJson或shapefile格式。

r leaflet shiny leaflet.draw

1
推荐指数
1
解决办法
740
查看次数

tilelayer上的noWrap选项仅部分起作用

为了防止在最高缩放级别上出现多个重复的世界地图,我正在使用noWrap=true选项。它运作良好,但仅在地图的左侧(灰色区域),右侧仍显示额外的图块。这是为什么?

UPDATE1:看起来是特定Mapbox磁贴或其加载方式存在问题吗?在这里noWrap和https://{s}.tiles.mapbox.com/v3/ebrelsford.ho06j5h0/{z}/{x}/{y}.png

完美运行:NoWrap可以运行JSBIN链接

但是一旦我改变了使用样式加载图块的另一种方式

NoWrap损坏的JSBIN链接

我可以向右滚动但仍能获得图块

我打开了一个github问题,我怀疑这是库https://github.com/Leaflet/Leaflet/issues/5938的错误

在此处输入图片说明

leaflet mapbox

1
推荐指数
1
解决办法
1138
查看次数