Проблема с extent??

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
ASHA
Новоприбывший
Сообщения: 2
Зарегистрирован: 06 июл 2008, 13:03
Репутация: 0

Проблема с extent??

Сообщение ASHA »

Всем доброго времени суток,
Вобщем у меня вот такая вот проблема существует на писанный на php веб интерфейс отображения векторных карт при помощи php/mapscript

если пользователь производит масштабирование векторной карты (то мы получаем новый экстент который выходит из функции
$extent_to_html = $map->extent->minx." ".$map->extent->miny." ".$map->extent->maxx." ".$map->extent->maxy;), затем если пользователь хочет просмотреть карту с данным extent 'ом но уже перезагрузив ее добавив какой нибудь слой то данная карта смещаеться относительно того как она была до этого, хотя extent я устанавливаю тотже $extent_to_html, что получил раньше и уже если воспользовать функцией
$extent_to_html = $map->extent->minx." ".$map->extent->miny." ".$map->extent->maxx." ".$map->extent->maxy;
то мы получим уже другой экстент как такое возможно ?

тут приведен сам код масштабирования

Код: Выделить всё

        if ((($HTTP_POST_VARS["mapa_x"] != "") && ($HTTP_POST_VARS["mapa_y"]) != "") or($_POST['mapa_x'] != ""))
              {
                  $extent_to_set = explode(" ",$HTTP_POST_VARS["extent"]); // здесь передаем тот extent который у нас получился при масштабировании в предыдущий раз

                  $my_point = ms_newpointObj();

                  $my_point->setXY($HTTP_POST_VARS["mapa_x"],$HTTP_POST_VARS["mapa_y"]);

                  $my_extent = ms_newrectObj();
                  $my_extent->setextent($extent_to_set[0],$extent_to_set[1],$extent_to_set[2],$extent_to_set[3]); // устанавливаем предыдущий extent

                  $zoom_factor = $HTTP_POST_VARS["zoom"]*$HTTP_POST_VARS["zsize"];

                  if ($zoom_factor == 0)
                      {
                          $zoom_factor = 1;
                          $check_pan = "CHECKED";
                          echo "<br>######## check_pan ##########<br>";
                          $check_zout = "";
                          $check_zin = "";
                      }
                  else if ($zoom_factor < 0)
                      {
                          $check_pan = "";
                          $check_zout = "CHECKED";
                          echo "<br>######## check_zout ##########<br>";
                          $check_zin = "";
                      }
                  else
                      {
                          $check_pan = "";
                          $check_zout = "";
                          $check_zin = "CHECKED";
                          echo "<br>######## check_zin ##########<br>";
                      }

                  $val_zsize = abs($zoom_factor);
                  $map->zoompoint($zoom_factor,$my_point,$map->width,$map->height,$my_extent); // масштабируем 

                  $extent_to_html = $map->extent->minx." ".$map->extent->miny." ".$map->extent->maxx." ".$map->extent->maxy;// ВОТ КАК РАЗ ЭТОТ ПАРАМЕТР БУДЕТ ОТЛИЧАТЬСЯ ОТ ПЕРВОНАЧАЛЬНОГО EXTENT на несколько чисел что приведет к здвигу в следующий раз
              }
как сделать так чтобы после масштабирования и следующей перезагрузки карты с полученным экстеном и новым слоем не происходил сдвиг карты т.е. сдвиг extent
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя