2010-08-25 5 views
1

J'ai besoin d'aide et je pense que ce post pourrait m'aider, mais je suis très nouveau sur Google Maps et Visualforce. répondu par eyescream voir l'article How do I integrate Salesforce with Google Maps?.Salesforce.com Visualforce Google Maps

Mon problème est très similaire, mais je n'ai pas besoin de rechercher les enregistrements à tracer, ils sont disponibles dans une liste connexe. J'ai deux objets personnalisés appelés Wildlife__c et Sighting__c.

Les observations font référence à la faune, ce qui vous permet d'enregistrer une observation d'un animal en particulier. L'objet observations a deux champs personnalisés long__c et lat__c.

Je voudrais une carte sur la page de la faune qui regarde à travers et met des marqueurs sur une carte pour toutes les différentes observations. La carte sera simplement ajoutée en tant que composant de la page de la faune.

Je peux sur l'objet d'observation générer une carte avec une observation, mais je peux reproduire cela sur l'objet de la faune. Je pense que je dois créer un tableau mais je ne sais pas comment.

Un grand merci

Ross

Répondre

2

Vous devez comprendre l'ID du tableau html qui contient votre liste correspondante. Vous pouvez utiliser un plugin Firefox pour cela (je préfère Firebug, mais Web Developer Toolbar est aussi cool). Pour Internet Explorer ... je suppose que le "débogueur"; déclaration mis quelque part dans JavaScript fonctionnerait si vous avez Visual Studio ou un plugin IE installé.

Quels que soient les moyens, vous devriez être en mesure d'identifier HTML semblable à ceci:

<div class="pbBody" id="0017000000Lg8Wg_RelatedOpportunityList_body"> 
    <table class="list" border="0" cellpadding="0" cellspacing="0"> 
    ... 

maintenant un coup d'oeil à JavaScript dans ma réponse, surtout cette partie:

var htmlTable = document.getElementById('j_id0:j_id2:j_id7:accountTable').getElementsByTagName("tbody")[0].getElementsByTagName("tr"); 
for (var i = 0; i < htmlTable.length; ++i) { 
    names.push(htmlTable[i].getElementsByTagName("td")[0]); 

    // We need to sanitize addresses a bit (remove newlines and extra spaces). 
    var address = htmlTable[i].getElementsByTagName("td")[1].innerHTML; 
    addresses.push(address.replace(/\n/g, "").replace(/^\s+/,"").replace(/\s+$/,"")); 
} 

Insérez le ID que vous avez trouvé en première ligne. Déterminez quelle cellule <td> contient vos informations de latitude et de longitude. Vous pouvez le retrouver avec votre débogueur ou votre expérience en mettant la boîte alert() dans la boucle. Dernière partie est que vous n'avez pas besoin de géocoder vos adresses, vous avez déjà LAT et LONG. Donc, passez directement à la fonction finalizeDrawingMap() et réutilisez le contenu. Vous pouvez passer la partie qui essaie de deviner le meilleur zoom (ou mieux encore - vérifiez l'API Google Maps s'il y a une meilleure astuce, c'est un hack rapide et moche). Le noyau de ce que vous avez besoin des mensonges à StackOverflow :)

+0

Un grand merci pour la réponse rapide, je vais essayer de

for(i=0;i < coordinates.length; i++){ markers.push(new google.maps.Marker({ position: coordinates[i], map: map, title: names[i].getElementsByTagName("a")[0].innerHTML, zIndex:i})); ... } 

Bonne chance & Bienvenue et aller avec aujourd'hui. – MACRL