2016-10-11 13 views
0

this documentationに基づいて、spatialFilterパラメータ内のアドレス文字列を使用してクエリURLを構築できます。私が経度/緯度を渡すときに機能しますが、住所、郵便番号、都市、または州を渡すことができる必要があります。エンドユーザーはこのカスタムデータソースの近くの場所を検索し、検索ボックスの地理座標を検索しません。 lat/long以外の文字列を渡すたびに、私はBadRequestのレスポンス400を受け取る。「Latitude値は-90.0〜90.0度の間でなければならない」ここでBing MapsクエリAPI、lat/longの代わりにアドレスでクエリが動作しないようです。

は、私のリクエストURLは次のようになります。

https://spatial.virtualearth.net/REST/v1/data/myId/myDataSource/myEntity?spatialFilter=nearby(ADDRESS_STRING,1000)&$format=json&$top=10&key=myKey&jsonp=callback 

答えて

1

あなたのアドレス文字列のいずれかの側に単一引用符を持っていることを確認します。例えば:あなたのアドレスは、その中に単一引用符を持っている

http://spatial.virtualearth.net/REST/v1/data/20181f26d9e94c81acdf9496133d4f23/FourthCoffeeSample/FourthCoffeeShops?spatialFilter=nearby('Paris',100)&key=YOUR_BING_MAPS_KEY 

場合、あなたはそれを2つの単一引用符を置くことで構成されたOData道をエスケープする必要があります。たとえば"o''clock"

+0

これはまさに私が逃したものです。私はアドレス文字列の周りに引用符をエスケープしていなかったことに気付かなかった。私は副次的な質問があります:私のデータソースは合計25のレコードを持っています。私の結果はうまく表示されますが、空間フィルタのアドレスからの距離に応じて25レコードすべてを表示することは可能ですか? 2、3、8などの結果を表示する代わりに。私はこれを達成するためのハック方法を考えることができますが、私はそれを開始する前にオプションがあるかどうかを知りたい場合 – user3127502

+0

近くのフィルタを使用するとき、私はそれがデフォルトで距離順になると信じています。これをクエリに追加して、各場所までの距離をレスポンスに追加することができます。&$ select = *、__ Distance 結果を距離順に並べ替えるように指定することもできます。$ orderby = __Distanceしかしこれはすでに起こっているはずです。 – rbrundritt

+0

デフォルトでは距離で注文しますが、最大距離は1000kmです。私は合計25の場所を持っており、検索の半径1000km以内にある少数だけでなく、すべての25が表示される必要があります。 – user3127502

関連する問題