Проблема с extent??
Добавлено: 23 сен 2008, 15:31
Всем доброго времени суток,
Вобщем у меня вот такая вот проблема существует на писанный на 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;
то мы получим уже другой экстент как такое возможно ?
тут приведен сам код масштабирования
как сделать так чтобы после масштабирования и следующей перезагрузки карты с полученным экстеном и новым слоем не происходил сдвиг карты т.е. сдвиг extent
Вобщем у меня вот такая вот проблема существует на писанный на 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 на несколько чисел что приведет к здвигу в следующий раз
}