带有链接到网页的引脚的嵌入式谷歌地图

时间:2017-07-14 12:49:41

标签: javascript google-maps-api-3

我试图在我的网页上实施谷歌地图,其中的图钉链接到不同的网站。我该怎么做呢? 这是我到目前为止的地图源代码:

 <script type="text/javascript">
    var locations = [
      ['Bondi Beach', -33.890542, 151.274856, 4, "google.com"],
      ['Coogee Beach', -33.923036, 151.259052, 5],
      ['Cronulla Beach', -34.028249, 151.157507, 3],
      ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
      ['Maroubra Beach', -33.950198, 151.259302, 1]
    ];

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center: new google.maps.LatLng(-33.92, 151.25),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) { 
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
        url: locations[i][3],

      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>

1 个答案:

答案 0 :(得分:0)

以下是一个很好的例子:https://gist.github.com/parth1020/4481893

如果要添加链接,只需将url添加到数组和for循环添加url选项。

代码:

class OneService {

    private _isInit
    private _initStatus = new EventEmitter()

    constructor() {
        Promise.all([
            Promise1(), //async task
            Promise2(), //async task
        ])
        .then(res => {
            ... //doing stuff
            this.init() //stuff finished, OneService is initiated 
        })
    }

    init() {
        this._isInit = true
        this._initStatus.emit(this._isInit)
    }

    isInit() {
        return new Promise(resolve => {
            if (this._isInit)
                resolve()
            else {
                this._initStatus.subscribe(() => {
                     resolve()
                })
            } 
        }) 
     }
}

class anotherService {

    constructor(myService: OneService) {
        this.myService.isInit().then(() => {
            ... //doing stuff
        })
    }

}