集成geojson查询以在angularjs中生成http请求

时间:2017-04-20 09:54:41

标签: javascript angularjs elasticsearch geojson elasticsearch-geo-shape

我正在尝试将来自弹性搜索的地理形状查询集成到我的angularjs代码中,以生成一个http请求来获取驻留在elasticsearch本地实例上的数据,但是控制台会抛出错误,即无效的XMLhttp参数。我想这与我如何使用我的URL添加geojson有关。以下是我创建 http请求

的功能
function spatialsearch() {
            var _url = '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"
                                }
                            }
                        }
                    }
                }
            };
            _url += b;
            return $http.get(_url);
            console.log("hello");

        }

以下是我在angularjs的js文件中调用http请求的方法

function callingspatialsearch(){
  var deferred = $q.defer();
 httpRequests.
 spatialsearch()
 .then(cb1)
 .catch(errorHandler);
return deferred.promise;


    function cb1(response){
      $log.debug('result of search: %o', response);
      deferred.resolve(response);
    }

    function errorHandler(e){
      $log.debug('search error: %o', e);
      deferred.resolve(e);
    }
  }

在我的HTML中,我添加了一个按钮,以便在用户点击按钮时显示结果。

<md-button ng-click="vm.button()" class="search-button md-primary md-raised white-font">Spatial</md-button>

1 个答案:

答案 0 :(得分:0)

我正在使用$http.post(_url)代替GET,这有助于我检索结果