if our suggestion(s) worked,  let us know by marking the answer as \"Best Answer\" right under the comment.This will help the rest of the community should they have a similar issue in the future.  Thank you!   Shiv", "upvoteCount": 0, "url": "https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A7aIfSAJ", "datePublished": "2013-11-11T07:45:05.000Z", "author": { "@type": "Person", "name": "Shivanath Devinarayanan", "url": "https://trailblazers.salesforce.com/profileView?u=00530000005SEBkAAO", "affiliation": { "@type": "Organization", "name": "Asymbl Inc" } } } ] } }
Skip to main content
2 answers
  1. Nov 11, 2013, 7:45 AM
    Credits Dan Stone' (https://success.salesforce.com/profile?u=00530000006daLt)s post (https://success.salesforce.com/answers?id=90630000000guBkAAI) ..

     

    Use Visual Force to add a live, interactive Google Map with zoom controls and maptype select buttons to Salesforce Accounts and Leads and other detail record pages:

     

    Go to Your Name » Setup » Develop » Pages

     

    Copy/paste the following code into a new Page replacing what appears by default.  Notice that in this example we're using custom fields for the Account address components:

     

    <apex:page standardController="Account">

     

    <apex:pageBlock >

     

    <head>

     

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

     

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

     

    <script type="text/javascript">

     

    $(document).ready(function() {

     

     

     

      var myOptions = {

     

        zoom: 20,

     

        mapTypeId: google.maps.MapTypeId.HYBRID,

     

        mapTypeControl: true

     

      }

     

     

     

      var map;

     

      var marker;

     

     

     

      var geocoder = new google.maps.Geocoder();

     

      var address = "{!Account.Project_Street_Address__c}, " + "{!Account.Project_City__c}, " + "{!Account.Project_Zipcode__c}";

     

     

     

      var infowindow = new google.maps.InfoWindow({

     

        content: "<b>{!Account.Name}</b>"

     

      });

     

      geocoder.geocode( { address: address}, function(results, status) {

     

        if (status == google.maps.GeocoderStatus.OK && results.length) {

     

          if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {

     

         

     

            //create map

     

            map = new google.maps.Map(document.getElementById("map"), myOptions);

     

         

     

            //center map

     

            map.setCenter(results[0].geometry.location);

     

           

     

            //create marker

     

            marker = new google.maps.Marker({

     

                position: results[0].geometry.location,

     

                map: map,

     

                title: "{!Account.Name}"

     

            });

     

           

     

            //add listeners

     

            google.maps.event.addListener(marker, 'click', function() {

     

              infowindow.open(map,marker);

     

            });

     

            google.maps.event.addListener(infowindow, 'closeclick', function() {

     

              map.setCenter(marker.getPosition());

     

            });

     

           

     

          }

     

         

     

        } else {

     

          $('#.map').css({'height' : '15px'});

     

          $('#.map').html("Oops! {!Account.Name}'s address could not be found, please make sure the address is correct.");

     

          resizeIframe();

     

        }

     

      });

     

     

     

      function resizeIframe() {

     

        var me = window.name;

     

        if (me) {

     

          var iframes = parent.document.getElementsByName(me);

     

          if (iframes && iframes.length == 1) {

     

            height = document.body.offsetHeight;

     

            iframes[0].style.height = height + "px";

     

          }

     

        }

     

      }

     

     

     

    });

     

    </script>

     

    <style>

     

    #.map {

     

      font-family: Arial;

     

      font-size:12px;

     

      line-height:normal !important;

     

      height:500px;

     

      background:transparent;

     

    }

     

    </style>

     

    </head>

     

    <body>

     

    <div id="map"></div>

     

    </body>

     

    </apex:pageBlock>

     

    </apex:page>

     

    Credits Dan Stone' (https://success.salesforce.com/profile?u=00530000006daLt)s post (https://success.salesforce.com/answers?id=90630000000guBkAAI) ..

     

    if our suggestion(s) worked,  let us know by marking the answer as "Best Answer" right under the comment.This will help the rest of the community should they have a similar issue in the future.  Thank you!

     

    Shiv
0/9000