2012-04-02 22 views
7

Realmente agradeceré ayuda para esto.Migrando mi HTML API de Google MAP versión 2 a la versión 3

Mi archivo html v2 con alguna clave temporal funciona bien. Estoy obteniendo ubicaciones de algunos XML, creo marcadores de colores diferentes y agrego algunas URLs también desde atributos XML en la Ventana de información (no demasiado complicado). Ahora necesito migrar esto a v3. Encontré algunos equivalentes para las funciones de v2 pero no encontré para GDownloadUrl (para cargar XML) y también GIcon (G_DEFAULT_ICON); ¿Puede alguien mirar mis dos códigos y decirme cómo cambiar para que esto también funcione en v3. Cambié la mayoría de las cosas, así que si alguien puede ver algún error, le estaré agradecido. Gracias por adelantado.

Versión 2:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
    <title>Google Maps</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=AIzaSyA4UDNP6MZ" type="text/javascript"></script> 
    </head> 
    <body onunload="GUenter code herenload()"> 

    <!-- you can use tables or divs for the overall layout --> 
    <table border=1> 
     <tr> 
     <td> 
      <div id="map" style="width: 1250px; height: 1250px"></div> 
     </td> 
     </tr> 
    </table> 


    <script type="text/javascript"> 
    //<![CDATA[ 

    if (GBrowserIsCompatible()) { 

     var gmarkers = []; 

     // A function to create the marker and set up the event window 
     function createMarker(point,name,alarm,markerOptions) { 
     var marker = new GMarker(point,markerOptions); 
     GEvent.addListener(marker, "click", function() { 


     var alarmanchor1='<span class="url"><a href="' + alarm; 
     var alarmanchor2='" title="www" target="_blank">Event List</a></span>'; 
     var alarmanchor=alarmanchor1+alarmanchor2; 


     marker.openInfoWindowHtml(alarmanchor); 
     }); 

     return marker; 
     } 


     // This function picks up the click and opens the corresponding info window 
     function myclick(i) { 
     GEvent.trigger(gmarkers[i], "click"); 
     } 


     // create the map 
     var map = new GMap2(document.getElementById("map")); 
     map.addControl(new GLargeMapControl()); 
     map.addControl(new GMapTypeControl()); 
     map.setCenter(new GLatLng(41.932797,21.483765), 10); 


     // Read the data from alarms33.xml 
     GDownloadUrl("alarms33.xml", function(doc) { 
     var xmlDoc = GXml.parse(doc); 
     var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 

     for (var i = 0; i < markers.length; i++) { 
      // obtain the attribues of each marker 
      var lat = parseFloat(markers[i].getAttribute("lat")); 
      var lng = parseFloat(markers[i].getAttribute("lng")); 
      var point = new GLatLng(lat,lng); 
      var alarm = markers[i].getAttribute("alarm"); 
      var label = markers[i].getAttribute("label"); 




     var severity = parseFloat(markers[i].getAttribute("severity")); 
     var severityIcon = new GIcon(G_DEFAULT_ICON); 
     var color; 
     if (severity == 0) color = "66FF33"; 
     else if (severity == 1) color = "990099"; 
     else if (severity == 2) color = "00CCFF"; 
     else if (severity == 3) color = "FFFF00"; 
     else if (severity == 4) color = "FFCC00"; 
     else if (severity == 5) color = "FF3300"; 
     else color = "yellow"; 

     severityIcon.image = "http://www.googlemapsmarkers.com/v1/" + color; 
     severityIcon.iconSize = new GSize(15, 30); 

     markerOptions = { icon:severityIcon }; 




      // create the marker 
      var marker = createMarker(point,label,alarm,markerOptions); 
      map.addOverlay(marker); 
     } 

     }); 
    } 

    else { 
     alert("Sorry, the Google Maps API is not compatible with this browser"); 
    } 



    //]]> 
    </script> 
    </body> 

</html> 

