谷歌地图:无法添加标记

时间:2013-03-14 15:16:06

标签: google-maps google-maps-api-3 google-maps-markers

无法添加标记,可能非常简单,但我对此不熟悉。感谢。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?&sensor=true"></script>
    <script type="text/javascript">

        function addMarker() {
            var marker = new google.maps.Marker({
                position: new google.maps.LatLng(-34.397, 150.644),

                title:"Hello World!"
            });
        }


        function initialize() {
            var mapOptions = {
                center: new google.maps.LatLng(-34.397, 150.644),
                zoom: 8,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map-canvas"),
            mapOptions);
        }
        google.maps.event.addDomListener(window, 'load', initialize);

        $(document).ready(function() {
            addMarker();
        })

    </script>

2 个答案:

答案 0 :(得分:3)

两个问题,您需要设置标记的地图变量。您的map变量是initialize函数的本地变量。

  • 在初始化地图后,从初始化函数(地图存在的地方)调用addMarker函数。

        function addMarker(map) {
          var marker = new google.maps.Marker({
            position: new google.maps.LatLng(-34.397, 150.644),
            map:map,
    
            title:"Hello World!"
          });
        }
    
        function initialize() {
          var mapOptions = {
            center: new google.maps.LatLng(-34.397, 150.644),
            zoom: 8,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          };
          var map = new google.maps.Map(document.getElementById("map-canvas"),
          mapOptions);
          addMarker(map);
        }
    

working example

答案 1 :(得分:1)

您必须在标记构造函数中设置map属性或在新对象上调用setMap:

var marker = new google.maps.Marker({
            position: new google.maps.LatLng(-34.397, 150.644),
            map: map,   //make your map object global!
            title:"Hello World!"
        });

marker.setMap(map);

https://developers.google.com/maps/documentation/javascript/reference#Marker

编辑: 关于制作地图对象全局的评论显然被忽略了,所以这里是:

map对象应该是全局的,不仅仅是为了解决这个问题,而且你需要在脚本中的多个函数中使用它