Geo.WM.Locator
Данный интерфейс позволяет производить географическую привязку любых ресурсов (офисов и представительств компании, объектов складской или агентской сети и др.), т.е. всего, что может быть впоследствии отображено на карте. Главная задача интерфейса - предоставление доступа к единой для системы WebMoney Transfer базе геоданных, при использовании которой возможно отображение "географически привязанных" объектов средствами WebMoney GeoService без дополнительной обработки.
Для использования интерфейса необходимо создать и разместить на своем сайте 3 страницы:
- Страницу подготовки запроса. На данной странице необходимо создать HTML форму или гиперссылки для вызова интерфейса с указанием всех необходимых параметров. Все параметры запроса методом GET.
- Страницу обработки результатов запроса. Данная страница будет автоматически вызываться сервисом при выборе географического местопожения текущего объекта. Все параметры выбранного населенного пункта передаются на страницу обработки результатов запроса методом GET.
- Страницу выхода без сохранения результатов запроса. Данная страница будет автоматически вызываться сервисом при прерывании оператором процедуры географической привязки. Передачи параметров в данном случае не происходит.
URL для передачи запроса: |
https://geo.webmoney.ru/find/GeoSearchPage.aspx |
Метод: |
GET |
Параметры запроса:
UserId |
Обязательный параметр. Уникальный номер, выдаваемый администратором сервиса при регистрации пользователя, использующего интерфейс. |
Obid |
Уникальный номер объекта текущего объекта. Задается пользователем при использовании интерфейса для привязки существующих объектов. Этот параметр возвращается |
Metro |
В том случае, если при поиске населенного пункта необходимо уточнить и ближайшие станции метро (максимум 2) , значение Metro должно быть равно 1 (Metro=1). Список станций метро доступен только для Москвы и Санкт-Петербурга. По умолчанию установлено Metro=0 |
Name |
Название населенного пункта. Значение параметра Name записывается в спец. поле для поиска. |
TargetName
|
Дополнительная информация, например Страна/Регион, адрес или другая информация
|
CanSelect |
Принимает параметры 0 или 1, например CanSelect=1. По умолчанию CanSelect=0. При
значении CanSelect=1, пользователю позволяется выбирать не только города, но и регионы
и страны. При CanSelect=0 завершение диалога выбора и возвращение в исходную форму
без выбора города невозможно. |
Addr
|
Адрес объекта. Если передан адрес и выставлено значение Metro=1, при наличии метрополитена в выбранном городе, в
списках выбора станций метро будут выставлены ближайшие две станции метро.
|
Примечание. Все параметры, кроме указанных выше, которые переданы в форму
выбора географического расположения будут возвращены без каких либо изменений.
Параметры ответа (все параметры передаются методом GET):
ObID |
Уникальный номер объекта текущего объекта. Задается пользователем при подготовке запроса. |
CitID |
Уникальный по базе геоданных номер (ID) выбранного города |
City |
Название выбранного города (русский язык) |
CityEn |
Название выбранного города (английский язык) |
Region |
Название региона (русский язык) |
RegionEn |
Название региона (английский язык) |
Country |
Название страны (русский язык) |
CountryEn |
Название страны (английский язык) |
mID1 |
Уникальный по базе геоданных номер (ID) первой ближайшей станции метро |
mID2 |
Уникальный по базе геоданных номер (ID) второй ближайшей станции метро |
Metroname1 |
Название первой ближайшей станции метро (русский язык) |
Metroname1En |
Название первой ближайшей станции метро (английский язык) |
Metroname2 |
Название второй ближайшей станции метро (русский язык) |
Metroname2En |
Название второй ближайшей станции метро (английский язык) |
RegionID
|
Идентификатор выбранного региона
|
CountryID
|
Идентификатор выбранной страны
|
Страницa подготовки запроса
<html>
<head>
<title>Страница подготовки запроса. Вариант с использованием HTML формы</title>
</head>
<body>
<form action="https://geo.webmoney.ru/find/GeoSearchPage.aspx" method="get">
<input type="hidden" name="UserID" value="99357E9B-8114-4E04-8949-6BED871EC4A8">
<input type="hidden" name="Obid" value="11">
<input type="hidden" name="Metro" value="1">
<input type="submit" value="Привязать">
</form>
</body>
</html>
Страница обработки результатов запроса (TestPage.aspx.cs)
public partial class TestPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*
* Доступные через Request.QueryString параметры
*
* ObID Уникальный номер объекта текущего объекта. Задается пользователем при
* подготовке запроса.
* CitID Уникальный по базе геоданных номер (ID) выбранного города
* City Название выбранного города (русский язык)
* CityEn Название выбранного города (английский язык)
* RegionID Идентификатор региона
* Region Название региона (русский язык)
* RegionEn Название региона (английский язык)
* CountryID Идентификатор страны
* Country Название страны (русский язык)
* CountryEn Название страны (английский язык)
* mID1 Уникальный по базе геоданных номер (ID) первой ближайшей станции метро
* mID2 Уникальный по базе геоданных номер (ID) второй ближайшей станции метро
* Metroname1 Название первой ближайшей станции метро (русский язык)
* Metroname1En Название первой ближайшей станции метро (английский язык)
* Metroname2 Название второй ближайшей станции метро (русский язык)
* Metroname2En Название второй ближайшей станции метро (английский язык)
*/
int objectId = -1;
int cityId = -1;
int tempValue;
if(!string.IsNullOrEmpty(Request.QueryString["ObID"]) &&
!string.IsNullOrEmpty(Request.QueryString["CitID"]))
{
if (int.TryParse(Request.QueryString["ObID"], out tempValue))
{
objectId = tempValue;
//Уникальный номер объекта.
}
if (int.TryParse(Request.QueryString["CitID"], out tempValue))
{
cityId = tempValue;
//Уникальный по базе геоданных номер (ID) выбранного города
}
if(objectId > 0 && cityId > 0)
{
//достаем из базы нужный нам объект
GeoWMObject geoObject = DataLevel.Get("GeoWMObject", objectId);
if(geoObject != null)
{
geoObject.CityId = cityId; //Устанавливаем город для объекта
DataLevel.Save(geoObject);//Сохраняем в базе
}
}
}
}
}
Страница выхода без сохранения результатов запроса
<html>
<head>
<title>Страница выхода без сохранения результатов запроса.</title>
</head>
<body>
Операция географической привязки прервана!
</body>
</html>
Geo.WM.GeoService
Веб-сервис Geo.WM.GeoService позволяет:
- получать списки стран, регионов и городов из базы данных Geo.WebMoney.Ru
- выполнять поиск по названию населенного пункта
- типизировать адрес для дальнейшего получения географических координат
- определять географические координаты по адресу
- определять ближайщие две станции метро по координатам
- определять ближайщие две станции метро по адресу
Для использования сервиса необходимо пройти процедуру регистрации.
После регистриации вы плучите GUID (уникальный идентификатор пользователя)
и пароль. Каждый метод веб-сервиса принимает
два дополнительных параметра GUID и пароль, для авторизации и введения логов.
- AddressGeoCoding
Гео-кодирует адрес, предварительно обработав методом ParseAddress. Возвращает географические координаты. Эквивалент GeoCoding, желательно использовать AddressGeoCoding, если адрес не структурирован.
подробнее
- GeoCoding
Гео-кодирует заданный адрес, возвращает объект GeoWMObject
подробнее
- GetCityList
Возвращает список городов и населенных пунктов. Задается идентификатор региона.
подробнее
- GetCountryList
Возвращает список стран
подробнее
- GetNearestMetro
Возвращает список станций метро, отсортированный по удаленности от заданных координат. Задаются гео-координаты.
подробнее
- GetNearestMetro2
Возвращает список станций метро, отсортированный по удаленности от адреса. Задаются идентификатор города и адрес.
подробнее
- GetRegionList
Возвращает список регионов. Задается идентификатор страны.
подробнее
- ParseAddress
Очищает адрес, возвращает соответствующий структурированный адрес из классификатора адресов КЛАДР. При неудачном парсинге возвращает строку NOT_FOUND
подробнее
- SearchCity
Поиск города или населенного пункта в заданном регионе и стране. Если не задавать идентификатор региона (указать -1),
ищет по всей стране, соответственно, если не задан идентификатор страны (указать -1), ищет по всей базе
подробнее