Как отправить вектор в php файл? - PullRequest
0 голосов
/ 19 марта 2011

Я пишу программу прорисовки маршрута человека с использованием начальных значений GPS этого человека.

Для этого я реализовал весь код locationListener и поместил все значения координат в вектор.Но проблема, с которой я столкнулся сейчас, заключается в том, что я хочу поместить их в mySQL и не знаю, как отправить вектор в файл Php.Можете ли вы помочь мне с этим?

Примечание. Я не хочу отправлять значения через URL, поэтому я хочу отправить весь вектор.

package project;

import java.util.Vector;

import javax.microedition.location.Location;
import javax.microedition.location.LocationException;
import javax.microedition.location.LocationListener;
import javax.microedition.location.LocationProvider;

import net.rim.device.api.gps.BlackBerryCriteria;
import net.rim.device.api.gps.BlackBerryLocationProvider;
import net.rim.device.api.gps.GPSInfo;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.container.MainScreen;

public class RoutePaint extends MainScreen implements LocationListener,
        FieldChangeListener {

    public double latitude;
    public double altitude;
    public double longitude;
    public float velocity;
    public Vector locations;

    private BlackBerryCriteria myCriteria;
    private BlackBerryLocationProvider myProvider;
    private Point point;

    private ButtonField locVector;


    public RoutePaint() {

        locations = new Vector();
        locVector = new ButtonField("Locations Vector",
                ButtonField.CONSUME_CLICK);
        locVector.setChangeListener(this);


        add(locVector);

        myCriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_AUTONOMOUS);
        try {
            myProvider = (BlackBerryLocationProvider) LocationProvider
                    .getInstance(myCriteria);

        } catch (LocationException e) {

            e.printStackTrace();
        }
        myProvider.setLocationListener(this, 3, -1, -1);

    }

    public void locationUpdated(LocationProvider provider, Location location) {
        // TODO Auto-generated method stub
        point = new Point();
        latitude = location.getQualifiedCoordinates().getLatitude();
        altitude = location.getQualifiedCoordinates().getAltitude();
        longitude = location.getQualifiedCoordinates().getLongitude();
        velocity = location.getSpeed();
        point.x = latitude;
        point.y = longitude;

        locations.addElement(point);

        invalidate();
    }

    public void providerStateChanged(LocationProvider arg0, int arg1) {
        // TODO Auto-generated method stub

    }

    public boolean onClose() {

        Dialog.inform("Exiting project!");
        System.exit(0);
        return true;
    }

    public void fieldChanged(Field field, int context) {

        if (field == locVector) {
            getUiEngine().pushScreen(new LocationsVector(locations));
        }
    }

}

Ответы [ 2 ]

0 голосов
/ 20 марта 2011

ОК, общий план игры:

  1. вам нужно отправить данные с помощью запроса POST (заголовок "Content-Type" должен быть "application/x-www-form-urlencoded").
  2. Вы должны использовать свой пользовательский формат данных для отправки по сети, чтобы данные можно было легко проанализировать в сценарии PHP.
  3. внутри вашего PHP-скрипта вы получаете данные, анализируете их в массиве Points и используете SQL для помещения их в БД.

Пример почтовых данных в вашем случае может выглядеть следующим образом:

point_1_x=12.34&point_1_y=12.34&point_2_x=14.34&point_2_y=14.34

Здесь для Point у вас есть пара параметров (point_N_x и point_N_y, где N - это индекс в вашем Vector). Однако точный формат зависит от вас. Единственная причина узнать формат - это возможность написать парсер на веб-части. Я уверен, что вы можете генерировать что-то похожее (скорее всего, более компактное), перебирая Vector.

Погуглив, вы можете найти несколько примеров того, как отправить запрос POST на BB. Например, посмотрите здесь и здесь в качестве отправной точки. Также убедитесь, что вы изучили официальный API (выделите «Пример использования POST с HttpConnection»).

0 голосов
/ 19 марта 2011

извините, я не совсем из этого поля, но как долго значение вектора, как оно выглядит?Возможно, вы могли бы на самом деле отправить HTTP в php-файл, если вы хотите, чтобы вы могли закодировать значения как Base64 (таким образом, по крайней мере, это не будет настолько очевидно, что вы отправляете / не открываете текст) или что-то вродечто ..?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...