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

标签 google-maps google-maps-api-3 dart dart-js-interop

他们在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 package,但是我想使用dart的js库与javascript api进行交互。

提前致谢。

最佳答案

您的闭包具有零参数。

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

您只需要给它一个错误消息中所述的参数即可:
(event) {
   infowindow.callMethod('open',[map,marker]);
}

关于google-maps - 使用dart:js调用Google Maps API事件addListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572650/

相关文章:

android - 如何在 flutter 中获取 Chrome 支持的 webview?

google-maps - 使用 javascript 加载多个 map 库

google-maps - Google map 方向服务航点超过50个

flutter - Dart - 无法从连接流中捕获异常

google-maps-api-3 - 如何为适合不同类别的标记显示不同的图标?

javascript - 对两个或多个地址进行地理编码

android - 获取可与 Cloud Firestore 配合使用的简单应用

javascript - 按照路线在谷歌地图上画线

javascript - 我可以让 Google map API 中的 Infowindow 在鼠标移出标记时消失,但在鼠标从标记移动到他的信息窗口时不消失吗

javascript - 无法让谷歌地图出现在 ionic 框架中