2012-04-14 30 views
9

Soy nuevo en DART. ¿Es posible usar Google Maps JavaScript API en DART? Si no es directamente posible ahora, ¿hay alguna otra forma alternativa?Google Maps y DART

+1

18bytes, la respuesta a esta pregunta ha cambiado. ¿Te importaría mover la marca verde también? ¡Gracias! –

Respuesta

7

Ahora puede usar google_maps package disponible en pub. Esta biblioteca le permite usar Google Maps JavaScript API desde los scripts de dardos.

sólo tiene que añadir la dependencia a su pubspec.yaml

dependencies: 
    google_maps: ">=1.0.1 <2.0.0" 

Incluir la API de Google Maps JavaScript mediante una etiqueta <script>.

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

Luego puede utilizar Google Maps desde scripts de dardos. He aquí una sencilla 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

Lo intenté pero la 'importación' me está dando un mensaje de error" Directiva fuera de servicio ". ¿Alguna pista de por qué está haciendo eso? – Stan

+0

Esto funciona bien con r14458. –

+0

Gracias, pero estoy atascado para usar 13851 y supongo que ese es el problema. Sin embargo, encontré la sintaxis correcta: '#import ('paquete: js/js.dart', prefijo: 'js');', podría ayudar a alguien. – Stan

2

Actualmente necesita utilizar postMessage de Dart si desea comunicarse con JavaScript (esto eventualmente cambiará). Así que por ahora tendrá que añadir algo de código JavaScript a su aplicación que media mensajes hacia y desde Google Maps API JS y Dardo:

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

Y luego, en el código de Dardo:

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 puede usar Google Maps REST API directamente desde Dart usando XMLHttpREquest

+0

Gracias. Estaba pensando solo en usar la API REST de Google Maps inicialmente. – 18bytes