2015-02-24 3 views
-1

Я пытаюсь включить маркеры на карте, используя Mapbox GL на моем приложении rails.mapbox GL не может иметь более 5 маркеров

В моем файле контроллера я есть:

@boatramps = Boatramp.all.limit(6) 
@geojson = {"type" => "FeatureCollection", "features" => []} 
@boatramps.each do |boatramp| 
    @geojson["features"] << { 
    geometry: { 
    type: 'Point', 
    coordinates: [boatramp.long, boatramp.lat] 
    }, 
    properties: { 
    title: boatramp.id, 
    :'marker-symbol' => 'monument' 
    } 
    } 
end 
respond_to do |format| 
    format.html 
    format.json{render json: @geojson} 
end 

для моего AJAX вызова У меня есть

style.layers.push({ 
    "id": "markers", 
    "type": "symbol", 
    "source": "markers", 
    "layout": { 
     "icon-image": "{marker-symbol}-12", 
     "text-field": "{title}", 
     "text-font": "Open Sans Semibold, Arial Unicode MS Bold", 
     "text-offset": [0, 0.6], 
     "text-anchor": "top" 
    }, 
    "paint": { 
     "text-size": 12 
    } 
    }); 
$.ajax({ 
    type: 'GET', 
    url: '/virginia', 
    dataType: 'json', 
    success: function(response){ 
     console.log(response) 
     var markers = new mapboxgl.GeoJSONSource({ data: response}); 

     map.addSource('markers', markers); 
    }, 
    error: function(){ 

    } 
}) 

Когда у меня есть 5 маркеров вызов отлично работает и я получаю boatramp идентификатор, чтобы показать (. Также возникают проблемы с изображением «значок», чтобы показать) Как только я увеличиваю лимит до 6 или более. Я получаю сообщение об ошибке:

Uncaught TypeError: Cannot read property 'leaf' of undefined

Как я увеличивать и уменьшать масштаб на карте он выполняет ту же самую ошибку. Кроме того, как только у меня есть значительное количество объектов 40 +, некоторые из них не отображаются. Есть идеи?

ответ