mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
OP37/GCS MapLib Added offline map creator
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1198 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
fa12f2c0b5
commit
03800c418a
@ -36,7 +36,7 @@ namespace core {
|
||||
m_pInstance=new OPMaps;
|
||||
return m_pInstance;
|
||||
}
|
||||
OPMaps::OPMaps():MaxZoom(19),RetryLoadTile(2),useMemoryCache(true)
|
||||
OPMaps::OPMaps():RetryLoadTile(2),useMemoryCache(true)
|
||||
{
|
||||
accessmode=AccessMode::ServerAndCache;
|
||||
Language=LanguageType::PortuguesePortugal;
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "pureimagecache.h"
|
||||
#include "alllayersoftype.h"
|
||||
#include "urlfactory.h"
|
||||
|
||||
//#include "point.h"
|
||||
|
||||
|
||||
@ -66,7 +67,6 @@ namespace core {
|
||||
LanguageType::Types GetLanguage(){return Language;}//TODO
|
||||
AccessMode::Types GetAccessMode()const{return accessmode;}
|
||||
void setAccessMode(const AccessMode::Types& mode){accessmode=mode;}
|
||||
int MaxZoom;
|
||||
int RetryLoadTile;
|
||||
private:
|
||||
bool useMemoryCache;
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "pureimagecache.h"
|
||||
#include <QDateTime>
|
||||
|
||||
//#define DEBUG_PUREIMAGECACHE
|
||||
namespace core {
|
||||
qlonglong PureImageCache::ConnCounter=0;
|
||||
|
||||
@ -49,7 +50,7 @@ QString PureImageCache::GtileCache()
|
||||
bool PureImageCache::CreateEmptyDB(const QString &file)
|
||||
{
|
||||
#ifdef DEBUG_PUREIMAGECACHE
|
||||
qDebug()<<"Create database at:"<<file;
|
||||
qDebug()<<"Create database at!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:"<<file;
|
||||
#endif //DEBUG_PUREIMAGECACHE
|
||||
QFileInfo File(file);
|
||||
QDir dir=File.absoluteDir();
|
||||
@ -156,6 +157,9 @@ bool PureImageCache::PutImageToCache(const QByteArray &tile, const MapType::Type
|
||||
bool ret=true;
|
||||
QDir d;
|
||||
QString dir=gtilecache;
|
||||
Mcounter.lock();
|
||||
qlonglong id=++ConnCounter;
|
||||
Mcounter.unlock();
|
||||
#ifdef DEBUG_PUREIMAGECACHE
|
||||
qDebug()<<"PutImageToCache Cache dir="<<dir;
|
||||
qDebug()<<"PutImageToCache Cache dir="<<dir<<" Try to PUT:"<<pos.ToString();
|
||||
@ -179,9 +183,7 @@ bool PureImageCache::PutImageToCache(const QByteArray &tile, const MapType::Type
|
||||
if(ret)
|
||||
{
|
||||
QSqlDatabase cn;
|
||||
Mcounter.lock();
|
||||
qlonglong id=++ConnCounter;
|
||||
Mcounter.unlock();
|
||||
|
||||
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
|
||||
|
||||
cn.setDatabaseName(db);
|
||||
@ -205,7 +207,7 @@ bool PureImageCache::PutImageToCache(const QByteArray &tile, const MapType::Type
|
||||
query.exec();
|
||||
}
|
||||
cn.close();
|
||||
QSqlDatabase::removeDatabase(QString::number(id));
|
||||
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
@ -217,6 +219,7 @@ bool PureImageCache::PutImageToCache(const QByteArray &tile, const MapType::Type
|
||||
return false;
|
||||
}
|
||||
}
|
||||
QSqlDatabase::removeDatabase(QString::number(id));
|
||||
return true;
|
||||
}
|
||||
QByteArray PureImageCache::GetImageFromCache(MapType::Types type, Point pos, int zoom)
|
||||
@ -224,8 +227,11 @@ QByteArray PureImageCache::GetImageFromCache(MapType::Types type, Point pos, int
|
||||
bool ret=true;
|
||||
QByteArray ar;
|
||||
QString dir=gtilecache;
|
||||
Mcounter.lock();
|
||||
qlonglong id=++ConnCounter;
|
||||
Mcounter.unlock();
|
||||
#ifdef DEBUG_PUREIMAGECACHE
|
||||
qDebug()<<"Cache dir="<<dir<<" Try to GET:"<<pos.X()+","+pos.Y();
|
||||
// qDebug()<<"Cache dir="<<dir<<" Try to GET:"<<pos.X()+","+pos.Y();
|
||||
#endif //DEBUG_PUREIMAGECACHE
|
||||
|
||||
{
|
||||
@ -234,9 +240,7 @@ QByteArray PureImageCache::GetImageFromCache(MapType::Types type, Point pos, int
|
||||
if(ret)
|
||||
{
|
||||
QSqlDatabase cn;
|
||||
Mcounter.lock();
|
||||
qlonglong id=++ConnCounter;
|
||||
Mcounter.unlock();
|
||||
|
||||
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
|
||||
cn.setDatabaseName(db);
|
||||
if(cn.open())
|
||||
@ -254,9 +258,11 @@ QByteArray PureImageCache::GetImageFromCache(MapType::Types type, Point pos, int
|
||||
|
||||
cn.close();
|
||||
}
|
||||
QSqlDatabase::removeDatabase(QString::number(id));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
QSqlDatabase::removeDatabase(QString::number(id));
|
||||
return ar;
|
||||
}
|
||||
void PureImageCache::deleteOlderTiles(int const& days)
|
||||
@ -264,9 +270,6 @@ void PureImageCache::deleteOlderTiles(int const& days)
|
||||
QList<long> add;
|
||||
bool ret=true;
|
||||
QString dir=gtilecache;
|
||||
#ifdef DEBUG_PUREIMAGECACHE
|
||||
qDebug()<<"Cache dir="<<dir<<" Try to GET:"<<pos.X()+","+pos.Y();
|
||||
#endif //DEBUG_PUREIMAGECACHE
|
||||
|
||||
{
|
||||
QString db=dir+"Data.qmdb";
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "tilecachequeue.h"
|
||||
|
||||
|
||||
|
||||
//#define DEBUG_TILECACHEQUEUE
|
||||
|
||||
namespace core {
|
||||
TileCacheQueue::TileCacheQueue()
|
||||
@ -42,12 +42,12 @@ TileCacheQueue::~TileCacheQueue()
|
||||
void TileCacheQueue::EnqueueCacheTask(CacheItemQueue *task)
|
||||
{
|
||||
#ifdef DEBUG_TILECACHEQUEUE
|
||||
qDebug()<<"DB Do I EnqueueCacheTask"<<task.GetPosition().X()<<","<<task.GetPosition().Y();
|
||||
qDebug()<<"DB Do I EnqueueCacheTask"<<task->GetPosition().X()<<","<<task->GetPosition().Y();
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
if(!tileCacheQueue.contains(task))
|
||||
{
|
||||
#ifdef DEBUG_TILECACHEQUEUE
|
||||
qDebug()<<"EnqueueCacheTask"<<task.GetPosition().X()<<","<<task.GetPosition().Y();
|
||||
qDebug()<<"EnqueueCacheTask"<<task->GetPosition().X()<<","<<task->GetPosition().Y();
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
mutex.lock();
|
||||
tileCacheQueue.enqueue(task);
|
||||
@ -57,14 +57,17 @@ void TileCacheQueue::EnqueueCacheTask(CacheItemQueue *task)
|
||||
#ifdef DEBUG_TILECACHEQUEUE
|
||||
qDebug()<<"Wake Thread";
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
waitc.wakeOne();
|
||||
this->start(QThread::NormalPriority);
|
||||
//waitmutex.lock();
|
||||
waitc.wakeAll();
|
||||
//waitmutex.unlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG_TILECACHEQUEUE
|
||||
qDebug()<<"Start Thread";
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
this->start(QThread::LowestPriority);
|
||||
this->start(QThread::NormalPriority);
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,21 +92,30 @@ void TileCacheQueue::run()
|
||||
qDebug()<<"Cache engine Put:"<<task->GetPosition().X()<<","<<task->GetPosition().Y();
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
Cache::Instance()->ImageCache.PutImageToCache(task->GetImg(),task->GetMapType(),task->GetPosition(),task->GetZoom());
|
||||
QThread::usleep(44);
|
||||
usleep(44);
|
||||
delete task;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
qDebug()<<"Cache engine BEGIN WAIT";
|
||||
waitmutex.lock();
|
||||
if(!waitc.wait(&waitmutex,4444))
|
||||
|
||||
int tout=4000;
|
||||
if(!waitc.wait(&waitmutex,tout))
|
||||
{
|
||||
waitmutex.unlock();
|
||||
#ifdef DEBUG_TILECACHEQUEUE
|
||||
qDebug()<<"Cache Engine TimeOut";
|
||||
#endif //DEBUG_TILECACHEQUEUE
|
||||
if(tileCacheQueue.count()==0) break;
|
||||
mutex.lock();
|
||||
if(tileCacheQueue.count()==0)
|
||||
{
|
||||
mutex.unlock();
|
||||
break;
|
||||
}
|
||||
mutex.unlock();
|
||||
}
|
||||
qDebug()<<"Cache Engine DID NOT TimeOut";
|
||||
waitmutex.unlock();
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ UrlFactory::UrlFactory()
|
||||
/// </summary>
|
||||
UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7";
|
||||
|
||||
Timeout = 30 * 1000;
|
||||
Timeout = 5 * 1000;
|
||||
CorrectGoogleVersions=true;
|
||||
isCorrectedGoogleVersions = false;
|
||||
UseGeocoderCache=true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user