我正在尝试使用我的rails应用程序上的Mapbox GL在地图上合并标记。
在我的控制器文件中,我有:
@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个标记时,通话工作正常,我得到了船模ID显示。(还有“图标图像”显示的问题)一旦我将限制增加到6或更多。我收到一个错误:
Uncaught TypeError: Cannot read property 'leaf' of undefined
当我在地图上放大和缩小时,它会执行相同的错误。此外,一旦我有相当数量的物体40 +,其中一些不显示。有什么想法吗?
答案 0 :(得分:0)
这是一个已知问题。 https://github.com/mapbox/mapbox-gl-js/issues/987
我昨天也在Github问了一下,我被告知它将在下一个版本中修复,大约一周。