#php #android #json #postgresql #polygon
#php #Android #json #postgresql #полигон
Вопрос:
Из моей программы для Android я использовал Openstreetmap, а затем использовал его для рисования полигона на нем с помощью наложения.У меня есть сохраненные координаты x и координаты y в массиве.Теперь мне нужно передать эти координаты в мою базу данных (PostgreSQL).Я определил данные типа полигона в своей базе данных.Для этого я попробовал эти коды.
Overlay touchOverlay = new Overlay(this){
ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay = null;
@Override
protected void draw(Canvas arg0, MapView arg1, boolean arg2) {
}
@Override
public boolean onSingleTapConfirmed(final MotionEvent e, final MapView mapView) {
mapview.invalidate();
proj = mapView.getProjection();
loc = (GeoPoint) proj.fromPixels((int)e.getX(), (int)e.getY());
longitude = Double.toString(((double)loc.getLongitudeE6())/1000000);
latitude = Double.toString(((double)loc.getLatitudeE6())/1000000);
myPath.addPoint(loc);
mPoints.add(new Point(loc.getLatitudeE6(),loc.getLongitudeE6()));
xcor.add(((double)loc.getLongitudeE6())/1000000);
ycor.add(((double)loc.getLatitudeE6())/1000000);
return true;
}
}
я использовал Asynctask для вызова php
private void postData() {
InputStream isr = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.5.1/project/spatial.php");
try {
JSONArray listx = new JSONArray();
JSONArray listy = new JSONArray();
for (int i = 0; i < xcor.size(); i ) {
listx.put(xcor.get(i));
listy.put(ycor.get(i));
}
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("value1", listx.toString()));
params.add(new BasicNameValuePair("value2", listy.toString()));
httppost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
isr = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line "n");
}
isr.close();
String result=sb.toString();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
как я могу использовать эти координаты для публикации в полигональном типе данных в базе данных????
Комментарии:
1. Какой клиент вы используете для связи с PostgreSQL? — Вы всегда можете использовать строковое входное представление polygon: postgresql.org/docs/9.3/static/datatype-geometric.html#AEN6656
2. Спасибо. это сработало для меня