【问题标题】:Map route click event not working in Titanium Appcelerator地图路线点击事件在 Titanium Appcelerator 中不起作用
【发布时间】:2017-06-18 19:46:35
【问题描述】:

我正在尝试在来自 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);

【问题讨论】:

  • 您是否在另一个 Ti SDK 版本或另一个地图模块版本上尝试过,因为代码似乎正确,可能是回归错误?

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


【解决方案1】:

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

问题是路由不会生成点击事件,但polylines 会生成,因此解决方法是使用折线并在地图视图的点击事件中查找点击源。这样的事情应该可以工作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多