我正在尝试在Appcelerator的地理编码器示例中添加可单击的路线。问题是我在单击路由对象时没有收到任何事件。
这是我的代码:
var cord1= {
latitude:29.078685,
longitude:-110.971205,
};
var cord2= {
latitude:29.081496,
longitude:-110.959232,
};
var route1 = [cord1, cord2];
var route = MapModule.createRoute({
points : route1,
color : "red",
width : 5.0
});
route.addEventListener('click', function(e){
Ti.APP.info(e);
});
$.mapview.addRoute(route);
Modules.Map.Route 对象没有任何事件。 除了地图视图本身之外,没有任何地图对象这样做,我们可以使用 mapview 的单击事件来侦听单击,然后检查 clicksource
属性以查看在地图上单击的内容。
问题是路由不会生成点击事件,但折线会生成,因此解决方法是使用折线并在地图视图的点击事件中查找点击源。 这样的事情应该有效:
var coord1 = [-110.971205, 29.078685];
var coord2 = [-110.959232, 29.081496];
var route1 = [coord1, coord2];
var route = MapModule.createPolyline({
points: route1,
strokeColor: "#ff0000",
strokeWidth: 5
});
$.mapview.addPolyline(route);
$.mapview.addEventListener('click', function (e) {
//check the clicksource for 'polyline'
console.log(e.clicksource);
});