Olá,
Uma das postagens que mais renderam comentários por email foi a “Utilizando o Live Maps no Dynamics CRM”. Uma das razões dos comentários é a crítica em relação ao serviço no Brasil, pois algumas áreas ainda não têm precisão de detalhes e terrenos. Assim, os usuários clamam por exemplos de integração com o Google Maps.
Abaixo, uma sugestão para desenvolver a mesma solução com o Google Maps. Como minha intenção não é explicar cada trecho do código, evitarei colar pedacinhos e no final colocarei o código HTML completo.
1 – Acessando a página http://code.google.com/intl/pt-BR/apis/maps/documentation/examples/geocoding-simple.html , temos um exemplo de como funciona a API do Google Maps. Com o botão direito do mouse, selecionando “view source” teremos acesso ao código HTML que serivá de base para nossa implementação.
2 – No código, existe um textbox e um botão, que não usaremos. Após removê-los, podemos subistituir o parâmetro de entrada da função para receber o valor oriundo do formulário da conta no Dynamics CRM.
3 – Na página http://code.google.com/intl/pt-BR/apis/maps/signup.html , gere uma chave de acesso a API do Google Maps(gratiuta) para seu site e substitua no local adequado do HTML.
4 – Salve sua página na pasta ISV da estrutura do Dynamics CRM.
5 – Crie uma guia no formulário de contas e adicione uma seção e um frame. Desabilite a restrição de scripts. Aponte a url para /ISV/pagina.html. Publique!
6 – No final, a página estará próxima disso:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Endereço do Cliente</title>
<script src=http://maps.google.com/maps?file=api&v=2&sensor=false&key=SUACHAVEAQUI type="text/javascript"></script>
<script type="text/javascript">
var map = null;
var geocoder = null;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(-23.32,-46.37), 3);
geocoder = new GClientGeocoder();
}
}
function showAddress() {
var logradouro = parent.document.forms[0].all.address1_name.DataValue;
//Aqui poderemos melhorar os dados do enrereço com cidade, bairro, cep, etc.
var address = logradouro;
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 15);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
}
);
}
}
</script>
</head>
<body onload="initialize(); showAddress();" onunload="GUnload()">
<div id="map_canvas" style="width: 100%; height: 480px"></div>
</body>
</html>
O resultado será exibido conforme a imagem:
Observando as APIs, podemos ir mais longe e construir coisas interessantes como a rota da nossa empresa para o cliente, com a kilometragem que será gasta, por exemplo.
Param quem não é desenvolvedor, essa postagem pode ter sido rápida demais, por isso, farei um vídeo com mais detalhes da solução e em breve avisarei.
[]´s
Carlos Amorim Junior
"Trabalhe com amor, divida seu conhecimento com a comunidade."
http://www.dynamicscrm.com.br