0

マーカーを追加できません。おそらく非常に単純なものですが、これは初めてです。ありがとう。

<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>
4

2 に答える 2

3

2つの問題、マーカーのマップ変数を設定する必要があります。マップ変数は初期化関数に対してローカルです。

  • マップが初期化された後、初期化関数(マップが存在する場合)から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);
        }
    

実例

于 2013-03-14T15:34:45.233 に答える
1

マーカーコンストラクターでマッププロパティを設定するか、新しいオブジェクトで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

編集:マップオブジェクトをグローバルにすることについての私のコメントは明らかに見落とされていたので、ここにあります:

マップオブジェクトは、このソリューションのためだけでなく、スクリプト内の複数の関数で必要になるため、グローバルであると想定されています。

于 2013-03-14T15:20:59.983 に答える