根據這個example,我試圖添加標記選擇,(即將.on(「click」...)添加到標記變量中)。但是,當您將鼠標放在Google地圖畫布上時,您會看到可以拖動的手,並且無法使用它選擇任何svg元素。D3,Google地圖,選擇d3元素
有沒有辦法(暫時)禁用該功能,以便您可以點擊D3元素?
根據這個example,我試圖添加標記選擇,(即將.on(「click」...)添加到標記變量中)。但是,當您將鼠標放在Google地圖畫布上時,您會看到可以拖動的手,並且無法使用它選擇任何svg元素。D3,Google地圖,選擇d3元素
有沒有辦法(暫時)禁用該功能,以便您可以點擊D3元素?
我正在製作這樣的地圖。我沒有使用谷歌的標誌(而D3 SVG圈),但我發現,鼠標懸停/點擊的/ etc事件必須是在地圖的overlayMouseTarget層對象:
var overlay = new google.maps.OverlayView();
overlay.onAdd = function() {
var layer = d3.select(this.getPanes().overlayMouseTarget)
.append("div")
.attr("class", "providers");
...
}
我覺得d3js的gMaps演示。 org使用不同的圖層。
謝謝,給了我足夠的信息來找到關於此的文檔。例如[bl.ocks.org的Google地圖+ d3](https://bl.ocks.org/mbostock/899711)通常使用不會接收點擊事件的「overlayLayer」地圖圖層。更多[關於devopers.google.com的文檔](https://developers.google.com/maps/documentation/javascript/customoverlays#initialize)確認只有圖層'overlayMouseTarget'和'floatPane'接收DOM事件。 – dennisschagt 2018-01-22 15:30:14
您可以使用var overlay = new google.maps.OverlayView(); overlay.onAdd功能
overlay.onAdd = function() {
var layer = d3.select(this.getPanes().overlayMouseTarget)
.append("div")
.attr("class", "stations");
}
要繪製自定義標記overlay.draw
和overlay.setMap()
我們覆蓋綁定到地圖...
更多信息,可以在https://developers.google.com/maps/documentation/javascript/overlays
發現也許你可以嘗試讓[選擇](https://github.com/mbostock/d3/wiki/Selections)地圖的所有/某些元素,並用空函數覆蓋處理程序?就像這樣''d3.selectAll(「%gmaps elements%」)。on(「drag」,function(){return})' – alm 2012-08-15 08:00:17