Javascript:使用 json 文件在谷歌地图上添加标记

标签 javascript google-maps google-maps-api-3

我正在尝试使用谷歌地图添加新加坡巴士站的标记。 我的代码:

 <!DOCTYPE html>
   <html>
    <head>
      <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
      <style type="text/css">
       html { height: 100% }
        body { height: 100%; margin: 0; padding: 0 }
         #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?    key=AIzaSyB_rFf5Ow4UXIxmXtRXMvVbfIinBSWDc7o&sensor=false">
    </script>
    <script type="text/javascript">
  var map;
  function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng(1.290270,103.851959 ),
          zoom: 14,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
      }
    </script>
    <script type="text/javascript" src="http://code.jquery.com/jquery-    latest.min.js"></script>    
  </head>
  <body onload="initialize()"   >
    <div id="map_canvas" style="width:100%; height:100%"></div>
    <script type="text/javascript">
      $(document).ready(function() {
        $.getJSON("bus-stops.json", function(json1) {
      $.each(json1, function(key, data) {
        var latLng = new google.maps.LatLng(data.lat, data.lng); 
        // Creating a marker and putting it on the map
        var marker = new google.maps.Marker({
            position: latLng,
            title: data.name
        });
        marker.setMap(map);
      });
    });
  });
</script>

我已将bus-stops.json 放在与此文件相同的文件夹中。该代码仅显示没有标记的谷歌地图。数据如下所示:

[{"no":"10009","lat":"1.28210155945393","lng":"103.81722480263163","name":"Bt Merah Int"},{"no":"10011","lat":"1.2777380589964","lng":"103.83749709165197","name":"Opp New Bridge Rd Ter"}]

请告诉我哪里出错了。谢谢

最佳答案

很可能是时间问题。从初始化函数中调用异步$.getJSON函数,或者处理 map 运行时未初始化的情况。

var map;
function initialize() {
  var mapOptions = {
    center: new google.maps.LatLng(1.290270, 103.851959),
    zoom: 14,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"),
    mapOptions);
  $.getJSON("bus-stops.json", function(json1) {
    $.each(json1, function(key, data) {
      var latLng = new google.maps.LatLng(data.lat, data.lng);
      // Creating a marker and putting it on the map
      var marker = new google.maps.Marker({
        position: latLng,
        title: data.name
      });
      marker.setMap(map);
    });
  });
}

关于Javascript:使用 json 文件在谷歌地图上添加标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40971251/

相关文章:

javascript - 使用数据绑定(bind)的 polymer 核心支架更改工具

google-maps - 通过 Places API 检索营业时间和假日消息

angularjs - Angular 谷歌地图 (AGM) 自动完成

prototypal-inheritance - 这个 Animal = function Animal 是做什么的?

php - Google Visualization(图表工具)API

javascript - 如何在 IMPACTJS 中反转动画

google-maps - 路线经过点

javascript - 如何生成将在默认 map 应用程序中打开的位置链接?

javascript - 调整圆大小时获取半径

java - GWT 谷歌地图 : Display KML Name on Map