Looking for PowerObjects? Don’t worry, you’re in the right place! We’ve been part of HCL for several years, and we’ve now taken the final step in our acquisition journey: moving our website to the HCL domain. Nothing else is changing – we are still fanatically focused on Microsoft Business Applications!

PowerObjects Blog 

for Microsoft Business Applications


Proximity Search in MapPoint - Drawing Microsoft Dynamics CRM data on Maps

Post Author: Joe D365 |

Proximity Search allows you to find businesses located around a reference point you provide. For example, hotels or restaurants can provide the nearest location of all automatic teller machines (ATMs). Or a manufacturing company can list all gas stations within a short drive from a supply center. Or a retail outlet can allow website visitors to search for stores that are open early or stores that handle return items. Or you can locate your potential customers nearby an existing customer.

Proximity Searches can be utilized in MSCRM to get maximum benefit of customer data. For example, you can draw your potential customers nearby an existing customer so that you can analyze and refer your potential leads and opportunities to existing customer to get maximum business benefits. In below section, I will demonstrate the idea by showing code snippets and pictures.The FindServiceSoap.FindNearby method is a powerful feature of the MapPoint Web Service SOAP API. Using the FindNearby method, you can add the power of proximity searching to your Web site or solution. You can perform proximity searches on regularly-updated commercial data, such as Yellow Pages listings, which are included with a MapPoint Web Service subscription. Additionally, you can upload custom data and use FindNearby in custom store-locator and brand-finder applications.For further information on how to use this method, please refer MSDN article at:
http://msdn2.microsoft.com/en-us/library/ms980179.aspx.Here are the possible steps to follow in order to draw the above example. steps.JPG Following code snippets will help you in understanding different steps involved in calling FindNearBy method.Get Longitude and Latitude for Existing Customer using Find Service

//Find Address Longitude and latitude
FindServiceSoap FindService = new FindServiceSoap ();
FindService.Credentials = new NetworkCredential("", "");
FindService.PreAuthenticate = true;
FindAddressSpecification spec = new FindAddressSpecification();
spec.InputAddress = new Address();
spec.InputAddress.AddressLine = mAddress.Line1;
spec.InputAddress.CountryRegion = mAddress.Country;
spec.InputAddress.Subdivision = mAddress.StateProvince;
spec.InputAddress.PrimaryCity = mAddress.City;
spec.InputAddress.PostalCode = mAddress.Postalcode;
spec.DataSourceName = "MapPoint.NA";
FindResults results = FindService.FindAddress(spec);

Specifying Search Distance and Longitude and Latitude of Origin point and custom Database from where to search for nearby pointsFindNearbySpecification myFindSpec = new FindNearbySpecification();
//Specify the data source.
myFindSpec.DataSourceName = "Mappoint.InstallerAccounts";
//Specify the latitude and longitude.
myLatLong.Latitude = 47.63873;
myLatLong.Longitude = -122.131;
myFindSpec.LatLong = myLatLong;
//Specify the distance.
myFindSpec.Distance = 10;

Limit the number of records returned by specifying the Range property//Set the Range property.
myRange.StartIndex = 0;
myRange.Count = 10;
myFindOptions.Range = myRange;
myFindSpec.Options = myFindOptions;Return only the Properties you are interested in otherwise it will return all the properties from your custom database uploaded in MapPoint//Return only the properties that we're interested in.
myPropertyNames[0] = "Name";
myPropertyNames[1] = "AddressLine";
myPropertyNames[2] = "PrimaryCity";
myPropertyNames[3] = "RelationshipType";
myPropertyNames[4] = "longitude/latitude";

myFindFilter.PropertyNames = myPropertyNames;

myFindSpec.Filter = myFindFilter;
Specify Filter Expressions to return desired data depending on the entity properties//Specify the text of the Expression.
string myText = "(RlationshipType = {0} AND " +
"Rating > {1} ";
myFilterExpression.Text = myText;

//Set the paramater values to match the placeholders
//in the Text string.
object[] myParameters = new object[2];
string myFirstParameter = "Installers";
myParameters[0] = myFirstParameter;
int mySecondParameter = 25;
myParameters[1] = mySecondParameter;
myFilterExpression.Parameters = myParameters;
myFindFilter.Expression = myFilterExpression;
myFindSpec.Filter = myFindFilter;


Perform Proximity Search using FindNearby Method

myFindResults = myFindService.FindNearby(myFindSpec); Find result contains potential customers who reside nearby the existing customer. This also specifies their longitude and latitude data. Now you can simple follow my previous post regarding MSCRM integration with MapPoint to draw these potential customers and existing customer to Map.http://ayazahmad.wordpress.com/2007/06/12/mscrm-and-mappoint-integration-a-picture-is-worth-a-thousand-words/ Possible MapPoint Integrations with Microsoft Dynamics CRM1. Store locators
2. Branch Finders
3. Drawing Customers to analyze Customers
4. Lead/Opportunity Analysis per Region
5. Driving Directions
6. Order Tracking/shipment Tracking
7. Finding Points of Interests in a specific route

Joe CRM
By Joe D365
Joe D365 is a Microsoft Dynamics 365 superhero who runs on pure Dynamics adrenaline. As the face of PowerObjects, Joe D365’s mission is to reveal innovative ways to use Dynamics 365 and bring the application to more businesses and organizations around the world.

Leave a Reply

Your email address will not be published. Required fields are marked *

PowerObjects Recommends