2012-03-26 3 views
5

Desidero disegnare molti punti geografici con Leaflet. Pertanto voglio utilizzare la tela HTML5 per migliorare le prestazioni. Il mio datasoure è geoJSON. Come ho visto nella documentazione di Leaflet, non è ancora possibile disegnare le posizioni geografiche come tele.leaflet js: traccia i POI come area di lavoro

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

Penso che dovrei collegare qui:

pointToLayer: function (LatLng) {}

C'è qualcuno che sa come disegnare i miei oggetti LatLng come tela?

risposta

5

Espansione sulla risposta originale nel caso in cui qualcuno ne avesse bisogno per Leaflet 1.0. Dovresti comunque usare L.circleMarker()(Leaflet circleMarker documentation) invece di L.marker(), ma il modo di usare la tela è cambiato.

In Leaflet 1.0, lo switch sperimentale L_PREFER_CANVAS è stato aggiornato a un'opzione della mappa ufficiale preferCanvas(Leaflet preferCanvas documentation).

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

In alternativa, è possibile impostare in modo esplicito il modulo di rendering della tela; Penso che questo faccia la stessa cosa dell'opzione preferCavas. Ecco lo Leaflet documentation for canvas.

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

Una di queste opzioni (o preferCanvas: truerenderer: L.canvas()) con L.circleMarker() era significativamente più veloce di un livello normale utilizzando L.marker().