Difficult to tell with that mammoth code block viewed on an iPhone, but the most likely cause is using a single instance of a DisplayObject for mutiple markers. To use a custom icon for a marker, you must create a new instance of that icon, rather than passing multiple references to the same instance.

Sent from my iPhone

On 25 May 2010, at 09:28, "[email protected]" <[email protected] > wrote:

Hi all had a search around but can't find any help so far, so i hope
someone can help me out.
I have created the map and populated it with xml markers which is no
problems but now I want the markers to have icons based on their type
from the xml. I've got so far with the code below but the
"customIcons" only get added to a couple of the markers on the map the
rest are standard orange google markers or disappear. The markers I am
using are mc's in my library and defined in the code.

Thanks in advanced for any help.

My AS3 Code:

// import classes
import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.controls.NavigationControl;
import com.google.maps.controls.MapTypeControl;
import com.google.maps.controls.OverviewMapControl;
import com.google.maps.overlays.MarkerOptions;
import com.google.maps.overlays.Marker;
import com.google.maps.InfoWindowOptions;
import com.google.maps.MapMouseEvent;

// custom icons
var house_icon:house_mc = new house_mc();// <--mc in my library
var bungalow_icon:bungalow_mc = new bungalow_mc();// <--mc in my
library

// set custom icons from movie clips in library
var customIcons:Object = {
   "House": house_icon,
   "Bungalow": bungalow_icon
}
// create The Map
var map:Map = new Map();
map.key = "*****************************************************";
map.setSize(new Point(stage.stageWidth, stage.stageHeight));
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);

//map ready function
function onMapReady(event:MapEvent):void {
 map.setCenter(new LatLng(50.161175, -5.088215), 13,
MapType.HYBRID_MAP_TYPE);
 map.addControl(new NavigationControl());
 map.addControl(new OverviewMapControl());
 map.addControl(new MapTypeControl());
 xmlLoader();
}
// load xml and loop through
function xmlLoader(){
function loadXML(e:Event):void{
    XML.ignoreWhitespace = true;
    var map_xml:XML = new XML(e.target.data);

    for (var i:Number = 0; i < map_xml.location.length(); i++){

        var latlng:LatLng = new LatLng(map_xml.location[i].lat,
map_xml.location[i].lng);
        var name = map_xml.location[i].name;
        var address:String = map_xml.location[i].address;
        var vis:String = map_xml.location[i].vis;
        var beds:String = map_xml.location[i].beds;
        var type:String = map_xml.location[i].type;
        var photo1:String = map_xml.location[i].photo1;
        var id:String = map_xml.location[i].id;
        var conad:String = name+" "+address;
        //trace(conad);

map.addOverlay(createMarker(latlng,i, name, address, conad, photo1,
type));


    }// end of for loop

    // add markers
    function createMarker(latlng:LatLng, number:Number, name, address,
conad, photo1, type):Marker {
              var i:Marker = new Marker(
                                        latlng,
                                        new MarkerOptions({
icon: customIcons[type],// <--icon by type from
customIcons Object above
                                                          hasShadow:
false,
tooltip: ""+type
                                                          })
                                        );
              i.addEventListener(MapMouseEvent.CLICK,
function(event:MapMouseEvent):void
{ map.openInfoWindow(event.latLng, new
InfoWindowOptions({
titleHTML: "<b>"+conad+"</b>", contentHTML: ""+photo1 }));

});
              return i;
     }// end function createMarker
}// end of loadXML function

//  define xml file
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, loadXML);
xmlLoader.load(new URLRequest("mapxml.xml"));
}

--
You received this message because you are subscribed to the Google Groups "Google Maps API For Flash" group. To post to this group, send email to [email protected] . To unsubscribe from this group, send email to [email protected] . For more options, visit this group at http://groups.google.com/group/google-maps-api-for-flash?hl=en .


--
You received this message because you are subscribed to the Google Groups "Google 
Maps API For Flash" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-api-for-flash?hl=en.

Reply via email to