+ Start a Discussion
Amanda ReamAmanda Ream 

Insert a Google Maps VisualForce Page into a Custom Object

I am an APEX VisualForce newbie trying to add a mapping VF page to a Custom Object. I copied and pasted some code I found on the answers community for Standard Object (Accounts) and was able to get it to work. Now I am trying to modify the code to work on a Custom Object (Equipment) and it is erroring out on line 1. First I got the error "Equipment__c standard controller doesn't exist" which I think was because I forgot one of the underscores between Equipment and the c. Now I am getting the error "Data type not supported". Any suggestion or help is much appreciated!

<apex:page standardController="Equipment__c">
<apex:pageBlock >
<head>

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function() {
 
  var myOptions = {
    zoom: 8,
    mapTypeId: google.maps.MapTypeId.MAP,
    mapTypeControl: true
  }
 
  var map;
  var marker;
 
  var geocoder = new google.maps.Geocoder();
  var address = "{!Equipment__c.GeoLocationText__c}";
 
  var infowindow = new google.maps.InfoWindow({
    content: "<b>{!Equipment__c.Equipment_Address__c}</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);
        map.panBy(0,200);
       
        //create marker
        marker = new google.maps.Marker({
            position: results[0].geometry.location,
            map: map,
            title: "{!Equipment__c.Equipment_Address__c}"
        });
       
        //add listeners
        google.maps.event.addListener(marker, 'click', function() {
          infowindow.open(map,marker);
        });
        google.maps.event.addListener(map, 'zoom_changed', function() {
          if (this.getZoom() < 8) this.setZoom(8);
        });
       
      }
     
    } else {
      $('#map').css({'height' : '15px'});
      $('#map').html("Oops! {!Equipment__c.Equipment_Address__c}'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>
Amanda ReamAmanda Ream
In the VisualForce markup this is the exact error: "Error: Unsupported attribute customcontroller in <apex:page> in Equipment_Mapping at line 1 column 44"