【发布时间】:2018-04-06 14:19:44
【问题描述】:
因此,在我的 Rails 应用程序中,我正在构建一个包含多个位置的区域显示页面。用户可以插入新的位置,地图标记需要根据他们输入的纬度和经度动态放置。在我的区域显示页面中,我有以下内容:
<div class="container-fluid">
<div class="row">
<div class="banner" id="region-banner" data-region-name="<%=@region.name.downcase%>">
<script>document.addEventListener('DOMContentLoaded',app.regions);</script>
然后在我的 region.js 文件中,我有以下内容:
import { tns } from 'tiny-slider/src/tiny-slider.module';
import { mapStyle } from './styles/mapStyle';
app.regions = () => {
function init() {
startGoogleMap();
}
let startGoogleMap = () => {
let map = new google.maps.Map(document.getElementById('region-banner'), {
zoom: 3,
minZoom: 3,
disableDefaultUI: true,
gestureHandling: 'cooperative',
styles: mapStyle
});
var mapElement = document.getElementById('region-banner');
const regionName = mapElement.getAttribute('data-region-name');
let bounds = new google.maps.LatLngBounds();
let promise = $.getJSON('/locations.json');
promise.done(function(data) {
return $.each(data, function() {
return new google.maps.Marker({
position: {
lat: parseFloat(data.lat),
lng: parseFloat(data.lng) },
map: map,
icon: "/marker.png"
});
});
});
console.log(promise);
map.fitBounds(bounds);
};
return init();
};
然后在我的控制器中我有:
def show
@locations = Location.all
respond_to do |format|
format.json { render json: @locations }
format.html
end
end
所以没有真正的错误正在应用但是......什么都没有出现。控制台显示 responseText:“[{“id”: 5, “name”: “Chicago”, “abbreviation”: “CHI”, “lat”: “44.222”, “lng”: “-22.111”}, { “id”:6,“名称”:“法兰克福”,“缩写”:“FKT”,“lat”:“41.3232”,“lng”:“-19.5221”}]”。在这个页面上,我应该只需要/使用第一个。
既然我放了位置,在这个阶段不应该也应用标记吗?
【问题讨论】:
标签: javascript ruby-on-rails google-maps