Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RubyonRails-谷歌地图API-显示多个标记_Javascript_Ruby On Rails_Json_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript RubyonRails-谷歌地图API-显示多个标记

Javascript RubyonRails-谷歌地图API-显示多个标记,javascript,ruby-on-rails,json,google-maps,google-maps-api-3,Javascript,Ruby On Rails,Json,Google Maps,Google Maps Api 3,我使用HTTParty将json存储在应用程序控制器中的一个变量中。地图将显示所有标记。单击标记以查看信息窗口时会出现问题。无论单击哪个标记,都会显示阵列信息窗口中的最后一个标记。你有使用我的代码的解决方案吗?我也不确定这是否是像我一样将ruby与javascript混合的最佳实践。对此的任何意见也将不胜感激 application.html.erb中的javascript: <script type="text/javascript"> function initialize(

我使用HTTParty将json存储在应用程序控制器中的一个变量中。地图将显示所有标记。单击标记以查看信息窗口时会出现问题。无论单击哪个标记,都会显示阵列信息窗口中的最后一个标记。你有使用我的代码的解决方案吗?我也不确定这是否是像我一样将ruby与javascript混合的最佳实践。对此的任何意见也将不胜感激

application.html.erb中的javascript:

<script type="text/javascript">
  function initialize() {
    var mapOptions = {
      center: { lat: 35.50, lng: -98.5},
      zoom: 4
    };

  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    <% @place['ymca'].each do |p| %>


      var infowindow = new google.maps.InfoWindow({
          content: 'hello'
      });

      var marker = new google.maps.Marker({
          position: { lat: <%= p['lat'] %>, lng: <%= p['lon'] %>},
          map: map,
          title: 'Random',

      });

      google.maps.event.addListener(marker, "click", function(event) {
        infowindow.open(map, marker);
      });
    <% end %>
  }

  google.maps.event.addDomListener(window, 'load', initialize);
</script>
提前谢谢


顺便说一句,我已经将此作为参考,无法找到解决此问题的方法

您怎么知道总是显示最后一个
infowindow
内容??对于您使用的所有标记,请使用相同的
content
hello。所以,所有标记都有相同的内容,对吗?我查看了json数组,数组中最后一项的位置与地图上的点匹配。我只是用hello作为临时的占位符,直到我把所有事情都做好。单击任何标记都会打开位于同一位置的同一信息窗口。
def parse
  uri = HTTParty.get"http://www.livestrong.org/we-can-help/ymca.json"
  @place = JSON.parse(uri.body)
end