Javascript 聚合物点叠加点击
按照此指南,我可以正确运行项目,现在我想为绘制的点添加一个事件。这是我的代码:Javascript 聚合物点叠加点击,javascript,google-maps,polymer,Javascript,Google Maps,Polymer,按照此指南,我可以正确运行项目,现在我想为绘制的点添加一个事件。这是我的代码: <!doctype html> <html> <head> <title>PolymerVizCodelab</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <meta name
<!doctype html>
<html>
<head>
<title>PolymerVizCodelab</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="bower_components/google-map/google-map.html">
<link rel="import" href="bower_components/point-overlay/point-overlay.html">
<link rel="import" href="bower_components/paper-card/paper-card.html">
<link rel="import" href="bower_components/paper-slider/paper-slider.html">
<link rel="import" href="bower_components/iron-ajax/iron-ajax.html">
<link rel="stylesheet" href="styles.css">
</head>
<body unresolved>
<template is="dom-bind" id="t">
<google-map map="{{map}}" latitude="38.6" longitude="-95.8" zoom="5"
styles='[{"stylers":[{"saturation":-85}]},{"featureType":"water","stylers":[{"lightness":-20}]}]'
on-google-map-ready="setPointSize"
on-zoom-changed="setPointSize">
</google-map>
<point-overlay on-click="clickHandler" map="[[map]]" uniforms="{{uniforms}}" data="{{data}}" id="p">
</point-overlay>
<iron-ajax auto handle-as="json"
url="bower_components/point-overlay/tornadoes-1950-2014.json"
last-response="{{data}}">
</iron-ajax>
<!-- <paper-card elevation="2">
<paper-slider min="5" max="100" value="30"></paper-slider>
</paper-card> -->
</template>
<script>
var t = document.querySelector('#t');
t.setPointSize = function(e) {
this.uniforms.pointSize = Math.exp(0.3 * this.map.getZoom());
this.notifyPath('uniforms.pointSize', this.uniforms.pointSize);
};
function clickHandler(e) {
console.log("click");
}
</script>
</body>
</html>
多聚物实验室
var t=document.querySelector(“#t”);
t、 设置点大小=函数(e){
this.uniforms.pointSize=Math.exp(0.3*this.map.getZoom());
this.notifyPath('uniforms.pointSize',this.uniforms.pointSize);
};
函数clickHandler(e){
控制台日志(“单击”);
}
但是,clickHandler
永远不会被触发
如何为地图上的每个点绑定和事件?
clickHandler
需要是dom绑定
模板的一部分(就像您使用setPointSize
所做的那样)。更改此项:
function clickHandler(e) {
console.log("click");
}
为此:
t.clickHandler = function(e) {
console.log("click");
};
clickHandler
需要成为dombind
模板的一部分(就像您使用setPointSize
所做的那样)。更改此项:
function clickHandler(e) {
console.log("click");
}
为此:
t.clickHandler = function(e) {
console.log("click");
};
不幸的是,
点覆盖
没有公开任何事件,此外,点覆盖
用于在谷歌地图上可视化数据的地图层防止鼠标事件触发事件侦听器
但只要对其进行一些修改,就可以实现如下所示:
在canvas layer.js
文件中:
1) 注释防止鼠标事件触发覆盖元素中事件侦听器的行(CanvasLayer
):
修改pointoverlay
元素(pointoverlay.html
文件)
2) 将地图窗格设置为OverlyMouseTarget
this.overlay.setPaneName("overlayMouseTarget");
3) 介绍单击画布元素的事件处理程序:
var me = this;
google.maps.event.addDomListener(this.overlay.canvas, 'click', function() {
me.fire('overlay-click');
});
最后在index.html
文件中:
4) 注册clickHandler
事件处理程序
<point-overlay on-overlay-click="clickHandler" map="[[map]]" uniforms="{{uniforms}}" data="{{data}}" id="p">
</point-overlay>
不幸的是,点覆盖
没有公开任何事件,此外,点覆盖
用于在谷歌地图上可视化数据的地图层防止鼠标事件触发事件侦听器
但只要对其进行一些修改,就可以实现如下所示:
在canvas layer.js
文件中:
1) 注释防止鼠标事件触发覆盖元素中事件侦听器的行(CanvasLayer
):
修改pointoverlay
元素(pointoverlay.html
文件)
2) 将地图窗格设置为OverlyMouseTarget
this.overlay.setPaneName("overlayMouseTarget");
3) 介绍单击画布元素的事件处理程序:
var me = this;
google.maps.event.addDomListener(this.overlay.canvas, 'click', function() {
me.fire('overlay-click');
});
最后在index.html
文件中:
4) 注册clickHandler
事件处理程序
<point-overlay on-overlay-click="clickHandler" map="[[map]]" uniforms="{{uniforms}}" data="{{data}}" id="p">
</point-overlay>
我只更改了该函数,但它没有显示任何内容。点覆盖
不需要有单击或拾取的方法?我只更改了该功能,但它没有显示任何内容。点覆盖
不需要有单击或拾取的方法?您好,我喜欢您的方法,但当我单击地图上的任何位置时,我会有一个警报,但我只在单击点时需要它您好,我喜欢您的方法,但当我单击地图上的任何位置时,我会有一个警报,但我只在单击点时需要它