0

グーグルマップにマーカーを追加したいのですが、このコードがあります

<script type="text/javascript"
  src="https://maps.googleapis.com/maps/api/js?key=myKey&sensor=true">
</script>
<script type="text/javascript">
  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(56.33481154165235, 11.107177734375),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    setMarker();
  }

  // Function for adding a marker to the page.
function addMarker(location) {
    marker = new google.maps.Marker({
        position: location,
        map: map
    });
}

// Testing the addMarker function
function setMarker() {
       CentralPark = new google.maps.LatLng(55.671389288295465, 12.5601196289062);
       addMarker(CentralPark);
}


google.maps.event.addDomListener(window, 'load', initialize);
</script>

これは地図を示していますが、マーカーは示していません。

よろしくお願いします!

4

2 に答える 2

1

以下のコードを試してください

<script type="text/javascript">
var marker,
    CentralPark = new google.maps.LatLng(55.671389288295465, 12.5601196289062);

function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(56.33481154165235, 11.107177734375),
        zoom: 7,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    marker = new google.maps.Marker({
        position: CentralPark,
        map: map,
        animation: google.maps.Animation.DROP
    });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
于 2013-03-22T04:52:58.273 に答える
0

問題はmap、初期化関数内のローカル変数であるため、他の関数から使用できないことです。それをグローバル変数にします。

または、マップ オブジェクトをパラメータとして setMarker / addMarker 関数に渡します。

また、addMarker と setMarker を別々の関数として持っている理由もわかりません (後でこれらを拡張して、このように分割した理由を説明する機能を追加する場合を除きます)。この回答ではそれらを1つにまとめましたが、技術的にはあなたのアプローチに何の問題もありません(mapあなたの問題は非グローバルです)。

これを試して:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=myKey&sensor=true">
</script>
<script>
  // make this global:
  var map;

  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(56.33481154165235, 11.107177734375),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    addMarker();
  }

  // Function for adding a marker to the page.
function addMarker() {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(55.671389288295465, 12.5601196289062),
        map: map
    });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
于 2013-03-19T09:12:37.817 に答える