2012-03-26 74 views
5

我想用Leaflet绘制多个地理点。因此我想使用HTML5画布来提高性能。 我的datasoure是geoJSON。正如我在Leaflet的文档中看到的,不可能将地理位置绘制为画布。传单js:将POIs绘制为画布

var anotherGeojsonLayer = new L.GeoJSON(coorsField, { 
     pointToLayer: function (latlng){ 
      return new L.Marker(latlng, { 
       icon: new BaseballIcon() 
      }); 
     } 
    }); 

我觉得我应该挂在这里:

pointToLayer:功能(经纬度){}

是否有人知道怎么画我的经纬度对象作为画布?

回答

5

在原始答案上展开以防万一任何人需要为小册子1.0。您仍应使用L.circleMarker()(Leaflet circleMarker documentation)而不是L.marker(),但使用画布的方式已更改。

在Leaflet 1.0中,实验L_PREFER_CANVAS开关已升级到官方地图选项preferCanvas(Leaflet preferCanvas documentation)

var map = L.map('mapid', { 
     preferCanvas: true 
    }); 

或者,您可以显式设置画布渲染器;我认为这跟preferCavas选项一样。这是Leaflet documentation for canvas

var map = L.map('mapid', { 
     renderer: L.canvas() 
    }); 

这些选项之一(preferCanvas: truerenderer: L.canvas())与L.circleMarker()比使用L.marker()常规层显著更快。