передача значений полигонов android в php

#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. Спасибо. это сработало для меня