Jim
Jim

Reputation: 923

Google Maps API v3 port

I am trying to port my google api v2 to v3 but it does not work....i get an "Polyline is not defined" error... :/ the old Polyline is GPolyline and the new is new google.maps.Polyline

https://developers.google.com/maps/documentation/javascript/overlays?hl=de-DE#Polylines

var map = "";
var mapConfig = "";
var mapElements = "";
var curActiveMenuButton = "";
var clickHandlerElementCount = "";


//window.onload = function() {
//window.addEvent('domready', function() {
//document.addEvent('domready', function() {
//alert("The DOM is ready.");
//initializeMap();
//});

/* 
 * function initializeMap()
 * 
 * Initalisierung der Google-Map.
 */
function initializeMap(){

        // Karte ins DOM einhängen
        map = new google.maps.Map($('map_canvas'), myOptions);

        //place the map on the canvas
        //map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        var latlng = new google.maps.LatLng(51.05758110879136, 10.451431274414062);

        // default zoomlevel and center point
        var myOptions = {
            zoom: 12,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP, 
            navigationControl: true, 
            mapTypeControl: true, 
            scaleControl: true,
        };

        // default zoomlevel and center point
        var encodedPolyline = new google.maps.Polyline();

        // find bounding polyline and recalculate map center
        for (var i = 0; i < mapElements.length; i++) {
            if (mapElements[i]['titel'] == "nationalparkhainich") {
                    encodedPolyline = Polyline.fromEncoded({
                    points: mapElements[i]['pol'],
                    levels: mapElements[i]['lev']
                });
                mapCenter = encodedPolyline.getBounds().getCenter();
                i = mapElements.length;
            }
        }


        // Kartenmenue initialisieren
        //initializeMapMenue();

}

Upvotes: 1

Views: 2942

Answers (1)

Andrew Leach
Andrew Leach

Reputation: 12983

Polyline is indeed not defined. You use it here:

encodedPolyline = Polyline.fromEncoded({

Version 3 doesn't include fromEncoded() — it appears that you need to use the geometry library (which needs to be explicitly loaded separately) and

encodedPolyline.setPath(
    google.maps.geometry.encoding.decodePath(mapElements[i]['pol'])
    );

[split on to separate lines here for clarity]

Upvotes: 1

Related Questions