[Visual Basic 6.0]Public Function GetAGSAddressLocator(strServerName As String, strLocatorName As String) As esriGeoDatabase.ILocator
'+++ returns a locator retrieved from an ArcGIS Server
Dim pConnectionProperties As esriSystem.IPropertySet
Dim pAGSServerConnectionFactory As esriGISClient.IAGSServerConnectionFactory
Dim pAGSServerConnectionName As esriGISClient.IAGSServerConnectionName
Dim pLocatorManager As esriLocation.ILocatorManager2
Dim pLocatorWorkspace As esriGeoDatabase.ILocatorWorkspace
'+++ open an ArcGIS Server connection to the specified server machine
Set pConnectionProperties = New esriSystem.PropertySet
pConnectionProperties.SetProperty "machine", strServerName
Set pAGSServerConnectionFactory = New esriGISClient.AGSServerConnectionFactory
Set pAGSServerConnectionName = pAGSServerConnectionFactory.Open(pConnectionProperties, 0).FullName
'+++ retrieve a LocatorWorkspace from the ArcGIS Server connection
Set pLocatorManager = New esriLocation.LocatorManager
Set pLocatorWorkspace = pLocatorManager.GetAGSLocatorWorkspace(pAGSServerConnectionName)
'+++ return the locator with the specified name
Set GetAGSAddressLocator = pLocatorWorkspace.GetLocator(strLocatorName)
End Function
[Visual Basic .NET]Sub AGSAddressLocator() ' Open an ArcGIS Server Connection Dim connectionProperties As IPropertySet = New PropertySet connectionProperties.SetProperty("machine", "AGSServer") Dim obj As System.Object = Activator.CreateInstance(Type.GetTypeFromProgID("esriGISClient.AGSServerConnectionFactory")) Dim agsServerConnectionFactory As IAGSServerConnectionFactory = obj Dim agsServerConnection As IAGSServerConnection = agsServerConnectionFactory.Open(connectionProperties, 0) ' Open the Locator Workspace obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriLocation.LocatorManager")) Dim locatorManager As ILocatorManager2 = obj Dim agsLocatorWorkspace As ILocatorWorkspace = locatorManager.GetAGSLocatorWorkspace(agsServerConnection.FullName) Dim locator As ILocator = agsLocatorWorkspace.GetLocator("Geocode/UnitedStates") End Sub
[C#]public void AGSAddressLocator() { IPropertySet connectionProperties = new PropertySetClass(); connectionProperties.SetProperty("machine", "AGSServer"); // Open a workspace with an ArcGIS Server connection System.Object obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriGISClient.AGSServerConnectionFactory")); IAGSServerConnectionFactory AGSServerConnectionFactory = obj as AGSServerConnectionFactory; IAGSServerConnection AGSServerConnection = AGSServerConnectionFactory.Open(connectionProperties, 0); // Get the locator workspace from the open workspace obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriLocation.LocatorManager")); ILocatorManager2 locatorManager = obj as ILocatorManager2; IAGSServerConnectionName agsServerConnectionName = AGSServerConnection.FullName as IAGSServerConnectionName; ILocatorWorkspace locatorWorkspace = locatorManager.GetAGSLocatorWorkspace(agsServerConnectionName); ILocator agsLocator = locatorWorkspace.GetLocator("Geocode/UnitedStates"); }