映射路由单击事件在Titanium Appcelerator中不起作用

时间:2017-06-18 19:46:36

标签: google-maps-markers appcelerator titanium-mobile titanium-alloy titanium-modules

我正在尝试从Appcelerator上添加Geocoder示例中的可点击路线。问题是单击路径对象时我没有收到任何事件。

这是我的代码:

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);

1 个答案:

答案 0 :(得分:0)

Modules.Map.Route对象没有任何事件。除了地图视图本身之外,没有地图对象可以执行,我们可以使用mapview的click event来监听点击,然后检查clicksource属性以查看在地图上点击的内容。

问题是路由不会生成点击事件,但polylines会这样做,因此解决方法是使用折线并在mapview的click事件中查找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);
});