2012-04-14 24 views
9

DART için yeni. Google Haritalar Javascript API'sını DART'ta kullanmak mümkün mü? Şu anda doğrudan mümkün değilse, başka bir alternatif yolu var mı?Google Maps ve DART

+1

18bayt, bu sorunun cevabı değişti. Yeşil onay işaretini de taşımayı düşünür müsün? Teşekkürler! –

cevap

7

kullanabilirsiniz google_maps packagepub kullanılabilir. Bu kütüphane, Google Haritalar JavaScript API'sını dart komut dosyalarından kullanmanıza olanak tanır.

Sadece bir <script> etiketini kullanarak

dependencies: 
    google_maps: ">=1.0.1 <2.0.0" 

Maps API JavaScript Dahil sizin pubspec.yaml için bağımlılık ekleyin.

<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 

Ardından Google Haritalar'ı dart komut dosyalarından kullanabilirsiniz. o sayfadaki örneklerinden http://www.dartlang.org/articles/js-dart-interop/

One Google Apps ile birlikte çalışmasına nasıl:

import 'dart:html'; 
import 'package:google_maps/google_maps.dart'; 

void main() { 
    final mapOptions = new MapOptions() 
    ..zoom = 8 
    ..center = new LatLng(-34.397, 150.644) 
    ..mapTypeId = MapTypeId.ROADMAP 
    ; 
    final map = new GMap(query("#map_canvas"), mapOptions); 
} 
+0

Bunu denedim ama 'içe aktarma 'bana" Siparişten çıkarılmadı "mesajını veriyor. Bunu neden yaptığına dair ipucu var mı? – Stan

+0

Bu, r14458 ile iyi çalışır. –

+0

Teşekkürler, ama 13851 kullanıyorum ve sanırım sorun bu. Ancak doğru sözdizimini buldum: #import ('paket: js/js.dart', önek: 'js'); 'henüz birilerine yardım edebilir. – Stan

2

Eğer JavaScript ile iletişim kurmak istiyorsanız şu anda postMessage Dart kullanmanız gerekir (bu sonunda değişecektir). Şimdilik size ve Google'dan gelen mesajlara aracılık uygulamanıza bazı JavaScript kodu eklemeniz gerekir Yani JS API ve Dart eşler:

function googleMapsCallback(s) { 
    window.postMessage(JSON.stringify(s), '*'); 
} 

Ve sonra Dart kodunda:

class GoogleMap { 
    GoogleMap() { 
    window.on.message.add(received, false); 
    } 

    received(MessageEvent e) { 
    var data = JSON.parse(e.data); 
    // do stuff with google maps data 
    } 
} 

Alternativly Google Maps REST API doğrudan Dart kullanarak XMLHttpREquest kullanarak

+0

Teşekkürler. Yalnızca Google Maps REST API'sını başlangıçta kullanmayı düşünüyordum. – 18bytes

1

Dart şimdi bir JavaScript çalışabilirlik kütüphaneye sahiptir: Burada basit exemple bu.