Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
219 views
in Technique[技术] by (71.8m points)

javascript - Colour the first marker of a Google Map a different colour

I'm sure this must be very easy, but I'm a novice at Javascript...

I have the following code to display a list of points on a google map:

<script type="text/javascript">     
var locations = [
                    ['<b>Customer</b><br>Address', 52.6699927, -0.7274620, 1],
                    ['<b>Leicester</b><br>Unit B, St Margarets Way, Leicester<br>0116 262 7355', 52.646179, -1.14004, 2],
                    ['<b>Nottingham</b><br>Victoria Retail Park, Netherfield, Nottingham<br>0115 940 0811', 52.961685, -1.06394, 3],
                    ['<b>Nuneaton</b><br>Newtown Road Nuneaton Warwickshire<br>02476 642220', 52.5245, -1.46764, 4],
                    ['<b>Peterborough</b><br>Mallory Road, Boongate, Peterborough, Cambridgeshire<br>01733 561357', 52.574116, -.219535, 5],
                    ['<b>Wellingborough</b><br>Victoria Retail Park, Whitworth Way, London Road, Wellingborough<br>01933 276225', 52.289585, -.68429, 6]     
                ];      
var map = new google.maps.Map(document.getElementById('map'), 
        {       
            zoom: 9,       
            center: new google.maps.LatLng(52.6699927, -0.7274620),       
            mapTypeId: google.maps.MapTypeId.ROADMAP     
        }
        );      
var infowindow = new google.maps.InfoWindow();      
var marker, i;      

for (i = 0; i < locations.length; i++) {         
            marker = new google.maps.Marker({         
                            position: new google.maps.LatLng(locations[i][1], locations[i][2]),         
                            map: map,
                            });                              
            google.maps.event.addListener(marker, 'click', (function(marker, i) {         return function() 
            {           infowindow.setContent(locations[i][0]);               
                        infowindow.open(map, marker);         
            }       
        })
        (marker, i));     }   


</script> 

The first location in the 'locations' list is the centre of the map, and I would like to change the colour for this marker only. I understand that I can use icon, but am unsure how to adjust the for loop code to do so.

Can you help?

Many thanks in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. add an icon URL to the end of the first element in your array, something like:

    ['<b>Customer</b><br>Address', 52.6699927, -0.7274620, 1, 'http://maps.google.com/mapfiles/ms/icons/blue.png']
    
  2. use that in the definition of your marker (if it isn't there it will be "null" and the default marker will be used).

    marker = new google.maps.Marker({         
           position: new google.maps.LatLng(locations[i][1], locations[i][2]),         
           map: map,
           icon: locations[i][4]
         });
    

working example


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...