Google Maps Multiple Custom Markers

后端 未结 3 529
伪装坚强ぢ
伪装坚强ぢ 2020-12-05 16:33

So I\'m trying to learn how to make a google map. I have very little understanding of javascript but am trying to learn here.

I referenced a code online and I got to

相关标签:
3条回答
  • 2020-12-05 17:14
        <div id="map"></div>
    
      <script type="text/javascript">          
         function initialize() {
             //add map, the type of map
               var mapOptions = {
                   zoom: 5,
                   draggable: true,
                   animation: google.maps.Animation.DROP,
                   mapTypeId: google.maps.MapTypeId.ROADMAP,
                   center: new google.maps.LatLng(51.4964302,-0.1331412), // area location
                   styles:[{"stylers":[{"saturation":-100},{"gamma":1}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"labels.text","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"poi.place_of_worship","elementType":"labels.text","stylers":[{"visibility":"off"}]},{"featureType":"poi.place_of_worship","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry","stylers":[{"visibility":"simplified"}]},{"featureType":"water","stylers":[{"visibility":"on"},{"saturation":50},{"gamma":0},{"hue":"#50a5d1"}]},{"featureType":"administrative.neighborhood","elementType":"labels.text.fill","stylers":[{"color":"#333333"}]},{"featureType":"road.local","elementType":"labels.text","stylers":[{"weight":0.5},{"color":"#333333"}]},{"featureType":"transit.station","elementType":"labels.icon","stylers":[{"gamma":1},{"saturation":50}]}]
               };
               var mapElement = document.getElementById('map');
               var map = new google.maps.Map(mapElement, mapOptions);
    
             //add locations
                 var locations = [
                     ['London office', 51.4964302,-0.1331412,'http://labs.google.com/ridefinder/images/mm_20_red.png'],
                     ['Sausalito', 37.8590937, -122.4852507,'http://labs.google.com/ridefinder/images/mm_20_red.png'],
                     ['Sacramento', 38.5815719, -121.4943996,'http://labs.google.com/ridefinder/images/mm_20_green.png'],
                     ['Soledad', 36.424687, -121.3263187,'http://labs.google.com/ridefinder/images/mm_20_blue.png'],
                     ['Shingletown', 40.4923784, -121.8891586,'http://labs.google.com/ridefinder/images/mm_20_yellow.png']
                 ];
                 //declare marker call it 'i'
                 var marker, i;
                 //declare infowindow
                 var infowindow = new google.maps.InfoWindow();
                 //add marker to each locations
                 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,
                         icon: locations[i][3]
                 });
                 //click function to marker, pops up infowindow
                 google.maps.event.addListener(marker, 'click', (function(marker, i) {
                     return function() {
                         infowindow.setContent(locations[i][0]);
                         infowindow.open(map, marker);
                     }
                 })(marker, i));
             }
         }
         google.maps.event.addDomListener(window, 'load', initialize);
      </script>
    
    0 讨论(0)
  • 2020-12-05 17:17

    There are multiple ways, the easiest is to set the icon-property of the marker to a URL of an image you want to appear as marker.

    sample:

    //modified array with icon-URLs
    var locations = [
                ['San Francisco: Power Outage', 37.7749295, -122.4194155,'http://labs.google.com/ridefinder/images/mm_20_purple.png'],
                ['Sausalito', 37.8590937, -122.4852507,'http://labs.google.com/ridefinder/images/mm_20_red.png'],
                ['Sacramento', 38.5815719, -121.4943996,'http://labs.google.com/ridefinder/images/mm_20_green.png'],
                ['Soledad', 36.424687, -121.3263187,'http://labs.google.com/ridefinder/images/mm_20_blue.png'],
                ['Shingletown', 40.4923784, -121.8891586,'http://labs.google.com/ridefinder/images/mm_20_yellow.png']
            ];
    
    
    
    //inside the loop
    marker = new google.maps.Marker({
                    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                    map: map,
                    icon: locations[i][3]
                });
    
    0 讨论(0)
  • 2020-12-05 17:17
        var locations = [
            ['San Francisco: Power Outage', 37.7749295, -122.4194155],
            ['Sausalito', 37.8590937, -122.4852507],
            ['Sacramento', 38.5815719, -121.4943996],
            ['Soledad', 36.424687, -121.3263187],
            ['Shingletown', 40.4923784, -121.8891586]
        ];
    

    Locations represents an array of districts followed by their posicón specifically by its latitude and longitude , so they will be positioned on the map of google , not always latitude and longitude in this way be sent , so you can receive database or json . I hope I've helped.

    0 讨论(0)
提交回复
热议问题