Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Googlemap, сервис Google map 
:(
    Опции темы
Brodyaga
Дата 10.12.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: 2
Всего: 2



Может проблема с ключом для гугла?? я ставлю там просто строку "Key_Api" потому как не знаю где получить ключ для использования на мобилах... он для сайтов регистрируется ведь... :(
PM MAIL   Вверх
Brodyaga
Дата 15.12.2008, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: 2
Всего: 2



Может быть я не правильно получаю изображения гугла из потока? Делаю это так:
Код

//Функция читает из потока определённое количество байт в массив пока не прочитает нужное количество
public int readCorrectObstinate(byte[] b,int off,int len) throws IOException
{
    //Если массив byte равен null или его длина меньше или равна 0, то возвращаем -1
    if(b==null || b.length<=0)
        return -1;
        
    //Количество прочитанных байт
    int readBytes = 0;
        
    do
    {
      //Скачиваем нужное количество байт в массив b
      readBytes=this.read(b, off, len);
         
      //Увеличиваем стартовую позицию на количество полученных байт
     off+=readBytes;
         
     //Уменьшаем количество байт которое нужно получить на количество полученных байт
     len-=readBytes;
    }
    while(len>0);
        
    //Возвращаем количество скаченных байт
    return readBytes;
}


Этот метод используется для получения байт изображения с гугла, вот здесь:
Код

    httpConnection=(HttpConnection)Connector.open(url);
            
    httpConnection.setRequestMethod(HttpConnection.GET);
        
    int ch;

    TurboDataInputStream turboDataInputStream=new TurboDataInputStream(httpConnection.openInputStream(),observer);
            
    int lenData=(int)httpConnection.getLength();
            
    if(lenData>0)
    {
        byteBuffer=new byte[lenData];
                
        turboDataInputStream.readCorrectObstinate(byteBuffer, 0, lenData);
    }
    else
    {
        ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
                
        while((ch=inputStream.read())!=-1)
        {
            byteArrayOutputStream.write(ch);
        }
                
        byteBuffer=byteArrayOutputStream.toByteArray();
                
        byteArrayOutputStream.close();
    }


В чём я промахнулся?

Это сообщение отредактировал(а) Brodyaga - 15.12.2008, 09:10
PM MAIL   Вверх
Окунь
Дата 18.12.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Да, нужен ключ. В статик апи он проверяется. На сколько мне известно, подойдет ключ, зарегистрированный для "большого" гугл мэп апи (для сайта).
Пробовал урл (httpConnection=(HttpConnection)Connector.open(URL);) открывать в браузере?
Вполне возможно, что ошибка где-то в другом месте.
PM MAIL   Вверх
Brodyaga
Дата 18.12.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: 2
Всего: 2



Цитата

Да, нужен ключ. В статик апи он проверяется. На сколько мне известно, подойдет ключ, зарегистрированный для "большого" гугл мэп апи (для сайта).
Пробовал урл (httpConnection=(HttpConnection)Connector.open(URL);) открывать в браузере?
Вполне возможно, что ошибка где-то в другом месте.


Вот именно, что пробовал! и на эмулятора всё без сбоев работает! А на реальном телефоне сбои постоянно, несколько изображений покажет и всё... далее на отрез отказывается, или может даже второе изображение не показать.. мне кажется ошибка всё-таки в получении в методе readCorrectObstinate, так как байты тех изображений, которые программа отобразить не может, он получает с гугла, а вот запаковать в изображение их не может...

Это сообщение отредактировал(а) Brodyaga - 18.12.2008, 13:30
PM MAIL   Вверх
magdelphi
Дата 18.12.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 5.3.2007
Где: г. Иваново

Репутация: 2
Всего: 2



Выкладываю ещё раз.
Работает без ключей, вся обработка внутри, необходимо добовить zoom.
Пройденые участки сохраняет.


Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  Google_map.zip 121,34 Kb
PM MAIL WWW   Вверх
Окунь
Дата 19.12.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Brodyaga, может потоки не закрываешь? Например, turboDataInputStream.
PM MAIL   Вверх
F1DEvELoP
Дата 27.3.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.3.2009

Репутация: нет
Всего: нет



Понятно, все работает, зум потом как нить придумаю
а как быть с этим
тут
Код

Image map = gMap.retrieveStaticImage(320, 240, 51.510605, -0.130728, 8, "png32");

я map добавляю на форму, и вижу картинку\

а как быть тут?
Код

double[] lanLng = gMap.geocodeAddress("Leicester Square, London");

просто апендом нельзя добавлять на форму...как быть?

PS у мну есть координаты с привязкой ко всем городам и так далее...мегабайт на 400 БД, но лучше, если вводишь название города латиницей..
БД то не хило весит, что на сервак цеплять....


И еще
Цитата

320, 240, 51.510605, -0.130728, 8, "png32"


(ширина, высота, широта, долгота, масштабирование, формат картинки)

масштабирование, можно установить 0 (самый крупный), только кому нужен глобус???? с материками.
Оптимально - 8
Максимальное увеличение (ставил 17) - показывает 
Больше 17 - пустая картинка (((
Формат картинки ставил png8 - для уменьшения трафика.

можно как опцию добавить счетчик трафика и оценкой стоимости потраченного по тарифам оператора.

----------------------------
Господа, разобрался и со вторым методом

Код

Form mapp = new Form("");
        GoogleMaps gMap = new GoogleMaps("API_KEY");
        try {
            double[] lanLng = gMap.geocodeAddress("kiev");
            //map = gMap.retrieveStaticImage(132, 176, 51.510605, -0.130728, 17, "png8");
            map = gMap.retrieveStaticImage(132, 176, lanLng[0], lanLng[1], 10, "png8");
        } catch (Exception e) { }
       
        mapp.append(map);
        mydisplay.setCurrent(mapp);

Здесь зум=10, потому что нет уточнения, какая улица, а только город, если зум>10 то в ответе пустая картинка
Если уточним запрос, то выясним, что как то маловато данных. нет прорисовки детальной (((


Это сообщение отредактировал(а) F1DEvELoP - 27.3.2009, 16:36
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.