buttonTap: { wx.getLocation({ type:'gcj02', success:function (res) { wx.openLocation({ latitude: res.latitude, longitude: res.longitude, }) } }) } data: { latitude:"45.743291" ,longitude="127.2126" markers:[{ iconPath:'/images/navi.png', id:0, latitude:"45.743291" ,longitude="127.2126", width:50, height:50 }] } markertap: function() { wx.openLocation({ latitude: this.data.latitude, longitude: this.data.longitude, name:'哈尔滨信息工程学院', address:'' }) } function()报错
时间: 2024-03-09 07:44:49 浏览: 134
这段代码中存在一些语法错误和逻辑错误,可能会导致程序运行出错:
1. 在data对象中,longitude的赋值符号应该是冒号而不是等号,应该改为:
```
data: {
latitude: "45.743291",
longitude: "127.2126",
markers: [{
iconPath: '/images/navi.png',
id: 0,
latitude: "45.743291",
longitude: "127.2126",
width: 50,
height: 50
}]
}
```
2. buttonTap事件中调用了wx.getLocation方法,但是该方法是异步的,因此需要使用回调函数来获取位置信息。可以将wx.getLocation的调用放到一个单独的函数中,并在成功获取位置信息后调用wx.openLocation方法。改进后的代码如下:
```
buttonTap: function() {
var that = this;
wx.getLocation({
type: 'gcj02',
success: function(res) {
that.openLocation(res.latitude, res.longitude);
}
})
},
openLocation: function(latitude, longitude) {
wx.openLocation({
latitude: latitude,
longitude: longitude,
name: '哈尔滨信息工程学院',
address: ''
})
},
```
3. markertap事件中调用了wx.openLocation方法,但是传入的参数不正确,应该是this.data.markers[0].latitude和this.data.markers[0].longitude,而不是this.data.latitude和this.data.longitude。改进后的代码如下:
```
markertap: function() {
wx.openLocation({
latitude: this.data.markers[0].latitude,
longitude: this.data.markers[0].longitude,
name: '哈尔滨信息工程学院',
address: ''
})
},
```
希望这些改动能够解决你的问题。
阅读全文