Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 143529

GOOGLE MAPS ENTITY FORM MULTIPLE MARKERS

$
0
0

Hello,

Thank you for reading this. I have owners of accounts(sales reps). every owner has about 80-90 accounts and I want to display these addresses on google maps as red markers. I have used google maps in the past and currently display it on a form but does not have multiple markers. Also, I have created a form for this and based on the owner field on the new form, I want to search for all the accounts for every owner and want to display it. I have created a webpage html web resource but don't understand how I will get the data from another entity into this entity and iterate through it and display it on the marker. Please have a look at my code below.

Thank you!

<html><head>
<script src="maps.googleapis.com/.../js;amp;sensor=false"></script>
<script>
function initialize()
{
var Salesrep = Xrm.Page.data.entity.attributes.get("ownerid").getValue()[0].id.replace("{", "").replace("}", "");
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/new_accountfuels?$select=new_fulladdress,new_dba&amp;$filter=_ownerid_value eq " + Salesrep, true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function ()
{
if (this.readyState === 4)
{
req.onreadystatechange = null;
if (this.status === 200)
{
var results = JSON.parse(this.response);
var locations;
for (var i = 0; i<=results.value.length; i++)
{
var new_fulladdress = results.value[i]["new_fulladdress"];
var new_name = results.value[i]["new_dba"];
var map_canvas = document.getElementById('map_canvas');
var map_options = {center: new google.maps.LatLng(41.8336479, -87.872046), zoom: 10, mapTypeId: google.maps.MapTypeId.ROADMAP }
var map = new google.maps.Map(map_canvas, map_options)
var geocoder = new google.maps.Geocoder();
var address = window.parent.Xrm.Page.data.entity.attributes.get('new_fulladdress').getValue();
geocoder.geocode({'address': results.value[i]["new_fulladdress"] }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.setZoom(14);
var marker = new google.maps.Marker({map: map, position: results[0].geometry.location });
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(results.value[i]["new_dba"]);
infowindow.open(map, marker);
}
})(marker, i))
}
else {
alert("Geocode was not successful for the following reason: " + status);
}
});

}

}
else
{
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();

}


google.maps.event.addDomListener(window, 'load', initialize);
</script>

<meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta><meta charset="utf-8"><meta></head>
<body style="word-wrap: break-word;">

<br></body></html>



Viewing all articles
Browse latest Browse all 143529

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>