Share via


BatchGeocodeSpecification Class

BatchGeocodeSpecification Class

Public Class BatchGeocodeSpecification Inherits System.Object

[C#]
public class BatchGeocodeSpecification : System.Object

Public Constructors

Name Description
public constructorBatchGeocodeSpecification Constructor Initializes a new instance of the BatchGeocodeSpecification class.

Public Properties

Name Description
public propertyJobName

Provides a user-friendly name for the process.

public propertyMaximumGeocodingLevel

Indicates the maximum geocoding level (GeocodingLevel enumeration) that MapPoint Web Service should use when geocoding your point-of-interest data. The default geocoding level is GeocodingLevel.PostalCode.

public propertyRejectAmbiguousGeocodes

Indicates whether ambiguous addresses should be skipped or whether they should be assigned the latitude and longitude of the first address that matches the record.

Example

[Visual Basic]

Dim DataService As New CustomerDataService
DataService.Credentials = New NetworkCredential(myUserName, mySecurePassword, myDomainName)

' Create BatchGeocodeSpecification
Dim uploadSpec As New BatchGeocodeSpecification
uploadSpec.JobName = "BatchGeocodeJob"
uploadSpec.MaximumGeocodingLevel = GeocodingLevel.Street
uploadSpec.RejectAmbiguousGeocodes = True

' Start Batch Geocode
Dim jobID As String = DataService.StartBatchGeocode(uploadSpec)

' Upload data
Dim localUploadStream As New FileStream("c:\uploadfile.xml", FileMode.Open, FileAccess.Read, FileShare.Read)
Dim localUploadReader As New BinaryReader(localUploadStream)
Dim filesize As Long = localUploadStream.Length
Dim bytesPreviouslyUploaded As Long = 0
While (bytesPreviouslyUploaded < filesize)
    Dim localBuffer As Byte() = localUploadReader.ReadBytes(2000)
    bytesPreviouslyUploaded = DataService.UploadData(jobID, localBuffer, bytesPreviouslyUploaded)
End While

DataService.FinishUpload(jobID, filesize)

' Wait for job to complete
Dim jobState As JobState = DataService.GetJobState(jobID)
While (jobState = jobState.Pending OrElse jobState = jobState.InProcess)
    Thread.Sleep(10000)
    jobState = DataService.GetJobState(jobID)
End While

' download the results
If (jobState = jobState.CompletedSuccess) Then
    Dim downloadURL As String = DataService.GetDownloadFileURL(jobID)
    Dim downloadClient As New System.Net.WebClient
    downloadClient.Credentials = New NetworkCredential(myUserName, mySecurePassword, myDomainName)
    downloadClient.DownloadFile(downloadURL, "c:\results.zip")
End If



[C#]

CustomerDataService DataService = new CustomerDataService();
DataService.Credentials = new NetworkCredential(myUserName, mySecurePassword, myDomainName);

// Create BatchGeocodeSpecification
BatchGeocodeSpecification uploadSpec = new BatchGeocodeSpecification();
uploadSpec.JobName = "BatchGeocodeJob";
uploadSpec.MaximumGeocodingLevel = GeocodingLevel.Street;
uploadSpec.RejectAmbiguousGeocodes = true;

// Start Batch Geocode
string jobID = DataService.StartBatchGeocode(uploadSpec);

// Upload data
FileStream localUploadStream = new FileStream(@"c:\uploadfile.xml", FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader localUploadReader = new BinaryReader(localUploadStream);
long filesize = localUploadStream.Length;
long bytesPreviouslyUploaded = 0;
while (bytesPreviouslyUploaded < filesize)
{
       byte[] localBuffer = localUploadReader.ReadBytes(2000);
       bytesPreviouslyUploaded = DataService.UploadData(jobID, localBuffer, bytesPreviouslyUploaded);
}

DataService.FinishUpload(jobID, filesize);

// Wait for job to complete
JobState jobState = DataService.GetJobState(jobID);
while (jobState == JobState.Pending || jobState == JobState.InProcess)
{
       Thread.Sleep(10000);
       jobState = DataService.GetJobState(jobID);
}

// download the results
if (jobState == JobState.CompletedSuccess)
{
       string downloadURL = DataService.GetDownloadFileURL(jobID);
       System.Net.WebClient downloadClient = new WebClient();
       downloadClient.Credentials = new NetworkCredential(myUserName, mySecurePassword, myDomainName)
       downloadClient.DownloadFile(downloadURL, @"c:\results.zip");
}