如何根据传感器编号从位置数组中显示一个位置

时间:2014-11-23 04:57:59

标签: javascript google-maps

我有一系列像这样的纬度和经度

我可以在谷歌地图上显示所有这些位置,但如何根据传感器编号显示一个位置。

var locations = [
      ['Sensor 1', -33.890542, 151.274856, 4],
      ['Sensor 2', -33.923036, 151.259052, 5],
      ['Sensor 3', -34.028249, 151.157507, 3],
      ['Sensor 4', -33.80010128657071, 151.28747820854187, 2],
      ['Sensor 5', -33.950198, 151.259302, 1]
    ];

1 个答案:

答案 0 :(得分:0)

我无法查看您的代码,因此很难知道。

这是一个有效的解决方案,通过在单击html元素时调用initialize

这会使用新标记重置地图。

  • 使用参数&#34定义initialize();选择"

  • 在地图变量下面(但在初始化内部)制作了一个标记,它使用先前定义的"选择"来选择数据。参数。

  • 使用html元素调用参数值初始化。

正常的谷歌地图否则。

如果我们将来可以看到您的代码,这确实很有帮助。

<!DOCTYPE html>
<html>
  <head>
    <style>
      #map-canvas {
        width: 500px;
        height: 400px;
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js"></script>
    <script>

    var locations = [
      ['Sensor 1', -33.890542, 151.274856, 4],
      ['Sensor 2', -33.923036, 151.259052, 5],
      ['Sensor 3', -34.028249, 151.157507, 3],
      ['Sensor 4', -33.80010128657071, 151.28747820854187, 2],
      ['Sensor 5', -33.950198, 151.259302, 1]
    ];

    function initialize(select) {
      var myLatlng = new google.maps.LatLng(-33.890542, 151.274856);
      var mapOptions = {
        zoom: 9,
        center: myLatlng
      }
      var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
      var marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[select][1], locations[select][2]),
        map: map
      });
    }

    google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <p onclick="initialize(0)">Sensor 1</p>
    <p onclick="initialize(1)">Sensor 2</p>
    <p onclick="initialize(2)">Sensor 3</p>
    <p onclick="initialize(3)">Sensor 4</p>
    <p onclick="initialize(4)">Sensor 5</p>
    <div id="map-canvas"></div>
  </body>
</html>