我正在构建商店定位器应用程序,并且我尝试使用表示数据库中商店的标记来填充地图。我使用Geocoder gem将地址转换为纬度和经度,我使用Leaflet.js和leaflet-rails gem(基本上遵循本教程:https://github.com/axyjo/leaflet-rails)。我已经能够使用以下代码使用标记显示地图:
<uib-accordion-group class="list-group-item" ng-if="user.subordinates" ng-repeat="user in user.subordinates" ng-include="'managerTmp'" id="azqx">
我遇到的问题是从我的数据库中的数据中动态显示标记。我对Ruby和Rails相对较新,所以它证明非常艰难。我应该用每种方法迭代lat和lng值吗?我尝试过这样做,但是却遇到了很多语法错误。我甚至不确定代码的最后部分是什么形式。它是嵌套的哈希吗?
答案 0 :(得分:2)
markers: Store.all.map { |store| {latlng: [store.latitude,store.longitude], popup: store.name}.
是您失败的代码。
我认为您的想法是正确的,但您错过了地图块的结束}
。试试:
markers: Store.all.map { |store| { latlng: [store.latitude, store.longitude], popup: store.name } }
对于数据结构,看起来map方法需要一个哈希(对象),其中应该包含标记哈希(对象)数组的标记键,每个哈希都具有latlng和popup属性。 latlng属性需要包含纬度和经度值的数组,并且popup属性应该包含放入弹出窗口所需的数据字符串。