В API v3 Google Maps они заявляли, что нам нужно сделать, это открыть InfoWindow, когда маркер получает щелкнул:вызовов API Карт Google событие добавления слушателя с помощью дротика: Js
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
Теперь я пытаясь дублировать это в дротике, используя библиотеку js. До сих пор у меня есть что-то вроде этого:
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]);
}]);
Вопрос заключается в том, что я установил метод «AddListener» через GOOGLE_MAPS [ «событие»], но когда я нажимаю на маркер, я получаю 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, но я хочу, чтобы взаимодействие с javascript api использовалось js-библиотекой dart.
Заранее спасибо.
Почему вы не хотите использовать 'google_maps' пакет? Он использует 'dart: js' под обложкой и предоставляет типизированный API гораздо проще в использовании, чем непосредственно с помощью' dart: js'. –
@AlexandreArdhuin, не то, что я не хочу использовать его, наоборот. Это то, что я начал заглядывать в карты дротиков и google, и когда я не мог сделать эту работу, я точно «нашел» этот пакет. Я использую его на самом деле, но я хотел знать, что я делаю неправильно, и поэтому я спросил об этом, и комментарий был для того, чтобы избежать ответов, рассказывающих мне о пакете – mitomed