0

ich eine geoshape Abfrage haben, die auf einem lokalen ES-Instanz ausgeführt wird, die wie folgt lautet:Prospekt GeoJSON Integration Objekte in Elasticsearch Geoshape Abfrage in AngularJS

httprequest.js mit geoshape Abfrage

spatialsearch() { 
       var _url = 'http://127.0.0.1:9201/_search?'; 

       var b = { 
        "query": { 
         "bool": { 
          "must": { 
           "match_all": {} 
          }, 
          "filter": { 
           "geo_shape": { 
            "metadata.o2r.spatial.geometry": { 
             "shape": { 
              "type": "polygon", 
              "coordinates": [ 
               [ 
                [-22.0, 76.0], 
                [-27.0, 65.0], 
                [-57.0, 65.0], 
                [-59.0, 76.0], 
                [-22.0, 76.0] 
               ] 
              ] 
             }, 
             "relation": "contains" 
            } 
           } 
          } 
         } 
        } 
       }; 
       return $http.post(_url, b); 
       console.log("hello"); 

      } 

Zur Zeit habe ich die Koordinaten hart in die Abfrage kodiert, aber ich möchte in der Lage sein, die Koordinaten von Geojson-Objekten zu holen, die vom Benutzer auf der Merkblatt-Karte gezeichnet werden, und sie in das Koordinaten-Array in der obigen Funktion einzufügen. Ich bin in der Lage, die Koordinaten von Geojson-Objekten in String-Form in Dev-Konsole anzuzeigen, aber ich kann nicht herausfinden, , wie Sie sie speichern und sie in der obigen Funktion abrufen. Hier ist, wie ich Geojson mache und ihre Koordinaten in der Konsole anzeigen.

search.controller.js

leafletData.getMap().then(function(map) { 

       leafletData.getLayers().then(function(baselayers) { 
       var drawnItems = baselayers.overlays.draw; 

        map.on('draw:created', function (e) { 

        var layer = e.layer; 

        drawnItems.addLayer(layer); 

        console.log(JSON.stringify(layer.toGeoJSON())); 
        }); 
       }); 

      }); 

Antwort

0

i die Koordinaten in einer Variablen gespeichert und dann in der HTTP-Anforderung Funktion namens coordinates_selected = layer.toGeoJSON();

Aktualisiert Funktion

function spatialsearch(coordinates_selected) { 
    var coords = coordinates_selected.geometry.coordinates; 
    console.log('c', JSON.stringify(coordinates_selected.geometry.coordinates)); 
    var _url = 'http://localhost:9201/_search?'; 

    var b = { 
    "query": { 
     "bool": { 
     "must": { 
      "match_all": {} 
     }, 
     "filter": { 
      "geo_shape": { 
      "metadata.o2r.spatial.geometry": { 
       "shape": { 
       "type": "polygon", 
       "coordinates": coords 

       /* [ 
        [-22.0, 76.0], 
        [-27.0, 65.0], 
        [-57.0, 65.0], 
        [-59.0, 76.0], 
        [-22.0, 76.0] 
        ]*/ 

       }, 
       "relation": "within" 
      } 
      } 
     } 
     } 
    } 
    };