google-maps - كيف - شرح google maps



علامات ديناميكية-أبي خرائط جوجل-علامات لا تزداد مع قيمة في حلقة (1)

و "وظيفة نطاق المجمع" خدعة القديمة (function(i) {...})(i) يعمل هنا. وبدون ذلك، فإن التنفيذ يأخذ القيمة النهائية ل. أيضا، if(i = 1) ينبغي أن يكون if(i == 1)

للعب حولها: http://jsfiddle.net/BK8vv/

for (var i = 1; i < total; i++) {  
   (function(i) {

    // Use geocoder to grab latlong for user inputed address
    geocoder.geocode( { 'address': address[i]}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            // Redefine map center location
            if (i == 1){ map.setCenter(results[0].geometry.location); }

            // Create dynamic markers on map as per the address array
                    alert(i);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location,
                title:address[i],
                zIndex: i,
                // PROBLEM CODE --- Using the function below it creates all Markers with a "1" instead of the "i" value..??  
                icon: pinImage(i),
                shadow: pinShadow
            });         
        }
       });
     })(i);
    }
}

https://ffff65535.com

لقد أنشأت الخرائط أبي أدناه ولها مجموعة من العناوين التي تأتي من قاعدة بيانات. تحميل الخريطة بشكل صحيح، ولكن لدي المشكلة التالية.

  1. علامات ديناميكية لا تتزايد مع قيمة "ط" .. حتى تعرض الخريطة كافة علامات مع "1" وليس "1،2،3،4،5"

    // Define Vars
    var pinColor = "FE7569";
    var marker, i;
    
    // Set default map center location
    var latlng = new google.maps.LatLng(-27.79014,153.18049);
    
    // Create pinShadow for each marker 
    var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com        /chart?chst=d_map_pin_shadow",
        new google.maps.Size(40, 37),
        new google.maps.Point(0, 0),
        new google.maps.Point(12, 35));
    
    // Function to create the dynamic marker
    function pinImage(i){
        return image = new google.maps.MarkerImage("http://www.googlemapsmarkers.com/v1/"+i+"/"+pinColor+"/", new google.maps.Size(21, 34), new google.maps.Point(0,0), new google.maps.Point(10, 34));
    }
    
    // Function to run once page has loaded
        function initialize(){      
    // Set Default settigns for google map
    var settings = {
        zoom: 10,
        center: latlng,
        mapTypeControl: true,
        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
        navigationControl: true,
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
        mapTypeId: google.maps.MapTypeId.ROADMAP};
    
    // Start Google Maps and assign it to div on site
    var map = new google.maps.Map(document.getElementById("map_canvas"), settings);     
    
    // loop though total numner of address in array
    for (i = 1; i < total; i++) {  
        // Use geocoder to grab latlong for user inputed address
        geocoder.geocode( { 'address': address[i]}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                // Redefine map center location
                if (i = 1){ map.setCenter(results[0].geometry.location); }
    
                // Create dynamic markers on map as per the address array
                var marker = new google.maps.Marker({
                    map: map, 
                    position: results[0].geometry.location,
                    title:address[i],
                    zIndex: i,
                    // PROBLEM CODE --- Using the function below it creates all Markers with a "1" instead of the "i" value..??  
                    icon: pinImage(i),
                    shadow: pinShadow
                });         
            }
        });
        }
    }
    




google-maps-markers