Versión 3:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
    <title>Google Maps</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=3&amp;sensor=false&amp;key=AIzaSyDsa1LyWOQ" type="text/javascript"></script> 
    </head> 
    <body onunload="initialize()"> 

    <!-- you can use tables or divs for the overall layout --> 
    <table border=1> 
     <tr> 
     <td> 
      <div id="map" style="width: 1250px; height: 1250px"></div> 
     </td> 
     </tr> 
    </table> 






    <script type="text/javascript"> 
    //<![CDATA[ 


     var gmarkers = []; 

     // A function to create the marker and set up the event window 
     function createMarker(point,name,alarm,markerOptions) { 
     var marker = new google.maps.Marker(point,markerOptions); 
     google.maps.event.addListener(marker, "click", function() { 


     var alarmanchor1='<span class="url"><a href="' + alarm; 
     var alarmanchor2='" title="www.skolaznanja.com" target="_blank">Event List</a></span>'; 
     var alarmanchor=alarmanchor1+alarmanchor2; 



     var infoWindow=new google.maps.InfoWindow(); 
     infoWindow.setContent(alarmanchor); 
     infowindow.open(map,marker); 

     }); 

     return marker; 
     } 


     // This function picks up the click and opens the corresponding info window 
     function myclick(i) { 
     google.maps.event.trigger(gmarkers[i], "click"); 
     } 


     // create the map 

     function initialize() { 
     var mapDiv = document.getElementById("map"); 
     var map; 
     var myLatlng = new google.maps.LatLng(41.932797,21.483765); 
     var myOptions = { 
     zoom:10, 
     center:myLatlng, 
     mapTypeId:google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(mapDiv, myOptions); 

    } 

     //var map = new google.maps.Map(document.getElementById("map")); 
     //map.addControl(new GLargeMapControl()); 
     //map.addControl(new GMapTypeControl()); 
     //map.setCenter(new google.maps.LatLng(41.932797,21.483765), 10); 


     // Read the data from example.xml 
     GDownloadUrl("alarms44.xml", function(doc) { 
     var xmlDoc = GXml.parse(doc); 
     var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 

     for (var i = 0; i < markers.length; i++) { 
      // obtain the attribues of each marker 
      var lat = parseFloat(markers[i].getAttribute("lat")); 
      var lng = parseFloat(markers[i].getAttribute("lng")); 
      var point = new google.maps.LatLng(lat,lng); 
      var alarm = markers[i].getAttribute("alarm"); 
      var label = markers[i].getAttribute("label"); 




     var severity = parseFloat(markers[i].getAttribute("severity")); 
     var severityIcon = new GIcon(G_DEFAULT_ICON); 
     var color; 
     if (severity == 0) color = "66FF33"; 
     else if (severity == 1) color = "990099"; 
     else if (severity == 2) color = "00CCFF"; 
     else if (severity == 3) color = "FFFF00"; 
     else if (severity == 4) color = "FFCC00"; 
     else if (severity == 5) color = "FF3300"; 
     else color = "yellow"; 

     severityIcon.image = "http://www.googlemapsmarkers.com/v1/" + color; 
     severityIcon.iconSize = new GSize(15, 30); 

     markerOptions = { icon:severityIcon }; 




      // create the marker 
      var marker = createMarker(point,label,alarm,markerOptions); 
      map.setMap(marker); 
     } 

     }); 




    //]]> 
    </script> 
    </body> 

</html> 

Respuesta

5

Como hemos anotado GDownloadUrl() ya no existe en GMap V3. Recomendaría jQuery.get(url)

Publiqué un ejemplo How to parse xml file for marker locations and plot on map.

ACTUALIZACIÓN: Como @ user1191860 señala a continuación hay una utilidad para GMap V3 xmlparsing. Yo no era consciente de ello. AFAIK, no hay razón para no usarlo. Es necesario añadir

<script src="http://gmaps-samples-v3.googlecode.com/svn-history/r28/trunk/xmlparsing/util.js"></script> 

a su página HTML. Interesante que el autor también incluye un jQuery example

+1

Hola Eric. Encontré esto para API3 downloadUrl ("ejemplo.xml", función (doc) ¿Por qué no solo usar eso en lugar de jQuery? Esto es para API 3 ¿sí? Creo que es más fácil y más solución similar – Dejan

+0

Sí. Buen hallazgo –

+0

Gracias @Eric por el esfuerzo. ¿Puedes ayudarme con este otro problema? Si no, gracias de todos modos http://stackoverflow.com/questions/10013167/google-map-api-3-creating-different-colors-for -markers-from-code-of-api-2 – Dejan

Cuestiones relacionadas