2012-04-14 16 views
9

Sono nuovo a DART. È possibile utilizzare l'API JavaScript di Google Maps su DART? Se non è direttamente possibile ora, esiste un altro modo alternativo?Google Maps e DART

+1

18 byte, la risposta a questa domanda è cambiata. Ti dispiacerebbe spostare anche il segno di spunta verde? Grazie! –

risposta

7

È ora possibile utilizzare google_maps package disponibile su pub. Questa libreria ti consente di utilizzare l'API JavaScript di Google Maps da script di dart.

Basta aggiungere la dipendenza al pubspec.yaml

dependencies: 
    google_maps: ">=1.0.1 <2.0.0" 

Includere il Maps API JavaScript utilizzando un tag <script>.

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

Quindi è possibile utilizzare Google Maps da script dardo. Ecco un semplice exemple:

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

L'ho provato, ma l'importazione mi dà un messaggio di errore "Direttiva fuori servizio". Qualche indizio sul perché lo sta facendo? – Stan

+0

Funziona bene con r14458. –

+0

Grazie, ma sono bloccato a utilizzare 13851 e credo sia il problema. Ho trovato la sintassi corretta però: '#import ('pacchetto: js/js.dart', prefisso: 'js');', potrebbe aiutare ancora qualcuno. – Stan

2

Attualmente è necessario utilizzare postMessage da Dart se si desidera comunicare con JavaScript (questo alla fine cambierà). Quindi per ora è necessario aggiungere del codice JavaScript per la vostra applicazione che media i messaggi da e per Google maps JS API e Dart:

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

E poi nel codice Dart:

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 è possibile utilizzare Google Maps REST API direttamente da Dart utilizzando XMLHttpREquest

+0

Grazie. Inizialmente pensavo solo all'utilizzo dell'API REST di Google Maps. – 18bytes