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 作为单独的函数(除非您稍后将使用更多功能来扩展它们,这解释了为什么要以这种方式拆分它们)。我已在此答案中将它们合并为一个,尽管从技术上讲,您的方法没有任何问题(您的问题只是非全局性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 回答