2017-04-04 58 views
-1

我没有Google地图的使用经验。我在地图中加载geojson,并且我在click事件上有一个侦听器来放置一个标记。问题是,当我点击区域外,但不在里面时,它是有效的。在Google地图里面的geojson无法放置标记

var map; 
 
function initMap() { 
 
\t var mapCanvas = document.getElementById("map"); 
 
\t var mapOptions = { 
 
    center: {lat: 41.8708, lng: -87.6505},  
 
    zoom: 14 
 
    \t } 
 

 
    var map = new google.maps.Map(mapCanvas, mapOptions); 
 
    google.maps.event.addListener(map, 'click', function(event) { 
 
    placeMarker(map, event.latLng); 
 
    }); 
 
    // map.data.loadGeoJson('https://gist.githubusercontent.com/cgansen/6458644/raw/5a9ec31defab0073853831b7fc7de0f87eb66a2d/wards-from-city-unsimplified.geojson'); 
 
    map.data.loadGeoJson('https://data.cityofchicago.org/api/geospatial/cauq-8yn6?method=export&format=GeoJSON'); 
 

 
    var myLatLng = {lat: 41.8708, lng: -87.6505}; 
 
    //Illinois University Marker 
 
    var image = 'js/i1.png'; 
 
    var Umarker = new google.maps.Marker({ 
 
    position: myLatLng, 
 
    map: map, 
 
    title: 'Department of Computer Science – University of Illinois!', 
 
    icon: image 
 
    }); 
 

 

 
    
 
} 
 

 
function placeMarker(map, location) { 
 
    var marker = new google.maps.Marker({ 
 
    position: location, 
 
    map: map  
 
    });

回答

0

于是,我改变了你的代码周围一点点 - 但你正在寻找的秘诀是:

// Add the click event to the new polygon layer as well as the map itself. 
map.data.addListener('click', function(event) { 
    placeMarker(map, event.latLng) 
}); 

google.maps.event.addListener(map, 'click', function(event) { 
    placeMarker(map, event.latLng); 
}); 

的jsfiddle这里:http://jsfiddle.net/cguju62a/

祝你好运!