我正在开发Android设备的应用程序.主要功能是在地图上绘制折线,以显示每条街道上城市的交通量.不幸的是,当我绘制3K折线时 - 根据屏幕尺寸和缩放级别减少数量 - 我的地图变得非常慢......我没有提到绘制所有线条的时间.
也许你知道在地图上标记街道或画线的更有效方法吗?
我也在考虑切换到OSM,但我从未使用它,我不知道它的效率如何.
我调试三星Galaxy Note 10.1上的应用程序,App使用Map API v2
我绘制折线的代码:
Polyline line;
List<Float> coordinatesStart;
List<Float> coordinatesEnd;
LatLng start;
LatLng end;
List<List<Float>> coordinates;
int polylinesNumber = 0;
for(Features ftr : features){
coordinates = ftr.geometry.coordinates;
for(int i = 0; i<coordinates.size()-1; i++){
coordinatesStart = coordinates.get(i);
coordinatesEnd = coordinates.get(i+1);
start = new LatLng(coordinatesStart.get(1), coordinatesStart.get(0));
end = new LatLng(coordinatesEnd.get(1), coordinatesEnd.get(0));
line = map.addPolyline(new PolylineOptions()
.add(start, end)
.width(3)
.color(0x7F0000FF)); //semi-transparent blue
polylinesNumber++;
}
}
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助!
我正在为基于套接字接口的Raspberry PI开发应用程序.主要的想法是Raspberry将连接到传感器,收集数据并通过WiFi将其发送到Android设备.从Android我可以与传感器发送一些命令进行通信.我是这种开发的初学者,并且关于QTcpSocket的一些教程我已经创建了一个简单的客户端 - 服务器应用程序,但它只是在一个方向.服务器侦听客户端发送的内容.你能帮助我把它改进为双向沟通吗?我已经读过QTcpSocket不需要线程来解决这类问题,但我找不到任何解决方案.
我将不胜感激任何帮助!
server.cpp:
#include "server.h"
#include <QTcpServer>
#include <QTcpSocket>
#include <cstdio>
#include <QtDebug>
Server::Server(QObject *parent) :
QObject(parent)
{
server = new QTcpServer(this);
connect(server, SIGNAL(newConnection()),
this, SLOT(on_newConnection()));
}
void Server::listen()
{
server->listen(QHostAddress::Any, 5100);
}
void Server::on_newConnection()
{
socket = server->nextPendingConnection();
if(socket->state() == QTcpSocket::ConnectedState)
{
printf("New connection established.\n");
qDebug()<<socket->peerAddress();
}
connect(socket, SIGNAL(disconnected()),
this, SLOT(on_disconnected()));
connect(socket, SIGNAL(readyRead()),
this, SLOT(on_readyRead()));
}
void Server::on_readyRead()
{
while(socket->canReadLine())
{
QByteArray ba = socket->readLine();
if(strcmp(ba.constData(), "!exit\n") == 0)
{
socket->disconnectFromHost();
break;
}
printf(">> %s", ba.constData()); …Run Code Online (Sandbox Code Playgroud)