2012-04-14 20 views
9

DARTが初めてです。 Google Maps Javascript APIをDARTで使用できますか?それが今では直接可能ではない場合は、他の方法がありますか?GoogleマップとDART

+1

18バイトについては、この質問に対する回答が変更されています。緑色のチェックマークも移動してもよろしいですか?ありがとう! –

答えて

7

pubで利用できるgoogle_maps packageを使用できるようになりました。このライブラリでは、ダーツスクリプトからGoogle Maps JavaScript APIを使用できます。

単にあなたのpubspec.yaml

dependencies: 
    google_maps: ">=1.0.1 <2.0.0" 

に依存関係を追加するには<script>タグを使用してマップのAPI JavaScriptを含めます。

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

次に、ダーツスクリプトからGoogleマップを使用できます。そのページ上の例のhttp://www.dartlang.org/articles/js-dart-interop/

つのGoogle Appsと相互運用する方法です:

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

私はそれを試みましたが、 'import'が私に"ディレクティブの順序が間違っています "というエラーメッセージを与えています。なぜそれがそれをやっているすべての手がかり? – Stan

+0

これはr14458でうまくいきます。 –

+0

ありがとうございますが、私は13851を使用することに固執しており、それが問題だと思います。私は正しい構文を見つけました。 '#import( 'package:js/js.dart'、接頭辞: 'js');は、まだ誰かを助けることができます。 – Stan

2

現在、JavaScriptと通信したい場合は、DartのpostMessageを使用する必要があります(これは最終的に変更されます)。あなたのダーツのコードで

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

そして:

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がJSのAPIとダートをマップにしてから、メッセージを仲介するあなたのアプリにいくつかのJavaScriptコードを追加する必要がありますXMLHttpREquestを使用してDartから直接Google Maps REST APIを使用することができます

+0

ありがとうございます。最初はGoogle Maps REST APIを初めて使用することを考えていました。 – 18bytes

1

ダートは現在、JavaScriptの相互運用性のライブラリがあります。ここでは簡単なexempleです。

関連する問題