javascript - Google map V3 InvalidValueError Rails 5

标签 javascript ruby-on-rails ruby google-maps google-maps-api-3

我正在 Rails 5 Ruby 2.4.0 中构建一个应用程序,并且我正在尝试实现一个动态谷歌地图,该 map 在 map 上为 PostgresDB 中的每个位置放置一个标记。

我正在使用地理编码器 gem,这是分配我的 lat 和 lng 浮点值。

when I use the following code:

<script>
  function initMap() {
    var uluru = [
     <% @locations.each do |location| %>
       { lat:<%= location.latitude %>, lng:<%= location.longitude %> },
     <% end %>
    ];
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
    });
    var marker = new google.maps.Marker({
      position: uluru,
      map: map
    });
  }
</script>
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&callback=initMap">
</script>

我在 google chrome 的控制台输出中收到以下错误:

InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number

错误截图: enter image description here

我对向 Rails 应用程序添加动态 map 还比较陌生,不知道如何解决此问题!如有任何帮助,我们将不胜感激!

提前致谢!

EDIT 1: Adds Script generated output:

  function initMap() {
    var uluru = [
       { lat:51.0389453, lng:-113.9474975 },
       { lat:51.1015305, lng:-114.0411054 },
    ];
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
    });
    var marker = new google.maps.Marker({
      position: uluru,
      map: map
    });
  }

Edit 2: Adds Screenshot of errors: enter image description here

最佳答案

似乎您正在使用 single 的代码标记。如果您想显示多个标记,则必须将它们添加为 marker cluster或循环遍历您的数组。

  function initMap() {
    var uluru = [
     <% @locations.each do |location| %>
       { lat:<%= location.latitude %>, lng:<%= location.longitude %> },
     <% end %>
    ];
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
    });
    for (i = 0; i < uluru.length; i++) {  
        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(uluru[i]['lat'], uluru[i]['lng']),
            map: map
        });
  }

关于javascript - Google map V3 InvalidValueError Rails 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43688164/

相关文章:

javascript - 从ajax下载数据文件

For 循环行为中的 Javascript setTimeOut

javascript - 如何使用客户端 JavaScript 制作动态 Web 徽章?

ruby-on-rails - Omniauth-facebook 的 Facebook Canvas 身份验证重定向问题(在 iframe 外部重定向)

ruby-on-rails - Rails 3 - 如何处理 PG 错误不完整的多字节字符

javascript - 条件不显眼的验证模式

mysql - 将枚举存储为整数与字符串之间有区别吗?

ruby-on-rails - 错误:Sprockets::FileNotFound: 找不到 Heroku 的文件 'application.scss'

ruby - 在 Ruby 中创建子目录

ruby - 按值然后按键对散列进行排序(但键是相反的)