Firebase REST API GET request with params - rest

I've uploaded a geojson file to my firebase realtime database and setup an http get request in my angular app to retrieve the data. Here's a small sample of my data. All it is is an array of objects. Each object is a zip code. Below are two zip code objects.
[
{
"type":"Feature",
"properties":{
"STATEFP10":"44",
"ZCTA5CE10":"02818",
"GEOID10":"4402818",
"CLASSFP10":"B5",
"MTFCC10":"G6350",
"FUNCSTAT10":"S",
"ALAND10":56516634,
"AWATER10":8882294,
"INTPTLAT10":"+41.6429192",
"INTPTLON10":"-071.4857186",
"PARTFLG10":"N"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
-71.457848,
41.672076
],
[
-71.457848,
41.672414
],
[
-71.457848,
41.672932
],
[
-71.457916,
41.67407
]
]
]
}
},
{
"type":"Feature",
"properties":{
"STATEFP10":"44",
"ZCTA5CE10":"02878",
"GEOID10":"4402878",
"CLASSFP10":"B5",
"MTFCC10":"G6350",
"FUNCSTAT10":"S",
"ALAND10":75250623,
"AWATER10":8363563,
"INTPTLAT10":"+41.6101375",
"INTPTLON10":"-071.1804709",
"PARTFLG10":"N"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
-71.210351,
41.656166
],
[
-71.209897,
41.657718
],
[
-71.208399,
41.660013
],
[
-71.20787,
41.661323
]
]
]
}
}
]
I can retrieve all of my data no problem but I can't seem to filter specific zip codes. I have read over the guides on firebase (https://firebase.google.com/docs/database/rest/retrieve-data) and can not get this to work with params. What I'm trying to do is filter an object based on the "ZCTA5CE10" value in "properties". I have tried many different combinations. Below is one of them:
getZipData() {
return this.http.get(this.url + '?orderBy="properties/ZCTA5CE10"&equalTo="02818"');
}
I get a 400 error when attempting to use params. What am I doing wrong?
Also, Is it possible to filter multiple zip codes E.g. &equalTo="02818"&equalTo="02878"

Related

Enable SchemaStore support if filename does not match

VS Code has support for schemastore which gives you autocomplete in YAML files.
But VS Code does not detect the schema if the filename is different.
For example, if I edit .golangci.yaml the corresponding schema gets used. If I edit .golangci-foo.yaml the schema is not detected.
How can I enable the schema for files where the filename is different?
You can do this using the json.schemas setting. Like so:
"json.schemas": [
{
"fileMatch": [ "*tsconfig*.json" ],
"url": "http://json.schemastore.org/tsconfig",
},{
"fileMatch": [ "*cSpell.json" ],
"url": "https://raw.githubusercontent.com/streetsidesoftware/cspell/cspell4/cspell.schema.json",
},{
"fileMatch": [ "*.webmanifest" ],
"url": "http://json.schemastore.org/web-manifest",
},{
"fileMatch": [ "*package*.json" ],
"url": "https://json.schemastore.org/package",
}
],
As indicated in the comments, this worked for the asker, and they used the following:
"json.schemas": [
{
"fileMatch": [ "*.golangci*yaml" ],
"url": "https://json.schemastore.org/golangci-lint.json",
}
],

Creating an OpenLayers 5 MultiPolygon feature from a turf.js MultiPolygon

