Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 18:07   #1
krok
Клонирую людей
Пользователь
 
Аватар для krok
 
Регистрация: 22.02.2008
Сообщений: 22
Восклицание работа с google maps

Всем привет, сталкнулся с следующей задачей:
нужно получить угловые (верхний левый\правый... углы) координаты у google карты. Достаю вот так:

PHP код:
class googleRun
{
    private 
$LevelSize = array();

    public 
$width 500;
    public 
$height 300;

    public 
$coord4point = array();

    function 
__construct()
    {
        
$k 256;
        for(
$i 0$i 20$i++)
        {
            
$this->LevelSize[$i] = $k;
            
$k *= 2;
        }
    }

    public function 
get4point($lat$lng$zoom)
    {
        
$zoom = ($zoom) ? $zoom 8;

        
$this->coord4point['TopLeft']['lat'] = $this->GoogleLatPixDiff($lat$zoom, -250);
        
$this->coord4point['TopLeft']['lng'] = $this->GoogleLonPixDiff($lng$zoom, -150);
/*
        $this->coord4point['TopRight']['lat'] = $this->GoogleLatPixDiff($lat, $zoom, 250);
        $this->coord4point['TopRight']['lng'] = $this->GoogleLonPixDiff($lng, $zoom, -150);

        $this->coord4point['BottomLeft']['lat'] = $this->GoogleLatPixDiff($lat, $zoom, -250);
        $this->coord4point['BottomLeft']['lng'] = $this->GoogleLonPixDiff($lng, $zoom, 150);

        $this->coord4point['BottomRight']['lat'] = $this->GoogleLatPixDiff($lat, $zoom, 250);
        $this->coord4point['BottomRight']['lng'] = $this->GoogleLonPixDiff($lng, $zoom, 150);
*/
    
}

    private function 
GoogleLon2BmpPix($Lon$Level)
    {
        return (
$this->LevelSize[$Level] / $Lon $this->LevelSize[$Level] / 360);
    }

    private function 
GoogleBmpPix2Lon($x$Level)
    {
        return (
$x $this->LevelSize[$Level] / 2) / ($this->LevelSize[$Level] / 360);
    }

    private function 
GoogleLat2BmpPix($Lat$Level)
    {
        
$k sin($Lat M_PI 180);
        return (
$this->LevelSize[$Level] / 0.5 log(($k) / ($k)) * $this->LevelSize[$Level] / (M_PI));
    }

    private function 
GoogleBmpPix2Lat($y$Level)
    {
        
$k = ($y $this->LevelSize[$Level] / 2) / - ($this->LevelSize[$Level] / (M_PI));
        return (
atan(exp($k)) - M_PI 2) * 180 M_PI;
    }

    protected function 
GoogleLonPixDiff($Lon$Level$Diff)
    {
        return 
$this->GoogleBmpPix2Lon($this->GoogleLon2BmpPix($Lon$Level) + $Diff$Level);
    }

    protected function 
GoogleLatPixDiff($Lat$Level$Diff)
    {
        return 
$this->GoogleBmpPix2Lat($this->GoogleLat2BmpPix($Lat$Level) + $Diff$Level);
    }

Но достается что-то не правельное, подскажите в чем может быть проблема, может быть уже есть решение этой задачи?

ЗЫ

Извиняйте, не в том разделе создал...
В мире нет Вечных Двигателей, зато полно Вечных Тормозов.

Последний раз редактировалось krok; 26.08.2010 в 18:13.
krok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Maps API RMEN JavaScript, Ajax 0 24.05.2010 16:40
кеш google maps bazanin Работа с сетью в Delphi 3 17.03.2010 17:27
Работа с сервисом Google Maps S.T.A.L.K.E.R. Общие вопросы C/C++ 1 16.03.2010 23:43
Трехмерные панарамы в google maps. Вадим Буренков Свободное общение 2 22.01.2010 18:51
Помогите написать скрипт для Google Maps Mineralog JavaScript, Ajax 0 12.09.2009 20:11