Subscribe a User to a Layer Group

To subscribe a User to a Layer Group you will need to call the SetUserLayerGroup method. This method is available to developers from the UserManager.asmx Web Service. 

Parameters

 

ClientId

mandatory

This is the id for the client that was returned by the CreateSessionKey method.

SessionKey

mandatory

This is the SessionKey for the client that was returned by the CreateSessionKey method.

UserId

mandatory

This is the unique user id for the user as stored in the My Alerts database.

LayerGroupId

mandatory

This is the unique id for the LayerGroup to which you wish to subscribe the user.

MapSourceId

mandatory

This is the unique id for the MapSource.

LocationId

mandatory

This is the unique id for the Location.

Name

Requirement

Description

Returns

Syntax
<SetUserLayerGroupResult>
	<Error>
		<Code>string</Code>
        <Description>string</Description>
    </Error>
    <Success>boolean</Success>
</SetUserLayerGroupResult>

 

Error- Code / Description

An error code and description if the call to the web service is unsuccessful and the Success if False.

1001 – Invalid Session key provided

Success

This will be either True or False. If False an error message will be provided in the Error result, if True the user will be subscribed to the layer group.

Code Examples

C#

Add a web reference to the usermanager.asmx webservice using the Visual Studio IDE.

Layer Groups and Map Sources can be listed by running the following SQL against the MyAlerts database.

SQL Example
select * from tbl_layergroupnames;
 
"layergroupid"|"layergroupname"|"updated"
"36d252ee-222f-4d84-8378-0cfdb62b04f1"|"Property Details"|t
"3b730333-de4c-40ca-b1b7-bfa980fae531"|"Elected Members"|t
"f4f242e3-4ef5-486b-948e-1decbc68feb6"|"Aerial Overview"|t
"e86f6e58-e3c4-4127-8268-991185e4e57d"|"Local Government"|t
"fff2bf67-526f-4e0a-acf7-79e5524e84be"|"Feeds"|t
"b23524bf-4255-42cb-bcf0-a691fcc27aa7"|"Members of Parliament"|t
"d09fbe4b-f590-45a5-8bff-8f326dd1a2aa"|"Transport"|t
"385112de-bd32-465a-9391-fc35c2a137d2"|"Parishes"|t
"4582862c-8a53-464d-832b-facaead9b524"|"Housing"|t
"15dbaa0d-ecf5-48b1-927d-a3a2344c648b"|"Education and Learning"|t
"e66ab4ae-f409-47ef-a446-7a5f509725f7"|"Transport"|t
"e0382cf2-1239-4032-a29a-5090ea7c0c40"|"Police.uk"|t
 
select * from tbl_mapsourcenames;
 
"mapsourceid"|"mapsourcename"|"updated"
"9209617d-a21b-4945-b45d-424a026417bd"|"My House"|t
"5fd4b2e2-1fb6-48cc-9087-7a406c6c7616"|"My Nearest"|t
 
select * from myalert.tbl_locations where locationname like '%HAMILTON PLACE%';
 
"userid"|"typeid"|"geography"|"distance"|"active"|"locationname"|"locationid"|"uniqueid"
7|1|"POINT( 485966.16261636 150149.77144220)"|500|1|"4,  HAMILTON PLACE, ALDERSHOT, HAMPSHIRE, GU11 3HT"|"3802a7ef-0afc-4127-aaf8-660e49444c01"|"354021"
1015|1|"POINT( 524753.69110043 155979.08202718)"|500|1|"6 HAMILTON PLACE, KINGSWOOD, TADWORTH, SURREY, KT20 6PU"|"39b040a1-78cf-4692-8a81-0606adf87f11"|"48936"
1948|1|"POINT( 485948.90450241 150145.90827126)"|500|1|"11,  HAMILTON PLACE, ALDERSHOT, HAMPSHIRE, GU11 3HT"|"558fc0e9-8866-4ac0-a744-4f2dbff5ca4e"|"68592"
2307|1|"POINT( 510588.77243534 170101.25986192)"|500|1|"17 HAMILTON PLACE, SUNBURY ON THAMES, SURREY, TW16 5BP"|"2b0be684-6c8d-42e0-a475-73e0755190f2"|"294415"
7911|1|"POINT( 485973.11673133 150133.43355484)"|500|1|"13,  HAMILTON PLACE, ALDERSHOT, HAMPSHIRE, GU11 3HT"|"e3d92406-0c13-476b-8e8a-c9acb02621c0"|"56561"
8240|1|"POINT( 510608.18250183 170096.93179925)"|500|1|"11,  HAMILTON PLACE, SUNBURY-ON-THAMES, SURREY, TW16 5BP"|"d3a4051c-6205-4e9f-af9b-1e3cd612e3b8"|"59964"
8268|1|"POINT( 485965.13936804 150143.30344919)"|500|1|"20,  HAMILTON PLACE, ALDERSHOT, HAMPSHIRE, GU11 3HT"|"37e29e22-474c-4ce6-865d-49d4ce352608"|"56552"
 

 

Add the code below to subscribe the user to a Layer Group

C# Example
UserManager.UserManager umws = new UserManager.UserManager();
// [Client Id] and [Session Key] are returned using the 'CreateSessionKey' method
// Possible layergroups to subscribe to can be derived using the GetLayers method
UserManager.DatabaseWriteResult result = 
	umws.SetUserLayerGroup(	[ClientId],
							"[SessionKey]",
							[UserId],
							"[LayerGroupGUID]",
							"[MapSourceGUID]",
							"[LocationGUID]");
return result.Success;

 

Using the data from the SQL Example above, a possible call would be:

 

C# Example
UserManager.UserManager umws = new UserManager.UserManager();
// [Client Id] and [Session Key] are returned using the 'CreateSessionKey' method
// Possible layergroups to subscribe to can be derived using the GetLayers method
UserManager.DatabaseWriteResult result = 
	umws.SetUserLayerGroup(	2, 
							"f3abb2f2-ce86-4971-b6ae-d72661191670",
							1,
							"4582862c-8a53-464d-832b-facaead9b524",
							"9209617d-a21b-4945-b45d-424a026417bd",
							"3802a7ef-0afc-4127-aaf8-660e49444c01");
return result.Success;

Thus subscribing userid = 1 to the "Housing" layer group in the "My House" map source at "4 Hamilton Place"

Python

Python Example
import suds
url = "http://[PATH TO WEBSERVICE]/usermanager.asmx?wsdl"
client = suds.client.Client(url)
result = client.service.SetUserLayerGroup(	[ClientId],
											"[SessionKey]",
											[UserId],
											"[LayerGroupGUID]",
											"[MapSourceGUID]",
											"[LocationGUID]")
if result.Success:
  print "Success"
else:
  print "Fail"