2012-04-02 8 views
7

Ich schätze die Hilfe sehr.Migration meiner HTML Google MAP API Version 2 auf Version 3

Meine html v2-Datei mit einigen temporären Schlüssel funktioniert gut. Ich erhalte Orte aus irgendeinem XML, erstelle verschiedene Farbmarkierungen und füge einige URLs auch aus XML-Attributen im Info-Fenster hinzu (nicht zu kompliziert). Jetzt muss ich dies auf v3 migrieren. Ich fand einige Entsprechungen für Funktionen von v2, aber ich fand nicht für GDownloadUrl (zum Laden von XML) und auch GIcon (G_DEFAULT_ICON); Kann mir bitte jemand meine beiden Codes ansehen und mir sagen, wie man das ändern kann, damit das auch in v3 funktioniert. Ich habe die meisten Dinge geändert, also wenn jemand einen Fehler sehen kann, werde ich dankbar sein. Danke im Voraus.

Version 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> 

Version 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> 

Antwort

5

Wie Sie GDownloadUrl() nicht mehr in GMap V3 festgestellt habe. Ich würde empfehlen jQuery.get(url)

Ich postete ein Beispiel How to parse xml file for marker locations and plot on map.

UPDATE: Wie @ user1191860 unten weist darauf hin, es ist ein Dienstprogramm für GMap V3 xmlparsing. Ich war mir dessen nicht bewusst. AFAIK, kein Grund, es nicht zu benutzen. Sie benötigen

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

auf Ihre HTML-Seite hinzuzufügen. Interessant, dass der Autor auch eine jQuery example

+1

Hallo Eric enthält. Ich fand dies für API3 DownloadUrl ("Beispiel.xml", Funktion (doc) Warum nicht nur das anstelle von jQuery verwenden? Dies ist für API 3 ja? Ich denke, es ist einfacher und ähnlicher Lösung – Dejan

+0

Ja. Gut zu finden. –

+0

Vielen Dank @Eric für die Mühe.Kannst du mir vielleicht helfen mir mit diesem anderen Thema? Wenn nicht danke trotzdem http://stackoverflow.com/questions/10013167/google-map-api-3-creating-different-colors-for -markers-from-code-of-api-2 – Dejan