2010-11-11 6 views
1

Heres проблема, у меня есть база данных, то будет содержать информацию о маркерных изображений:Google Maps v3 настройки размера маркера динамически

Я retreiving все, что с вызовом AJAX и сохранение данных как объектов, так что я могу проверить тип местоположения маркера и поместить соответствующий маркер для этого типа местоположения.

я получаю данные в порядке, но когда я пытаюсь добавить данные в contructor для нового изображения карты Google, это ошибки, я проверил с предупреждением, что правильная информация есть, и это так что дает ???

// the following code will wor!!! 
        new google.maps.Size(32,37) // The Size works 
//The following line breaks it with dynamic value  
        new google.maps.Size(myIconArray.icon[myData.name_etp].size) 

Heres полный код: (тестовые значения в статических строк кода являются одни и те же значения, которые хранятся в объектных ссылок творю) http://www.focus-on-plants.com/locator_iconed.php

function addMarker(map, myData){ 
     console.log(myData) 
     // Create the marker 
     // create the marker info first 
     myLatLng = new google.maps.LatLng(myData.lat_mdt, myData.lng_mdt); 
     markersArray.push(myLatLng); 
     markersInfoArray.push(myData); 

     // ---------------------------- 
     // NOW CREATE THE ACTUAL ICON 
     //alert(myIconArray.icon[myData.name_etp].size) 

     /*var iconimage = new google.maps.MarkerImage(
     '/images/icons/markers/flower_lb/image_med.png', //myIconArray.icon[myData.name_etp].image, 
     new google.maps.Size(myIconArray.icon[myData.name_etp].size) // The Size 
     //new google.maps.Point(myIconArray.icon[myData.name_etp].origin), // The origin 
     //new google.maps.Point(myIconArray.icon[myData.name_etp].anchorpoint) // The anchor 
    );*/ 
     //console.log(iconimage) 
     var iconshape = { 
     type: 'poly', 
     coord: [0,2,1,2,1,1,18,0,18,1,19,2,20,19,19,19,18,21,14,21,10,26,5,21,1,21,1,20,0,20,0,2] 
     } 

     //alert(myIconArray.shape[myData.name_etp]) 
     mySize = 'new google.maps.Size('+myIconArray.icon[myData.name_etp].size+')' 
     var iconimage = new google.maps.MarkerImage(
     myIconArray.icon[myData.name_etp].image, 
     // the following code works!!! 
         new google.maps.Size(32,37) // The Size works 
         //The following line breaks iot with dynamic value  
         //new google.maps.Size(myIconArray.icon[myData.name_etp].size) 


     //new google.maps.Point(0, 0), // The origin 
     //new google.maps.Point(13,29) // The anchor 
    ); 
     var iconshadow = new google.maps.MarkerImage(
     '/images/icons/markers/flower_lb/shadow_med.png', 
     new google.maps.Size(42,18), // The Size 
     new google.maps.Point(0,0), // The origin 
     new google.maps.Point(13,18) // The anchor 
    ); 

     var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: myData.name_mdt, 
     icon: iconimage, 
     shadow: iconshadow//, 
     //shape: iconshape 
     }); 

     // Wrapping the event listener inside an anonymous function 
     // that we immediately invoke and passes the variable i to. 
     (function(myData, marker) { 
     // Creating the event listener. It now has access to the values of 
     // myData and marker as they were during its creation 
     google.maps.event.addListener(marker, 'click', function() { 
     //create thecontent for the infowindow 
     var content = createContent(myData); 
     var infowindow = new google.maps.InfoWindow({ 
     content: content 
     }); 
     infowindow.open(map, marker); 
     }); 
     })(myData, marker); 

    }; 

ответ

2

ок, так что я выяснили, почему это было,

я проходил new google.maps.Size(myIconArray.icon[myData.name_etp].size)

Google изображение maps.size принять ы два отдельных параметров, new google.maps.Size(42,18)

я проходил 32, 37 который был actualy строкой,

мне нужно разбить строку вверх, используя следующее:

tmp = myIconArray.icon[myData.name_etp].size.split(",")

затем добавить х и y для размера, который я использую: new google.maps.Size(tmp[0], tmp[1])

Смежные вопросы