【问题标题】:Selecting a point on GoogleMaps after clicking a button [duplicate]单击按钮后在GoogleMaps上选择一个点[重复]
【发布时间】:2018-11-10 06:51:50
【问题描述】:

我有这个代码:

<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 padding_all_2">
      <a href ="#" class="obj-1" id="obj-1"><div class="apartament_atrakcje">Atrakcja 1 pl</div></a>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 padding_all_2">
      <a href ="#" class="obj-2" id="obj-2"><div class="apartament_atrakcje">Atrakcja 2 PL</div></a>
</div>
<div id="map_canvas"></div>
<script>
   window.onload = function () {
       var styles = [{"featureType":"all"}];
       var bounds = new google.maps.LatLngBounds();
       var options = {
           mapTypeControlOptions: {
               mapTypeIds: ['Styled']
           },
           center: new google.maps.LatLng(11, 22),
           zoom: 15,
           disableDefaultUI: true,
           mapTypeId: 'Styled'
       };
       marker = new google.maps.Marker({
           map:map,
       });
       var div = document.getElementById('map_canvas');
       var map = new google.maps.Map(div, options);
       var styledMapType = new google.maps.StyledMapType(styles, { name: 'Styled' });

       var markers = [
                        [
                          'Atrakcja 1 pl', 
                           51.73925413, 
                           19.51309225, 
                           'Atrakcja 1 pl', 
                           '#'
                         ],
                         [
                           'Atrakcja 2 PL', 
                            53.41475000, 
                            14.60220358, 
                           'Atrakcja 2 PL', 
                           '#'
                         ],
                     ];
       var infoWindow= new google.maps.InfoWindow({maxWidth:600}),
           marker, i,
           image = 'http://localhost/assets/poi.png';

       for( i = 0; i < markers.length; i++ ) {
           var beach = markers[i];
           var position = new google.maps.LatLng(beach[1], beach[2]);
           bounds.extend(position);
           marker = new google.maps.Marker({
               position: position,
               map: map,
               icon: image,
               title: beach[0],
               myurl: beach[4]
           });

           google.maps.event.addListener(marker, 'click', (function(marker, i) {
               return function() {
                   infoWindow.setContent('<a href="'+marker['myurl']+'">'+marker['title']+'</a>');
                   infoWindow.open(map, marker);
               }
           })(marker, i));
           map.fitBounds(bounds);
           map.mapTypes.set('Styled', styledMapType);

       }
   }
</script>

我有 2 个链接:

- Atrakcja 1 pl
- Atrakcja 2 pl.

我想点击上面的链接在谷歌地图上选择合适的标记。

因此,如果用户点击链接“Atrakcja 1 pl” - 那么谷歌地图将显示标记 Atrakcja 1 pll。我希望地图上的这个标记居中并且他的提示是可见的。

如何在我的代码中执行此操作?

请帮帮我。

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    像这样使用addmarker函数:

    var markers = [
                            [
                              'Atrakcja 1 pl', 
                               51.73925413, 
                               19.51309225, 
                               'Atrakcja 1 pl', 
                               '#'
                             ],
                             [
                               'Atrakcja 2 PL', 
                                53.41475000, 
                                14.60220358, 
                               'Atrakcja 2 PL', 
                               '#'
                             ],
                         ];
    
    function addmarker(point) {
        var latlng = new google.maps.LatLng(point[1], point[2]);
        var marker = new google.maps.Marker({
            position: latLang,
            title: point[0],
            draggable: true,
            map: map
        });
        map.setCenter(marker.getPosition())
    }
    
    $('#obj-1').on('click', function() {
        addmarker(markers[0])
    })
    
    $('#obj-2').on('click', function() {
        addmarker(markers[1])
    })
    

    此代码使用jquery

    将此添加到您的 html head 标记

    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      【解决方案2】:

      设置标记后使用

      map.setCenter(marker.position);
      marker.setMap(map);
      

      你还必须包含显示地图的脚本

      <script src="https://maps.googleapis.com/maps/api/js?key={YOUR_API_KEY}&callback={function}" async defer></script>
      

      【讨论】:

        猜你喜欢
        • 2021-04-09
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 2014-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多