Надеюсь я правильно выбрал форум..:-)
С помощью специальных команд собираю данные о видимых базовых станциях и отправляю запрос на сервер:
xml=<ya_lbs_request>
<common>
<version>1.0</version>
<api_key>ABZs_k8BAAAAwuKi
IgMDFIOBkHmKur7FLvxs-j3k9 gp1r7UAAAAAAAAAAADUbWq0RM czbcY3Qye-ItK7Im5r9A==</a pi_key> </common>
<gsm_cells>
<cell>
<countrycode>250</countrycode>
<operatorid>99</operatorid>
<cellid>8d63</cellid>
<lac>6d32</lac>
<signal_strength>-106</signal_strength>
<age>1000</age>
</cell>
<cell>
<countrycode>250</countrycode>
<operatorid>99</operatorid>
<cellid>399b</cellid>
<lac>6d32</lac>
<signal_strength>-97</signal_strength>
<age>1000</age>
</cell>
<cell>
<countrycode>250</countrycode>
<operatorid>99</operatorid>
<cellid>3997</cellid>
<lac>6d32</lac>
<signal_strength>-107</signal_strength>
<age>1000</age>
</cell>
</gsm_cells>
</ya_lbs_request>
В ответ получаю
<?xml version="1.0" encoding="UTF-8"?>
<ya_lbs_response>
<position>
<latitude>55.7487144</latitude>
<longitude>37.5881462</longitude>
<altitude>0.0</altitude>
<precision>100000</precision>
<altitude_precision>30.0</altitude_precision>
<type>ip</type>
</position>
</ya_lbs_response>
Я уже счастлив, что контакт наладился, НО!
Показывает точность 100000 и забрасывает на 30км от моего реального положения.
Как видно из ответа сервера параметр precision 100000, на что яндекс в инструкции говорит следующее:
В некоторых случаях Яндекс.Локатор сообщает о точности 100000 метров, которая означает, что до-
стоверно определить местоположение не удалось. Это происходит, если местоположение определяется
не по IP-адресу мобильного устройства, а по IP-адресу какого-либо публичного сервера или прокси-
сервера.
Но я ему даю нормальные координаты вышек, а не IP.Не может же быть, что в базе нет данных о моем месте, я ведь не на чукотке! В чем может быть дело, что не так?
Кстати, локатор может брать IP с которого произошло соединение для определения положения? - похоже так оно и есть, но ПОЧЕМУ?
Момент не понятный: мне модем выдает те же cellid в специфическом коде, похожем на hex (например 399b) и вообще число ли это, или просто текстовая строка?.. а в инструкции на яндекс локатор нет конкретизации в каком формате должно быть число. Хотя не попадаются шестнадцатричные, может в этом и беда.