0

我在 rails 3.2 中有以下 javascript 代码。

函数初始化() { var myLatLng = new google.maps.LatLng(34.553366482, 49.783977595); var mapOptions = { zoom: 12, center: myLatLng, mapTypeId: google.maps.MapTypeId.TERRAIN };

    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    var flightPlanCoordinates = [
        new google.maps.LatLng(34.553366482, 49.783977595),
        new google.maps.LatLng(34.554122088, 49.783895487),
        new google.maps.LatLng(34.554483305, 49.783853715),
        new google.maps.LatLng(34.555332372, 49.783720553),

        new google.maps.LatLng(34.556189752, 49.783658072),
        new google.maps.LatLng(34.556664709, 49.783605137),
        new google.maps.LatLng(34.556769403, 49.783602219),
        new google.maps.LatLng(34.556787772, 49.783469404),

        new google.maps.LatLng(34.556793727, 49.783317126),
        new google.maps.LatLng(34.555050604, 49.783479752),
        new google.maps.LatLng(34.554290633, 49.783555281),
        new google.maps.LatLng(34.55376046, 49.783620191),

        new google.maps.LatLng(34.553413552, 49.783659434),
        new google.maps.LatLng(34.553275583, 49.783705246),
        new google.maps.LatLng(34.553366482, 49.783977595),

    ];
    var flightPath = new google.maps.Polyline({
      path: flightPlanCoordinates,
      strokeColor: '#FF0000',
      strokeOpacity: 1.0,
      strokeWeight: 2
    });

    flightPath.setMap(map);
  }

</script>

这是在谷歌地图上显示点的一种方式。我想从数据库中获取积分并发送到 javascript。我怎么能在一个循环中做到这一点?

4

1 回答 1

0

您可以在您的 Rails 视图之一中创建一个 javascript 变量(更具体的是 json),以便它可用于上面的脚本。

在控制器/模型中:

@coordinates = Coordinates(..your query...).get_json

在您看来,这些点将显示在哪里,取决于您是否使用 erb 或 haml,请执行以下操作:

哈姆尔:

:javascript
 var coords = "#{@coordinates.to_json}"

厄伯:

<script type="text/javascript">
  var coords = "<%= escape_javascript(@coordinates.to_json)%>"
</script>

现在您可以在上面的flightPlanCoordinates中迭代coords json并制作标记。

于 2013-05-24T12:05:03.717 回答