In OpenLayers 5.3.0, I've created a MultiPolygon using the 'difference' tool in turf.js. The turf.js MultiPolygon looks fine when I examine the JSON, but when I try to use that to create a feature in OpenLayers, I get "Uncaught TypeError: t.addEventListener is not a function".
I've tried many combinations of JSON.stringify, JSON.parse, GeoJSON.readFeatures, .getCoordinates()... I tried adding the turf.js MultiPolygon as a feature directly via source.addFeature(multiPolygonGeometry), but then I get 'Uncaught TypeError: e.getId is not a function'. I also tried source.addFeatures(multiPolygonGeometry) (note the plural 'addFeatures'), and that didn't give me any errors, but also didn't appear to add anything to the source.
Relevant lines in my code are as follows:
multiPolygonGeometry = turf.difference(largeArea,maskAreas);
multiPolygonFeature = new ol.Feature({
geometry: multiPolygonGeometry,
id: 'multiPolygonFeature1'
});
multiPolygonGeometry looks like this in the console:
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
140.9716711384525,
-36.97645228850101
],
[
140.97418321565786,
-36.97679331852701
],
[
140.9741163253784,
-36.97713531664132
],
[
140.9740304946899,
-36.97903805606076
],
[
140.97437381744382,
-36.98025509866784
],
[
140.97594864874696,
-36.98127512642501
],
[
140.9714880598484,
-36.9804459718428
],
[
140.9714500775476,
-36.97642733756345
],
[
140.9716711384525,
-36.97645228850101
]
]
],
[
[
[
140.97455248763328,
-36.97684309230892
],
[
140.97751071844857,
-36.97723786980259
],
[
140.97749308140382,
-36.977304276099005
],
[
140.97715289421623,
-36.97770848336402
],
[
140.97661807025068,
-36.97969050789806
],
[
140.97628355026242,
-36.97958658471583
],
[
140.97634792327878,
-36.97900377288852
],
[
140.9764981269836,
-36.97866094031662
],
[
140.97510337829587,
-36.97727245260485
],
[
140.97455248763328,
-36.97684309230892
]
]
],
[
[
[
140.97628420893903,
-36.98092777726751
],
[
140.97617893060388,
-36.98131793226549
],
[
140.97596635572492,
-36.98127841787872
],
[
140.97628420893903,
-36.98092777726751
]
]
]
]
},
"ol_lm": {
"change": []
}
}
And then I get this message:
events.js:174 Uncaught TypeError: t.addEventListener is not a function
at v (events.js:174)
at e.handleGeometryChanged_ (Feature.js:210)
at e (events.js:41)
at e.dispatchEvent (Target.js:101)
at e.notify (Object.js:151)
at e.set (Object.js:170)
at e.setProperties (Object.js:186)
at new e (Feature.js:108)
at getPolygon (maskedPolygon.js:319) <-- this is the second line in my code sample above
at <anonymous>:1:1
What am I doing wrong here? I'm sure it's something simple but I just can't seem to crack this.
Turf works with GeoJSON features so your "multiPolygonGeometry" is a GeoJSON feature which can be parsed by OpenLayers then given an Id:
multiPolygonFeature = new ol.format.GeoJSON().readFeature(multiPolygonGeometry);
multiPolygonFeature.setId('multiPolygonFeature1');

How can I add a large JSON object to a header in Postman?

The SendGrid API needs some large JSON in the X-SMTPAPI custom header field.
How can I enter & edit this in Postman?
E.g.:
{
"to": [
"ben#sendgrid.com",
"joe#sendgrid.com"
],
"sub": {
"%name%": [
"Ben",
"Joe"
],
"%role%": [
"%sellerSection%",
"%buyerSection%"
]
},
"section": {
"%sellerSection%": "Seller information for: %name%",
"%buyerSection%": "Buyer information for: %name%"
},
"category": [
"Orders"
]
}
it should be easy to do.
Just modify your postman header request as illustrated in the screenshot below.

Mongodb get element from object

I have a collection on which if I do a find().pretty gives me the following values
{
"_id": ObjectId("55f7a2a9247a911393333681"),
"education": [
"Schooling",
"Plus 2",
"Graduate",
"Post Graduate"
],
"identification": [
],
"jobtype": [
],
"actor": [
]
}
Can I just get the values under "actor" without getting the entire collection and then iterating through the values?
Its simple. You can use the following query,
db.collection.distinct('actor')

How to obtain JSON response in speech-to-text-websockets-python?

Looking at the https://github.com/watson-developer-cloud/speech-to-text-websockets-python How can I update the project to to obtain the different timestamps and transcription in JSON format?
the project already produces json output with timestamps. Look for the files "*.json.txt" in the output directory:
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"timestamps": [
[
"so",
1.0,
1.27
]
],
"transcript": "so "
}
],
"final": false
}
]
}