2011-05-10 63 views
0

我使用带有Flex 3的Google Maps。我使用自定义标记(自定义图标)在地图上标记地点。它工作正常。问题是,在某些情况下,我不需要自定义图标,我需要标准标记。谷歌地图和Flex:如何使用标准地图标记而不是自定义标记?

例如,我将如何设置条件C的图标,标准标记:

public function iconSetter():void { 
    if (condition A blah blah){myIcon=star; myPointsBuilder(); return;} 
    if (condition B blah blah){myIcon=circle; myPointsBuilder(); return;} 
    if (condition C blah blah){myIcon=STANDARD MARKER; myPointsBuilder(); return;} 
    } 

在myPointsBuilder功能创建的标记,像这样:

for (i=0; i < arrayLength; i++) { 
     myMarker = new Marker(new LatLng(myData[i].latitude, myData[i].longitude), new MarkerOptions({ 
     icon: new myIcon, iconOffset: new Point(2,2), iconAlignment:1, hasShadow:true 
     })); 
     markerBoss.addMarker(myMarker, 15, 15); 
     } 
     markerBoss.refresh(); 

我不知道如何恢复到我写“STANDARD MARKER”的默认标记。有什么建议么?

谢谢。

-Laxmidi

+0

如果你只是想标准的图标,干嘛还要设置图标标记选项? – 2011-05-11 14:47:43

+0

嗨JAX,谢谢你的留言。在情况A和B我需要自定义标记。在情况C下,我需要默认标记。如果您有建议,我很乐意听到它。谢谢! – Laxmidi 2011-05-11 15:06:59

回答

1

尝试是这样的:

for (i=0; i < arrayLength; i++) { 
    myMarker = new Marker(new LatLng(myData[i].latitude, myData[i].longitude)); 
    switch(condition) 
    { 
     case A: 
     case B: 
     myMarket.setOptions(new MarkerOptions({icon: new myIcon, iconOffset: new Point(2,2), iconAlignment:1, hasShadow:true})); 
     break; 
     case C: // default, do nothing 
     break; 
    } 
    markerBoss.addMarker(myMarker, 15, 15); 
} 
markerBoss.refresh(); 

这是未经测试,但你的想法

+0

嗨J_A_X,非常感谢您的帮助。这很好。 – Laxmidi 2011-05-11 21:31:59