具有多个标题的Mapbox标记

时间:2016-09-30 05:24:51

标签: javascript ruby-on-rails leaflet mapbox

在某些位置(坐标)存在多个点,我希望在工具提示中合并标题。

这里是jbuilder文件

json.type "FeatureCollection"
json.features @years do |year|
  json.type "Feature"
  json.properties do
    if (year.resto)
      json.set! "marker-color", "#9932CC"
      json.set! "marker-symbol", "restaurant"
    else
      json.set! "marker-color", "#5cb85c"
      json.set! "marker-symbol", "lodging"
    end

    json.set! "marker-size", "small"
    json.title "#{year.person.given_name} #{year.person.last_name} was a #{year.title} at #{year.location.address} on #{year.year_date}" 
  end
  if (year.location.longitude) 
    json.geometry do
      json.type "Point"
      json.coordinates [year.location.longitude, year.location.latitude]
    end
  end
end

在某些坐标处可能存在多个项目。只有一个出现。我尝试了MarkerClusterGroup并显示了所有项目,但宁愿将标题叠加在一个工具提示中。关于如何解决这个问题的任何提示?谢谢

js文件

function makeMap() {
  L.mapbox.accessToken = $('body').data('mapboxToken');
  var map = L.mapbox.map('map', 'mapbox.streets')
             .setView([34.040951, -118.258579], 13);

  var featureLayer = L.mapbox.featureLayer()
                    .loadURL('map/map_data.geojson')
                    .addTo(map);

  featureLayer.on('ready', function(e) {
    map.fitBounds(featureLayer.getBounds());
  });
}

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案,但我想我可以在jbuilder中测试并建立标题。

开始考虑这个问题,这不会是直截了当的。可能需要修改数据库,如果运行正常则可以。

如果Mapbox / Leaflet可以处理它,则更容易。