使用dart:js调用Google Maps API事件addListener

模仿

他们在Google Maps API v3中指出,我们需要执行此操作以在单击标记时打开信息窗口:

google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
});

现在,我正在尝试使用js库在dart中复制此代码。到目前为止,我有这样的事情:

final google_maps = context['google']['maps'];

var myLatlng = [43.5, -6.5];
var center = new JsObject(google_maps['LatLng'], myLatlng);

var mapTypeId = google_maps['MapTypeId']['ROADMAP'];

var mapOptions = new JsObject.jsify({
  "center": center,
  "zoom": 8,
  "mapTypeId": mapTypeId
});

var map = new JsObject(google_maps['Map'], [querySelector('#map-canvas'), mapOptions]);

var marker = new JsObject(google_maps['Marker'], [new JsObject.jsify({
  'position': center,
  'map': map,
  'title': 'Hello World!'
})]);

var tooltip = '<div id="content">Info window coontent</div>';

var infowindow = new JsObject(google_maps['InfoWindow'], [new JsObject.jsify({
"content": tooltip
})]);


google_maps['event'].callMethod('addListener', [marker, 'click', () {
  infowindow.callMethod('open',[map,marker]);
}]);

问题是我通过google_maps ['event']设置了'addListener'方法,但是当我单击标记时,出现了NoSuchMethodError:

Closure call with mismatched arguments: function 'call'

NoSuchMethodError: incorrect number of arguments passed to method named 'call'
Receiver: Closure: () => dynamic
Tried calling: call(Instance of 'JsObject')
Found: call()

我知道有google_maps dart包,但是我想使用dart的js库与javascript api进行交互。

提前致谢。

罗伯特

您的闭包具有零参数。

() {
   infowindow.callMethod('open',[map,marker]);
}

您只需要给它一个错误消息中所述的参数即可:

(event) {
   infowindow.callMethod('open',[map,marker]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Retrofit GET调用的Google Maps API

来自分类Dev

Google Maps API的点击并按住事件

来自分类Dev

JS通过调用或不调用函数的方式做出不同的反应(使用了Google Maps api)

来自分类Dev

ASP和Google Map Api:通过google.maps.event.addListener显示asp:textbox的位置

来自分类Dev

Google Maps事件

来自分类Dev

google.maps.event.addListener不是函数

来自分类Dev

什么构成对基本Google Maps JS API的调用?

来自分类Dev

Blazor:Google Maps JS API

来自分类Dev

Google Maps-直接从javascript调用API或使用SDK

来自分类Dev

如何在google.maps.event.addListener中使用它

来自分类Dev

使用php的Google Maps Api

来自分类Dev

Google Maps API点击事件监听器被多次执行

来自分类Dev

Google Maps API place_changed事件未触发

来自分类Dev

Google Maps API数据层功能。未触发事件Dragend

来自分类Dev

Google Maps API标记点击事件未触发

来自分类Dev

标记拖动事件Google Maps API V3

来自分类Dev

Google Maps API-启用街景视图时触发事件

来自分类Dev

Google Maps API place_changed事件未触发

来自分类Dev

这里Maps JS API v3:监听`clusteringend`事件

来自分类Dev

Google Maps API RefererNotAllowedError

来自分类Dev

Google Maps API DeletedApiProjectMapError

来自分类Dev

Google Maps Api许可

来自分类Dev

Google Maps Api

来自分类Dev

Google Maps REST API

来自分类Dev

Google Maps API请求

来自分类Dev

Google Maps Directions API

来自分类Dev

Google Maps API参数

来自分类Dev

向Google Maps API调用添加承诺

来自分类Dev

调用Google Maps API时遇到COORS