如何更改Google地图标记的位置?

时间:2014-06-19 22:33:04

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

我有一个我正在处理的地图的以下代码,我想看看我是否可以自定义标记。问题是,无论我输入纬度和经度,我都无法获得改变位置的第一个标记。也许我输入的信息不正确。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>UmApp</title>
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=key"></script>
    <script>
function initialize() {
  var myLatlng = new google.maps.LatLng(41.160531, -73.256303);
  var mapOptions = {
    zoom: 16,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var marker = new google.maps.Marker({
      position: 41.159317, -73.257443,
      map: map,
      title: 'Hello World!'
  });
}

google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>

2 个答案:

答案 0 :(得分:0)

  var marker = new google.maps.Marker({
  position: new google.maps.LatLng(41.159317, -73.257443);
  map: map,
  title: 'Hello World!'
});

答案 1 :(得分:0)

我仍然无法发表评论,所以我会在这里回答您的评论问题:

正如Kostrzak所说,你需要写

var marker = new google.maps.Marker({
  position: new google.maps.LatLng(41.159317, -73.257443),
  map: map,
  title: 'Hello World!'
});

(小心分号而不是逗号。尽管它应该可以工作,但它可能会在某些IDE上引发一堆错误。)

Marker对象内的位置是期望坐标,但不是任何形式。它需要以特定方式给出那些坐标:作为LatLng对象。因此,您需要使用Google JavaScript库设置这些坐标,该库创建一个具有指定坐标的对象:

position: new google.maps.LatLng(41.159317, -73.257443)

您可以在此处设置标记的位置。如果你想改变它,你只需要设置

marker.position = new google.maps.LatLng({newLat}, {newLng});

如果你打开控制台,你会看到位置线引发的一堆错误:“Uncaught SyntaxError:Unexpected token - ”。控制台日志在大多数情况下非常有用,所以请使用它们!