Geojson功能点击infowindow显示触发拖动事件

时间:2015-05-22 01:25:22

标签: javascript google-maps geojson

我的谷歌地图和数据层存在问题。 当我加载包含Points的geojson文件并将click事件绑定到这些标记以打开infoWindow时,地图开始拖动,如您在此片段中所见。



var infoWindow;
    function init(){
    // ... init map
        var lat = 45.553349634491; var lng =-73.611958006357;
      var zoom =18;

        var mapOptions = { zoom : zoom, disableDefaultUI:true, zoomControl:true, };

         map = new google.maps.Map(document.getElementById("map"), mapOptions);
         map.setCenter({lat:lat,lng:lng});
         // load geojson
         map.data.loadGeoJson("http://adam.cherti.name/CREE TA VILLE/get/poteaux.php?lat_nwest=45.55350176872861&lng_nwest=-73.61094413134936&lat_seast=45.55319749984158&lng_seast=-73.6129879746187&date=2015/5/21_21:12:01");
    
         map.data.addListener("mousedown", function(e)
         {
    
            var pos = e.latLng;
            if(!infoWindow )
                infoWindow= new google.maps.InfoWindow();
    
            infoWindow.setPosition(pos);
            var html ='hey !';
            infoWindow.setContent(html);
            infoWindow.open(map);
        });

    }
    $(document).ready(function(){init()});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyAcPswPf-CHjpRLEqDYPj7hBeycynREWpY&sensor=true"></script>

<body style="width:100%; height:100%">
  <div style="width:100%; height:500px" id="map"></div>
</body>
</html>
&#13;
&#13;
&#13;

我在触发点击事件时随机尝试了一个函数stopPropagation(event)因为我认为它会停止&#34;停止&#34;从触发到地图的事件但它没有奏效。这是func的代码:

function stopPropagation(myEvent){ 
    if(!myEvent){ 
        myEvent=window.event; 
    } 
    myEvent.cancelBubble=true; 
    if(myEvent.stopPropagation){ 
       myEvent.stopPropagation(); 
}

如果anyonye找到了解决此问题的方法,请告诉我们!

谢谢

1 个答案:

答案 0 :(得分:2)

您没有使用click事件,而是使用mousedown事件。使用click事件可以解决我的问题。

&#13;
&#13;
var infoWindow;
    function init(){
    // ... init map
        var lat = 45.553349634491; var lng =-73.611958006357;
      var zoom =18;

        var mapOptions = { zoom : zoom, disableDefaultUI:true, zoomControl:true, };

         map = new google.maps.Map(document.getElementById("map"), mapOptions);
         map.setCenter({lat:lat,lng:lng});
         // load geojson
         map.data.loadGeoJson("http://adam.cherti.name/CREE TA VILLE/get/poteaux.php?lat_nwest=45.55350176872861&lng_nwest=-73.61094413134936&lat_seast=45.55319749984158&lng_seast=-73.6129879746187&date=2015/5/21_21:12:01");
    
         map.data.addListener("click", function(e)
         {
    
            var pos = e.latLng;
            if(!infoWindow )
                infoWindow= new google.maps.InfoWindow();
    
            infoWindow.setPosition(pos);
            var html ='hey !';
            infoWindow.setContent(html);
            infoWindow.open(map);
        });

    }
    $(document).ready(function(){init()});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>

<body style="width:100%; height:100%">
  <div style="width:100%; height:500px" id="map"></div>
</body>
</html>
&#13;
&#13;
&#13;