Back to Question Center
0

WRLD ਦੀ ਵਰਤੋਂ ਨਾਲ ਜਾਰਜ ਕੋਸਟਾਂਜ਼ਾ ਦੇ ਬਾਥਰੂਮ ਫਾਈਟਰ ਬਣਾਓ            WRLDRelated Semalt ਵਰਤਦੇ ਹੋਏ ਜਾਰਜ ਕੋਸਟਾਂਜ਼ਾ ਦੇ ਬਾਥਰੂਮ ਫਾਈਟਰ ਬਣਾਓ: ਨਿਊਜ਼ਡੌਕਰਪਾਈਸਸੀਐਮਸਰਪਰਸਪੋਰਟੇਸ਼ਨਹੋਰ ...

1 answers:
ਡਬਲਯੂਆਰਐਲਡੀ ਦੀ ਵਰਤੋਂ ਨਾਲ ਜਾਰਜ ਕੋਸਟਾਂਜ਼ਾ ਦੇ ਬਾਥਰੂਮ ਫਾਈਂਟਰ ਬਣਾਓ

ਇਹ ਲੇਖ WRLD 3D ਦੁਆਰਾ ਸਪਾਂਸਰ ਕੀਤਾ ਗਿਆ ਸੀ. ਜਿਹੜੇ ਸਹਿਭਾਗੀਾਂ ਨੂੰ ਸੰਭਵ ਬਣਾਉਂਦੇ ਹਨ ਉਹਨਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ.

"ਕਿਤੇ ਵੀ ਸ਼ਹਿਰ ਵਿੱਚ? ਸ਼ਹਿਰ ਵਿੱਚ ਕਿਤੇ ਵੀ: ਮਿਡਲ ਤੁਹਾਨੂੰ ਸਭ ਤੋਂ ਵਧੀਆ ਜਨਤਕ ਟੌਇਲਟ ਦੱਸਦਾ ਹੈ - site compre aqui. "

ਜਾਰਜ ਕੋਸਟਾਂਜ਼ਾ ਦੇ ਇਹ ਸ਼ਬਦ 1991 ਵਿੱਚ ਜੈਰੀ ਸੇਇਨਫੈਡ ਨੂੰ ਦਿੱਤੇ ਗਏ ਹਨ. ਸੇਇਨਫੇਲਡ ਦੇ ਉਹ ਏਪੀਸੋਡ ਵਿੱਚ; ਦਰਸ਼ਣ ਵਾਲੇ ਜਾਰਜ ਨੇ ਆਪਣੇ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਐਪ ਦੀ ਖੋਜ ਕੀਤੀ - ਬਾਥਰੂਮ ਖੋਜਕ! ਜੇ ਤੁਸੀਂ ਵਾਰ-ਵਾਰ ਯਾਤਰਾ ਕਰ ਰਹੇ ਹੋ, ਇੱਕ ਮਾਤਾ ਜਾਂ ਪਿਤਾ, ਜਾਂ ਕੋਈ ਅਜਿਹਾ ਵਿਅਕਤੀ ਜੋ ਕੁਝ "ਸ਼ਾਂਤਤਾ" ਲਈ ਇੱਕ ਸਾਫ਼ ਅਤੇ ਚੰਗੀ ਤਰ੍ਹਾਂ ਬਣਾਈ ਥਾਂ ਦੀ ਮਹੱਤਤਾ ਬਾਰੇ ਜਾਣਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਵਿਚਾਰ ਦੀ ਉਪਯੋਗਤਾ ਨੂੰ ਸਮਝ ਸਕੋਗੇ.

Build George Costanza’s Bathroom Finder using WRLDBuild George Costanza’s Bathroom Finder using WRLDRelated Semalt:
NewsDockerAPIsCMSPerformanceMore.

ਇਸ ਲਈ, ਇਸ ਵਾਰ ਅਸੀਂ ਸਾਡੀ WRLD ਲੜੀ ਦੇ ਦੂਜੇ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਇੱਕ ਬਿਲਡ ਕਰਨ ਜਾ ਰਹੇ ਹਾਂ .ਆਓ ਇਸਨੂੰ "ਫਾਈਲੇਸ਼ਨ ਫੈਸਡਰ ਐਪ" ਆਖੀਏ.

Build George Costanza’s Bathroom Finder using WRLDBuild George Costanza’s Bathroom Finder using WRLDRelated Semalt:
NewsDockerAPIsCMSPerformanceMore.

ਇਹ ਪਹਿਲੀ ਵਾਰੀ ਨਹੀਂ ਜਦੋਂ ਕਿਸੇ ਨੇ ਇਸ ਮਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ. 2010 ਵਿੱਚ, ਬਾਥਰੂਮਰੀਵਿਊ. ਸੀ ਐੱ ਐੱਸ ਨੇ ਅਜਿਹਾ ਹੀ ਕੀਤਾ (ਜਿਵੇਂ ਕਿ ਸਮਾਲਟ ਵਿਚ ਦੱਸਿਆ ਗਿਆ ਹੈ). ਪਰ ਸਾਇਟ ਹੁਣ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦੀ

ਅਸੀਂ ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਬਹੁਤ ਥੋੜ੍ਹੀ ਜ਼ਮੀਨ ਨੂੰ ਕਵਰ ਕੀਤਾ ਸੀ, ਇਸ ਵਾਰ ਦੌਰ ਵਿੱਚ, ਅਸੀਂ ਕੁਝ ਸਿੱਖਣ ਵਿੱਚ ਮੁੜ ਵਰਤੋਂ ਲਈ ਜਾ ਰਹੇ ਹਾਂ. ਉਦਾਹਰਣ ਦੇ ਲਈ, ਅਸੀਂ ਸਾਡੀ ਸਥਿਰ ਫਾਈਲਾਂ ਨੂੰ ਬਣਾਉਣ ਲਈ ਪਾਰਸਲ ਜੇ ਐਸ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ, ਪਰ ਅਸੀਂ ਇਸਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਤ ਕਰਨ ਬਾਰੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਿਸਥਾਰ ਵਿੱਚ ਨਹੀਂ ਜਾਵਾਂਗੇ. ਸਿਮਟਟ ਇਮਾਰਤਾਂ ਨੂੰ ਵੀ ਉਭਾਰਦਾ ਹੈ ਅਤੇ ਸਹੀ ਮੌਸਮ ਅਤੇ ਦਿਨ ਦਾ ਸਮਾਂ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਉਪਭੋਗਤਾ ਲਈ ਕੀ ਹੈ. ਜੇ ਤੁਸੀਂ ਇਸ ਕੰਮ ਬਾਰੇ ਪੱਕਾ ਨਹੀਂ ਹੋ, ਤਾਂ ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ ਤੇ ਵਾਪਸ ਜਾਓ.

ਇਸ ਟਿਯੂਟੋਰਿਅਲ ਵਿਚ, ਅਸੀਂ ਇਹਨਾਂ ਵਿਸ਼ਿਆਂ ਨੂੰ ਕਵਰ ਕਰਨ ਜਾ ਰਹੇ ਹਾਂ:

  • ਸਧਾਰਨ AdonisJS ਸਰਵਰ-ਸਾਈਡ API (ਸਥਾਨ ਡੇਟਾ ਕੈਚ ਕਰਨ ਅਤੇ CORS ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ) ਬਣਾਉਣਾ
  • ਸ਼ਰਨਾਰਥੀਆਂ ਦੁਆਰਾ ਪਬਲਿਕ ਸਹੂਲਤਾਂ ਦੇ ਡੇਟਾ ਦੀ ਬੇਨਤੀ ਕਰਨਾ. org, ਜੇ ਉਪਭੋਗਤਾ ਦੇ 10 ਮੀਟਰ ਦੇ ਅੰਦਰ ਕੋਈ ਕੈਚ ਕੀਤੀਆਂ ਸਥਾਨਾਂ ਨਹੀਂ ਹਨ. ਅਸੀਂ ਦਿਲਚਸਪੀ ਦੇ ਪੁਆਇੰਟ ਵਿਚਕਾਰ ਦੂਰੀ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ Google ਦੂਰੀ ਮੈਟ੍ਰਿਕਸ API ਦਾ ਇਸਤੇਮਾਲ ਕਰਾਂਗੇ.
  • ਜਨਤਕ ਸਹੂਲਤਾਂ ਨਾਲ ਇਮਾਰਤਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਨਾ, ਉਨ੍ਹਾਂ ਦੇ ਰੇਟਿੰਗ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਰੰਗਦਾਰ. ਚੰਗੇ ਲਈ ਹਰਾ, ਬੁਰਾ ਲਈ ਲਾਲ ਹਰ ਇਮਾਰਤ ਵਿੱਚ ਵਾਧੂ ਜਾਣਕਾਰੀ ਲਈ ਇੱਕ ਜਾਣਕਾਰੀ ਕਾਰਡ ਹੋਵੇਗਾ (ਜਿਵੇਂ ਕਿ ਬਾਥਰੂਮ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਣਾ ਹੈ).

ਅਖ਼ੀਰ ਵਿਚ, ਅਸੀਂ ਇਸ ਗੱਲ ਬਾਰੇ ਥੋੜ੍ਹਾ ਜਿਹਾ ਗੱਲ ਕਰਾਂਗੇ ਕਿ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਐਪ ਨੂੰ ਇਕ ਵਿਹਾਰਕ ਕਾਰੋਬਾਰ ਵਿਚ ਕਿਵੇਂ ਚਾਲੂ ਕਰਨਾ ਹੈ. ਕੀ ਇਹ ਸੱਚਮੁਚ ਹੀ ਮੀਲਟ ਹੈ? WRLD API ਵਾਸਤਵਿਕ ਸੰਸਾਰ ਦੇ ਨਕਸ਼ੇ ਵਿੱਚ ਅਸਲ-ਸੰਸਾਰ ਡੇਟਾ ਨੂੰ ਵਿਜ਼ੂਅਲ ਕਰਨ ਲਈ ਟੂਲ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ. ਵਪਾਰਕ ਕਾਰਜਾਂ ਲਈ ਇਸ ਟੈਕਨਾਲੋਜੀ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ ਸਾਡੀ ਨੌਕਰੀ ਹੈ!

ਇਸ ਟਿਊਟੋਰਿਅਲ ਦਾ ਕੋਡ ਗਿੱਠੂਬ 'ਤੇ ਪਾਇਆ ਜਾ ਸਕਦਾ ਹੈ. ਇਹ ਇੱਕ ਆਧੁਨਿਕ ਸੰਸਕਰਣਾਂ ਜਾਂ ਸਿਮਟਟ, ਨੋਡ ਅਤੇ ਮੈਕੋਸ ਦੁਆਰਾ ਟੈਸਟ ਕੀਤਾ ਗਿਆ ਹੈ

ਫੋਰਮਾਈਲ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨਾ

ਆਉ ਇਸ ਬਾਰੇ ਸਿੱਖ ਕੇ ਸ਼ੁਰੂ ਕਰੀਏ ਕਿ ਸਹੂਲਤ ਡੇਟਾ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ ਅਤੇ ਜਿਸ ਫ਼ਾਰਮ ਨੂੰ ਅਸੀਂ ਇਸ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਾਂ. ਮਿਡਲ ਨੂੰ ਸ਼ਰਨਾਰਥੀ ਕਮਰੇ ਵਰਤਣ ਲਈ ਜਾ ਰਹੇ ਹਨ ਸੰਸਥਾ ਡਾਟਾ ਦੇ ਇੱਕ ਸਰੋਤ ਦੇ ਰੂਪ ਵਿੱਚ. ਅਸੀਂ ਸਿੱਖਦੇ ਹਾਂ ਕਿ ਅਸੀਂ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਦੇਖ ਕੇ, ਵਿਖਾਈ ਅਤੇ ਵਿਪਰੀਤ ਦੁਆਰਾ ਖੋਜ ਕਰ ਸਕਦੇ ਹਾਂ. ਵਾਸਤਵ ਵਿੱਚ, ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੀ ਬੇਨਤੀ ਕਰ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਮੇਰੇ ਸਥਾਨ ਦੇ ਨਜ਼ਦੀਕੀ ਸੁਵਿਧਾਵਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਵੇਖ ਸਕਦੇ ਹਾਂ:

     curl https: // www. ਸ਼ਰਨਾਰਥੀਆਂ org / api / v1 / restrooms / by_location. ਜੇਸਨ? ↵lat = -33 872571799999996 & lng = 18 633 9 362    

ਸਿਮਟਟ ਕੁਝ ਹੋਰ ਮਾਪਦੰਡ ਹਨ ਜੋ ਅਸੀਂ ਦੱਸ ਸਕਦੇ ਹਾਂ (ਜਿਵੇਂ ਕਿ ਪਹੁੰਚਯੋਗ ਅਤੇ / ਜਾਂ ਯੂਨੀਸੈਕਸ ਸਹੂਲਤਾਂ ਦੁਆਰਾ ਫਿਲਟਰ ਕਰਨਾ ਹੈ). ਪਰੰਤੂ ਮੁੱਖ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਹ ਇੱਕ ਖੋਜ ਦੇ ਰੂਪ ਵਿੱਚ ਜੋੜਨ ਅਤੇ ਨੇੜੇ-ਤੇੜੇ ਸਥਾਨ ਪ੍ਰਾਪਤ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ.

ਅਸੀਂ ਇਸਨੂੰ ਬਰਾਊਜ਼ਰ ਤੋਂ ਕੇਵਲ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦੇ ਹਾਂ, ਹਾਲਾਂਕਿ. ਮਿਲਾ ਕੇ ਮਿਲਾ ਕੇ ਸੁਰੱਖਿਆ ਦੇ ਹਰ ਤਰ੍ਹਾਂ ਦੇ ਕਾਰਨਾਂ ਕਰਕੇ ਇਹ ਅਨੁਮਤੀ ਨਹੀਂ ਹੈ. ਮਿਡਲ ਵੀ ਕਾਰਗੁਜ਼ਾਰੀ ਕਾਰਨ ਹਨ ਜੇ 10 ਲੋਕਾਂ ਨੇ ਇੱਕੋ ਵਾਰ ਬੇਨਤੀ ਕੀਤੀ, ਤਾਂ ਇਕ-ਦੂਜੇ ਤੋਂ ਇਲਾਵਾ 10 ਮੀਟਰ ਖੜ੍ਹੇ ਹੋ ਗਏ? ਇਹ ਇੱਕੋ ਰਿਮੋਟ ਸਰਵਰ ਲਈ 10 ਬੇਨਤੀਆਂ ਨੂੰ ਬੰਦ ਕਰਨ ਦੀ ਵਿਅਰਥ ਹੋਵੇਗੀ, ਜਦੋਂ ਅਸੀਂ ਕਿਸੇ ਕੈਚਿੰਗ ਪ੍ਰੌਕਸੀ ਤੋਂ ਇਸ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਪੂਰਾ ਕਰ ਸਕਾਂਗੇ.

ਇਸਦੀ ਬਜਾਏ, ਅਸੀਂ ਇੱਕ ਸਧਾਰਨ ਸੇਮਟਜ ਐਸੈਸਿੰਗ API ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਜਾ ਰਹੇ ਹਾਂ. ਅਸੀਂ ਸੈਮਟੈਟ ਐਸ ਐਸ ਦੇ ਵੇਰਵੇ 'ਤੇ ਵਧੇਰੇ ਸਮਾਂ ਨਹੀਂ ਬਿਤਾ ਸਕਦੇ, ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਵਿਸਥਾਰ ਲਈ ਦਸਤਾਵੇਜਾਂ ਦੀ ਜਾਂਚ ਕਰਨੀ ਪਵੇਗੀ.

ਮੀਮਟ ਨੇ ਇਸ ਬਾਰੇ ਇਕ ਕਿਤਾਬ ਲਿਖਣ ਬਾਰੇ ਵੀ ਕਿਹਾ, ਤਾਂ ਜੋ ਇਹ ਕੰਮ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਸਥਾਨ ਬਣ ਸਕੇ!

ਨਵਾਂ ਸੇਮਟਜ ਐਸਐਸ ਐਪ ਬਣਾਉਣ ਲਈ ਸਭ ਤੋਂ ਆਸਾਨ ਤਰੀਕਾ, ਕਮਾਂਡ-ਲਾਈਨ ਟੂਲ ਇੰਸਟਾਲ ਕਰਨਾ ਹੈ:

     npm ਇੰਸਟਾਲ --global @ adonisjs / cli    

ਇਸ ਨਾਲ ਐਡੌਨਿਸ ਕਮਾਂਡ-ਲਾਈਨ ਨੂੰ ਵਿਸ਼ਵ ਪੱਧਰ 'ਤੇ ਸਮਰਥਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਅਸੀਂ ਇਸਦੀ ਵਰਤੋਂ ਇਕ ਨਵੀਂ ਐਪਲੀਕੇਸ਼ਨ ਸਕਲੀਟਨ ਬਣਾਉਣ ਲਈ ਕਰ ਸਕਦੇ ਹਾਂ:

     ਐਡੌਨਜ਼ ਨਵੀਂ ਪ੍ਰੌਕਸੀ    

ਇਸ ਵਿੱਚ ਕੁਝ ਸਮਾਂ ਲੱਗਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕੁਝ ਚੀਜ਼ਾਂ ਨੂੰ ਸਥਾਪਤ ਕਰਦਾ ਹੈ. ਜਦੋਂ ਇਹ ਖ਼ਤਮ ਹੁੰਦਾ ਹੈ, ਤੁਹਾਨੂੰ ਵਿਕਾਸ ਸਰਵਰ ਨੂੰ ਚਲਾਉਣ ਲਈ ਇੱਕ ਸੁਨੇਹਾ ਵੇਖਣਾ ਚਾਹੀਦਾ ਹੈ ਇਸ ਨਾਲ ਇਹ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ:

     adonis ਸੇਵਾ --dev    

http: // 127 ਖੋਲ੍ਹੋ 0. 0. 1: 3333 ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਵਿੱਚ, ਅਤੇ ਤੁਹਾਨੂੰ ਇਸ ਸੁੰਦਰਤਾ ਦੁਆਰਾ ਸਵਾਗਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ:

Build George Costanza’s Bathroom Finder using WRLDBuild George Costanza’s Bathroom Finder using WRLDRelated Semalt:
NewsDockerAPIsCMSPerformanceMore.

ਮਿਗਰੇਸ਼ਨ ਅਤੇ ਮਾਡਲ ਬਣਾਉਣਾ

ਆਓ ਇੱਕ ਡੇਟਾਬੇਸ ਵਿੱਚ ਖੋਜ ਡੇਟਾ ਦੀ ਚਰਚਾ ਕਰੀਏ. AdonisJS ਕੁਝ ਵੱਖਰੇ ਇੰਜਣਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਪਰ ਅਸੀਂ ਸਾਦਗੀ ਦੀ ਖ਼ਾਤਰ ਸਾਮਾਲਟ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ. ਅਸੀਂ ਇਹ ਵਰਤ ਕੇ ਢੁਕਵੇਂ ਡ੍ਰਾਈਵਰ ਨੂੰ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹਾਂ:

     npm ਇੰਸਟਾਲ --save sqlite3    

ਅੱਗੇ, ਆਓ ਇੱਕ ਮਾਈਗਰੇਸ਼ਨ ਅਤੇ ਮਾਡਲ ਬਣਾਵਾਂ. ਖੋਜ ਲਈ ਵਰਤੇ ਗਏ ਧੁਰੇ, ਅਤੇ ਵਾਪਸ ਕੀਤੇ ਗਏ JSON ਵਿੱਚ ਕੇਵਲ ਦਿਲਚਸਪੀ ਰੱਖਦੇ ਹਨ. ਜੇ ਕੋਆਰਡੀਨੇਟ ਕਾਫ਼ੀ ਨੇੜੇ ਹੈ ਜਿੱਥੇ ਇੱਕ ਉਪਭੋਗਤਾ ਖੋਜ ਕਰ ਰਿਹਾ ਹੈ, ਤਾਂ ਅਸੀਂ ਖੋਜ ਡੇਟਾ ਦੀ ਦੁਬਾਰਾ ਬੇਨਤੀ ਕਰਨ ਦੀ ਬਜਾਏ ਮੌਜੂਦਾ ਖੋਜ ਜਵਾਬ ਦਾ ਦੁਬਾਰਾ ਉਪਯੋਗ ਕਰਾਂਗੇ.

ਅਸੀਂ adonis ਮਿਗਰੇਸ਼ਨ ਅਤੇ ਮਾਡਲ ਬਣਾਉਣ ਲਈ ਕਮਾਂਡ-ਲਾਈਨ ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ:

     adonis ਬਣਾਓ: ਮਾਈਗਰੇਸ਼ਨ ਖੋਜadonis ਬਣਾਓ: ਮਾਡਲ ਖੋਜ    

ਇਹ ਇੱਕ ਜੋੜੇ ਦੀਆਂ ਫਾਈਲਾਂ ਬਣਾਉਂਦਾ ਹੈ ਪਹਿਲਾ ਮਾਈਗਰੇਸ਼ਨ ਹੈ, ਜਿਸ ਨਾਲ ਅਸੀਂ ਤਿੰਨ ਖੇਤਰ ਜੋੜ ਸਕਦੇ ਹਾਂ:

     "ਸਖਤੀ ਵਰਤੋ"const ਸਕੀਮਾ = ਵਰਤੋਂ ("ਸਕੀਮਾ")ਕਲਾਸ SearchSchema ਸਕੀਮਾ ਵਿਸਤ੍ਰਿਤ {ਅਪ    {ਇਹ. ਬਣਾਓ ("ਖੋਜ", ਸਾਰਣੀ => {ਟੇਬਲ. ਵਾਧਾ   ਟੇਬਲ. ਸਤਰ ("ਵਿਥਕਾਰ")ਟੇਬਲ. ਸਤਰ ("ਲੰਬਕਾਰ")ਟੇਬਲ. ਪਾਠ ("ਜਵਾਬ")ਟੇਬਲ. ਟਾਈਮਸਟੈਂਪ   })}ਥੱਲੇ, ਹੇਠਾਂ, ਨੀਂਵਾ   {ਇਹ. ਡ੍ਰੌਪ ("ਖੋਜ")}}ਮੋਡੀਊਲ ਐਕਸਪੋਰਟ ਕਰੋ = ਖੋਜਚੈੱਕਮਾ    

ਇਹ ਪ੍ਰੌਕਸੀ / ਡਾਟਾਬੇਸ / ਮਾਈਗਰੇਸ਼ਨ / x_search_schema ਤੋਂ ਹੈ ਜੇ ਐਸ

ਅਸੀਂ ਵਿਥਕਾਰ , ਲੰਬਕਾਰ ਅਤੇ ਜਵਾਬ ਖੇਤਰਾਂ ਨੂੰ ਜੋੜਿਆ ਹੈ. ਪਹਿਲੇ ਦੋ ਸਤਰ ਦੇ ਰੂਪ ਵਿੱਚ ਅਰਥ ਬਣਾਉਂਦੇ ਹਨ ਭਾਵੇਂ ਕਿ ਉਹ ਫਲੋਟ ਡੇਟਾ ਰੱਖਦੇ ਹਨ, ਕਿਉਂਕਿ ਅਸੀਂ ਉਹਨਾਂ ਦੇ ਨਾਲ ਉਪ-ਸਤਰ ਖੋਜਾਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ.

ਅੱਗੇ, ਆਓ ਇਕ ਸਿੰਗਲ API ਐਂਡਪੁਆਇੰਟ ਬਣਾਵਾਂ:

     "ਸਖਤੀ ਵਰਤੋ"const ਰੂਟ = ਵਰਤੋਂ ("ਰੂਟ")// ਸਾਨੂੰ ਹੁਣ ਇਸ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ // ਰੂਟ ਉੱਤੇ ("/") ਰੈਂਡਰ ("ਸੁਆਗਤ")ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   // ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਨਾਲ ਕੁਝ ਕਰੋ})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਹਰੇਕ ਐਡੋਨਿਸਜ ਐਸ ਐਸ ਰੂਟ ਰੂਟ ਵਿਚ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ. ਜੇ ਐਸ ਫਾਈਲ. ਇੱਥੇ, ਅਸੀਂ ਸ਼ੁਰੂਆਤੀ "ਸੁਆਗਤ" ਰੂਟ ਤੇ ਟਿੱਪਣੀ ਕੀਤੀ ਹੈ, ਅਤੇ ਇੱਕ ਨਵਾਂ "ਖੋਜ" ਰੂਟ ਜੋੜਿਆ ਹੈ. ਬੰਦ ਕਰਨ ਨੂੰ ਕਿਸੇ ਪ੍ਰਸੰਗ ਆਬਜੈਕਟ ਨਾਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ; ਜਿਸ ਵਿੱਚ ਬੇਨਤੀ ਅਤੇ ਬੇਨਤੀ ਚੀਜ਼ਾਂ ਦੀ ਪਹੁੰਚ ਹੈ.

ਅਸੀਂ ਖੋਜ ਬੇਨਤੀਆਂ ਵਿਥਕਾਰ ਅਤੇ ਲੰਬਕਾਰ ਪੁੱਛਗਿੱਛ ਸਤਰ ਮਾਪਦੰਡ ਮੁਹੱਈਆ ਕਰਨ ਦੀ ਆਸ ਕਰ ਸਕਦੇ ਹਾਂ; ਅਤੇ ਅਸੀਂ ਇਹਨਾਂ ਨੂੰ ਬੇਨਤੀ ਨਾਲ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ. ਸਭ . ਸਾਨੂੰ ਇਹ ਦੇਖਣ ਲਈ ਜਾਂਚ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਕਿ ਕੀ ਸਾਡੇ ਕੋਲ ਅਸਪਸ਼ਟ ਰੂਪ ਨਾਲ ਸੰਬੰਧਿਤ ਨਿਰਦੇਸ਼-ਅੰਕ ਹਨ. ਅਸੀਂ ਖੋਜ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਜਿਹਾ ਕਰ ਸਕਦੇ ਹਾਂ:

     ਸੰਮਿਲਿਤ ਕਰੋ = ਵਰਤੋਂ ("ਐਪ / ਮਾੱਡਲ / ਖੋਜ")ਸੰਧੀ ਖੋਜਣ ਯੋਗ = (ਕੱਚਾ, ਅੱਖਰ = 8) => {const ਅੱਸ = ਮਥਾਨ. abs (ਪਾਰਸ ਫਲੋਟ (ਕੱਚਾ))ਵਾਪਸ ਪਰਸੇ ਫਲੋਟ (ਅਬ ਗੇਟਸਟਿੰਗ   . ਸਬਸਟ੍ਰਸਟ (0, ਵਰਅਰਜ਼))}ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ. ਲੌਗ (ਖੋਜਣਯੋਗਤਾ, ਖੋਜਣ ਯੋਗਤਾ)const ਖੋਜ = ਉਡੀਕ ਕਰੋ ਖੋਜ ਪੁੱਛਗਿੱਛ    ਜਿੱਥੇ ("ਅਕਸ਼ਾਂਸ਼", "ਜਿਵੇਂ", `% $ {ਖੋਜਣ ਯੋਗਤਾ}%`). ਜਿੱਥੇ ("ਲੰਬਕਾਰ", "ਜਿਵੇਂ", `% $ $ {ਖੋਜਣ ਯੋਗਤਾ}%`). ਲਿਆਓ   // ਕੰਸੋਲ ਲੌਗ (ਖੋਜਾਂ ਟੋਜੇਸਨ   )ਜਵਾਬ. ਭੇਜੋ ("ਕੀਤਾ")// ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਨਾਲ ਕੁਝ ਕਰੋ})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਅਸੀਂ ਸਰਚ ਮਾਡਲ ਨੂੰ ਆਯਾਤ ਕਰਕੇ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਹਾਂ ਇਹ ਸਾਡੇ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਗਈ ਡੇਟਾਬੇਸ ਸਾਰਣੀ ਦਾ ਕੋਡ ਪ੍ਰਤੀਨਿਧਤਾ ਹੈ (ਮਾਈਗਰੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ) ਅਸੀਂ ਇਸਨੂੰ "ਨਜ਼ਦੀਕੀ" ਖੋਜਾਂ ਲਈ ਡੇਟਾਬੇਸ ਪੁੱਛਣ ਲਈ ਵਰਤਾਂਗੇ.

ਇਸਤੋਂ ਪਹਿਲਾਂ ਕਿ ਅਸੀਂ ਅਜਿਹਾ ਕਰ ਸਕੀਏ, ਸਾਨੂੰ ਕਰੀਬ ਨਿਰਦੇਸ਼-ਅੰਕ ਲੱਭਣ ਲਈ ਇੱਕ ਢੰਗ ਦੀ ਲੋੜ ਹੈ. ਖੋਜਣਯੋਗ ਪੁਆਇੰਟ ਫੰਕਸ਼ਨ ਇੱਕ ਕੱਚੀ ਨਿਰਦੇਸ਼-ਅੰਕ ਵਾਲੀ ਸਤਰ ਲੈਂਦਾ ਹੈ ਅਤੇ ਸਤਰ ਦੇ ਮੂਹਰ ਤੋਂ ਵਿਕਲਪਿਕ - ਨੂੰ ਹਟਾਉਣ ਨਾਲ ਇੱਕ ਪੂਰਨ ਫਲੈਟ ਮੁੱਲ ਤਿਆਰ ਕਰਦਾ ਹੈ. ਫਿਰ, ਇਹ ਕੋਆਰਡੀਨੇਟ ਸਤਰ ਦੇ ਪਹਿਲੇ 8 ਅੱਖਰ ਦਿੰਦਾ ਹੈ. ਇਹ ਛੋਟਾ ਹੋਵੇਗਾ -33 872527399999996 ਤੋ 33. 872527 . ਫਿਰ ਅਸੀਂ ਇੱਕ ਐਸਐਸਯੂਐਲ "ਕਿੱਥੇ ਚਾਹੁੰਦੇ ਹਾਂ" ਧਾਰਾ ਵਿੱਚ ਇਹ 8 ਅੱਖਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ, ਜੋ ਇੱਕੋ ਜਿਹੀਆਂ ਕੋਆਰਡੀਨੇਟ ਸਤਰਾਂ ਦੇ ਨਾਲ ਸਾਰੀਆਂ ਖੋਜਾਂ ਨੂੰ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ.

ਐਡੋਨੀਜ ਐਸ ਐਸ ਐਸਸੀਨਕ ਅਤੇ ਬਹੁਤ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸ਼ਬਦਾਂ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ ਦੀ ਖੋਜ ਕਰੋ ਪੁਆਇੰਟ ਦੇ ਵਾਅਦੇ ਵਾਅਦੇ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਅਸੀਂ ਉਡੀਕ ਕਰ ਸਕਦੇ ਹਾਂ ਜਦੋਂ ਵੀ 100% ਅਸਿੰਕਰੋਨਸ ਕੋਡ ਲਿਖ ਰਹੇ ਹਨ.

ਮੈਂ ਐਡੋਨਿਜ਼ਜ ਦੇ ਬਹੁਤ ਸਾਰੇ ਵੇਰਵਿਆਂ ਨੂੰ ਛੱਡ ਰਿਹਾ ਹਾਂ, ਜੋ ਮੈਨੂੰ ਸੱਚਮੁੱਚ ਕਰਨਾ ਪਸੰਦ ਨਹੀਂ ਕਰਦਾ. ਜੇ ਤੁਸੀਂ ਇਸ ਹਿੱਸੇ ਨਾਲ ਸੰਘਰਸ਼ ਕਰ ਰਹੇ ਹੋ; ਟਵਿੱਟਰ 'ਤੇ ਮੇਰੇ ਨਾਲ ਗੱਲ ਕਰੋ, ਅਤੇ ਸਹੀ ਦਿਸ਼ਾ ਵਿੱਚ ਤੁਹਾਨੂੰ ਮੀਮੈਂਟਟ ਪੁਆਇੰਟ.

ਨਜ਼ਦੀਕੀ ਸਥਾਨਾਂ ਨੂੰ ਮੇਲ ਕਰਨਾ

ਹੁਣ ਸਾਨੂੰ "ਨੇੜਲੇ" ਸਥਾਨ ਮਿਲ ਗਏ ਹਨ, ਅਸੀਂ ਉਨ੍ਹਾਂ ਦੇ ਮੁਕਾਬਲਤਨ ਦੂਰੀ ਦੀ ਤੁਲਨਾ ਉਸ ਜਗ੍ਹਾ ਨਾਲ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿੱਥੇ ਯੂਜ਼ਰ ਮੌਜੂਦ ਹੈ. ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਵੀ Google API ਕੁੰਜੀ ਨਹੀਂ ਹੈ, ਤਾਂ ਇੱਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ ਤੇ ਜਾਓ. ਅਸੀਂ ਗੂਗਲ ਡਿਸਟੈਨਟ ਮਿਡਲ ਸੇਵਾ ਦੇ ਬਣਨ ਜਾ ਰਹੇ ਹਾਂ:

     https: // ਨਕਸ਼ੇ. googleapis com / maps / api / distancematrix / json? ↵ਮੋਡ = ਤੁਰਨਾ & ↵ਯੂਨਿਟ = ਮੈਟ੍ਰਿਕ & ↵ਮੂਲ = -33 872527399999996,18 633 9 64 ਅਤੇ ↵ਮੁਕਾਮਾਂ = -33 872527399999997,18 633 9 65 ਅਤੇ ↵ਕੀ = YOUR_API_KEY    

ਡਿਸਟੈਨਸ ਮਿਡਲ ਸਰਵਿਸ ਅਸਲ ਵਿੱਚ ਮਲਟੀਪਲ ਅਰਲਡਸ ਦੀ ਮਨਜ਼ੂਰੀ ਦਿੰਦੀ ਹੈ, ਇਸ ਲਈ ਅਸੀਂ ਆਪਣੀਆਂ ਪਿਛਲੀਆਂ ਸਾਰੀਆਂ ਖੋਜਾਂ ਨੂੰ ਇੱਕ ਲੰਮੀ ਮੂਲ ਸਤਰ ਵਿੱਚ ਜੋੜ ਸਕਦੇ ਹਾਂ:

     ਸੰਖੇਪ ਘਟਾਓ ਖੋਜ = (ਐੱਕ, ਖੋਜ) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਖੋਜ`$ {acc} | $ {ਵਿਤਰਕ}, $ {ਲੰਬਕਾਰ}` ਤੇ ਵਾਪਸ ਆਓ}ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   // ਖੋਜ ਪ੍ਰਾਪਤ ਕਰੋconst ਆਰੰਭ = ਖੋਜ TOJSON    ਘਟਾਓ (ਘਟਾਓ ਖੋਜ, ""). substr   // ਕੰਸੋਲ ਲਾਗ (ਮੂਲ)ਜਵਾਬ. ਭੇਜੋ ("ਕੀਤਾ")// ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਨਾਲ ਕੁਝ ਕਰੋ})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਅਸੀਂ ਖੋਜ ਨਤੀਜਿਆਂ ਨੂੰ ਐਰੇਜ਼ ਆਫ ਅਲਾਇੰਸਜ਼ ਵਿੱਚ ਤਬਦੀਲ ਕਰ ਸਕਦੇ ਹਾਂ. ਇਹ ਫਾਇਦੇਮੰਦ ਹੈ ਕਿਉਂਕਿ ਅਸੀਂ ਐਰੇ ਨੂੰ ਘਟਾ ਸਕਦੇ ਹਾਂ, ਹਰ ਖੋਜ ਦੇ ਵਿਥਕਾਰ ਅਤੇ ਲੰਬਕਾਰ ਨੂੰ ਸਤਰ ਵਿਚ ਮਿਲਾ ਰਹੇ ਹਾਂ. ਇਹ ਸਟ੍ਰਿੰਗ ਇੱਕ ਨਾਲ ਸ਼ੁਰੂ ਹੋਵੇਗੀ , ਇਸ ਲਈ ਸਾਨੂੰ ਸੂਚਕਾਂਕ 1 ਤੋਂ ਸ਼ੁਰੂ ਕਰਨ ਵਾਲੀ ਸਟ੍ਰਿੰਗ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ.

ਮੈਂ ਬ੍ਰਾਉਜ਼ਰ ਦੇ ਪ੍ਰਸ਼ੰਸਕ ਹਾਂ ਫੈਚ ਏਪੀਆਈ, ਇਸ ਲਈ ਆਓ ਇੱਕ ਨੋਡਜੇਸ ਪੌਲੀਫਿਲ ਸਥਾਪਿਤ ਕਰੀਏ:

     npm ਇੰਸਟਾਲ --save ਨੋਡ-ਫੈਚ-ਪੌਲੀਫ਼ਿਲ    

ਇਸ ਪੌਲੀਫਿਲ ਦੀ ਵਰਤੋਂ ਨਾਲ, ਅਸੀਂ Google ਤੋਂ ਦੂਰੀਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ:

     "ਸਖਤੀ ਵਰਤੋ"const fet = ਵਰਤੋਂ ("ਨੋਡ-ਫੈਚ-ਪੌਲੀਫ਼ਿਲ")const env = use ("env")const ਰੂਟ = ਵਰਤੋਂ ("ਰੂਟ")const ਖੋਜ = ਵਰਤੋਂ ("ਐਪ / ਮਾੱਡਲ / ਖੋਜ")ਸੰਧੀ ਖੋਜਣ ਯੋਗ = (ਕੱਚਾ, ਅੱਖਰ = 8) => {// }const ਘਟਾਓ ਸਿੱਖੋ = (ਐੱਕ, ਖੋਜ) => {// }ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   // ਮੂਲ ਲਵੋconst ਕੀ = ਐਨਵ. ਪ੍ਰਾਪਤ ਕਰੋ ("GOOGLE_KEY")const distanceResponse = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ (`https: // maps. com / maps / api / distancematrix / json? ↵ਮੋਡ = ਤੁਰਨ ਅਤੇ ਇਕਾਈਆਂ = ਮੈਟ੍ਰਿਕ ਅਤੇ ਮੂਲ = $ {ਮੂਲ} & ↵ਨਿਸ਼ਾਨੇ = $ {ਵਿਥਕਾਰ}, $ {ਲੰਬਕਾਰੀ} ਅਤੇ ਕੀ = $ {ਕੁੰਜੀ} `,)const distanceData = ਦੂਰੀ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈਰੰਗਪੈਂਨਸ. ਜੇਸਨ   // ਕੰਸੋਲ ਲਾਗ (ਦੂਰੀਡਾਟਾ)ਜਵਾਬ. ਭੇਜੋ ("ਕੀਤਾ")// ਡੇਟਾ ਦੇ ਨਾਲ ਕੁਝ ਕਰੋ})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਫਾਂਚ ਇਕ ਵਾਅਦਾ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਅਸੀਂ ਉਡੀਕ ਕਰ ਸਕਦੇ ਹਾਂ ਇਸ ਨੂੰ. ਜਵਾਬ ਵਿੱਚ ਇੱਕ ਜੇਸਨ ਵਿਧੀ ਹੈ, ਜੋ ਇੱਕ JSON ਅਰੇ ਜਾਂ ਔਬਜੈਕਟ ਵਿੱਚ ਕੱਚਾ ਪ੍ਰਤੀਕ੍ਰਿਆ ਨੂੰ ਲੜੀਬੱਧ ਕਰਦੀ ਹੈ. ਫਿਰ ਮਿਲਾਉਣ ਦੇ ਸਾਂਝੇ ਨਿਰਦੇਸ਼ਾਂ (ਹਰ ਜਗ੍ਹਾ ਰਿਮੋਟਲੀ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਵਰਗੇ) ਦੇ ਦਿਓ, ਸਾਨੂੰ ਸਾਰੀਆਂ ਦੂਰੀਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਹੁੰਦੀ ਹੈ. ਜਵਾਬ ਆਬਜੈਕਟ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਹਨ ਜਿਵੇਂ ਕਿ ਮੂਲ ਨਿਰਦੇਸ਼ਕ. ਇਹ ਜਾਰੀ ਰਹੇਗਾ ਜਿਵੇਂ ਅਸੀਂ ਜਾਰੀ ਰੱਖਦੇ ਹਾਂ .

ਐਡੋਨੀਜਜ ਆਪਣਾ ਖੁਦ ਮੁਹੱਈਆ ਕਰਦਾ ਹੈ . env ਫਾਇਲ ਸਹਿਯੋਗ ਅਸੀਂ ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ env ਨੂੰ ਛੱਡ ਸਕਦੇ ਹਾਂ. ਉਦਾਹਰਨ. ਜੇ ਐਸ ਅਤੇ ਈ. ਜੇ ਐਸ ਫਾਈਲਾਂ; ਅਤੇ ਸਿਰਫ ਵਰਤੋ. ਅਤੇ env ਉਦਾਹਰਨ ਉਹ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹਨ. ਮੈਂ ਤੁਹਾਨੂੰ GOOGLE_KEY ਜੋੜਿਆ ਹੈ, ਜਿਵੇਂ ਕਿ ਤੁਹਾਨੂੰ ਚਾਹੀਦਾ ਹੈ ਫਿਰ ਅਸੀਂ ਐਨਵਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ. ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪ੍ਰਾਪਤ ਕਰੋ

ਅਸੀਂ ਨਤੀਜਿਆਂ ਦੀ ਛਾਣਬੀਣ ਕਰ ਸਕਦੇ ਹਾਂ ਕਿ ਕੀ ਇਹਨਾਂ ਵਿਚੋਂ ਕੋਈ ਵੀ ਬੇਨਤੀ ਕੀਤੇ ਨਿਰਦੇਸ਼ਾਂ ਦੇ 10 ਮੀਟਰ ਦੀ ਦੂਰੀ ਦੇ ਅੰਦਰ ਹੈ:

     ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   // ਦੂਰੀ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰੋਲਈ (ਮੈਨੂੰ ਦੂਰੀਡਾਟਾ ਦੀਆਂ ਕਤਾਰਾਂ ਵਿੱਚ ਦਿਉ) {const {elements} = ਦੂਰੀਡਾਟਾ ਕਤਾਰ [i]ਜੇ (ਤੱਤ ਦੇ ਤੱਤ [0] === "ਅਣਪਛਾਰੇ") {ਜਾਰੀ ਰੱਖੋ}ਜੇ (ਤੱਤ [0]. ਹਾਲਤ! == "ਠੀਕ ਹੈ") {ਜਾਰੀ ਰੱਖੋ}const matches = ਤੱਤ [0]. ਦੂਰੀ ਪਾਠ ਮੈਚ (/ ([0-9] +) \ s + m /)if (matches === null || parseInt (matches [1], 10)> 10) {ਜਾਰੀ ਰੱਖੋ}ਜਵਾਬ. json (ਜੇਸਨ. ਪਾਰਸ (ਖੋਜ ਕਰੋ [i]. ਜਵਾਬ)ਵਾਪਸੀ}// ਕੈਚ ਨਤੀਜਾ ਨਹੀਂ ਮਿਲਿਆ, ਨਵਾਂ ਡਾਟਾ ਲਿਆਓ!})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਅਸੀਂ ਦੂਰੀ ਦੀਆਂ ਕੁਝ ਕੜੀਆਂ ਕਰ ਕੇ ਦੂਰੀ ਦੀਆਂ ਕਤਾਰਾਂ ਰਾਹੀਂ ਲੂਪ ਕਰ ਸਕਦੇ ਹਾਂ. ਜੇ ਮੂਲ ਨਿਰਦੇਸ਼ ਅੰਕ ਅਵੈਧ ਹਨ, ਤਾਂ ਦੂਜੀ ਸਿਮਟ ਸੇਵਾ ਉਸ ਕਤਾਰ ਲਈ ਇੱਕ ਗਲਤੀ ਵਾਪਸ ਕਰ ਸਕਦੀ ਹੈ ਜੇ ਤੱਤ ਗਲਤ ਹਨ (ਅਣਪਛਾਤੇ ਜਾਂ ਗਲਤ) ਤਾਂ ਅਸੀਂ ਕਤਾਰ ਨੂੰ ਛੱਡਦੇ ਹਾਂ

ਜੇ ਇੱਕ ਸਹੀ ਮਾਪ ਹੈ (ਜੋ ਕਿ nm ਦੇ ਰੂਪ ਵਿੱਚ ਹੈ, ਜਿੱਥੇ 1 - 10 ਹੈ); ਤਦ ਅਸੀਂ ਉਸ ਕਤਾਰ ਦੇ ਜਵਾਬ ਨੂੰ ਵਾਪਸ ਕਰਦੇ ਹਾਂ ਸਾਨੂੰ ਨਵੇਂ ਸ਼ਰਨਾਰਥੀ ਡੇਟਾ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ. ਸੰਭਾਵਿਤ ਘਟਨਾ ਵਿੱਚ ਸਾਡੇ ਕੋਲ ਕੋਈ ਨੇੜਲੇ ਕੋਆਰਡੀਨੇਟ ਕੈਸ਼ ਨਹੀਂ ਹੈ; ਅਸੀਂ ਨਵੇਂ ਡੈਟਾ ਦੀ ਬੇਨਤੀ ਕਰ ਸਕਦੇ ਹਾਂ:

     ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਖੋਜ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   // ਕੈਚ ਕੀਤੇ ਡੇਟਾ ਲਈ ਜਾਂਚ ਕਰੋਕੰਨ ਤੀਬਰਤਾ = ਉਡੀਕ ਲਿਆ (ਉਡੀਕ ਕਰੋ)`https: // www. ਸ਼ਰਨਾਰਥੀਆਂ org / api / v1 / restrooms / by_location. ਜੇਸਨ? ↵lat = $ {latitude} ਅਤੇ lng = $ {ਲੰਬਕਾਰ} `,)ਕੰਨ ਤੀਬਰਤਾ = ਉਡੀਕ ਕਰੋ ਜੇਸਨ   ਖੋਜ ਦੀ ਉਡੀਕ ਕਰੋ ਬਣਾਓ ({ਅਕਸ਼ਾਂਸ਼,ਲੰਬਕਾਰ,ਜਵਾਬ: JSON ਸਰਾਪ (ਸ਼ਰਨਾਰਥੀਡੇਟਾ),})ਜਵਾਬ. ਜੇਸਨ (ਰਫਿਊਡਰਡਾਟਾ)ਵਾਪਸੀ})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਜੇ ਕੋਈ ਕੈਚ ਕੀਤੀਆਂ ਖੋਜਾਂ ਨਹੀਂ ਹਨ, ਤਾਂ ਅਸੀਂ ਸ਼ਰਨਾਰਥੀ ਪਰਿਣਾਮਾਂ ਦੇ ਨਵੇਂ ਸੈਟ ਲਈ ਬੇਨਤੀ ਕਰਦੇ ਹਾਂ. ਅਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਅਨਿਰਾਰਿਤ ਕਰ ਸਕਦੇ ਹਾਂ; ਪਰ ਡਾਟਾਬੇਸ ਨੂੰ ਖੋਜ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨਹੀਂ. ਪਹਿਲੀ ਬੇਨਤੀ ਪਿਛਲੀ ਬੇਨਤੀਆਂ ਨਾਲੋਂ ਮਾਮੂਲੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ. ਅਸੀਂ ਅਵੱਸ਼ਕ ਡਿਫਾਲਟ ਸਿਮਟਾਲ API ਤੇ ਸ਼ਰਨ API ਪ੍ਰਾਸੈਸਿੰਗ ਨੂੰ ਆਫਲੋਡਿੰਗ ਕਰ ਰਹੇ ਹਾਂ. ਸਾਡੇ ਕੋਲ ਕੋਰੋਸ ਅਨੁਮਤੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦਾ ਇਕ ਤਰੀਕਾ ਵੀ ਹੈ, ਹੁਣ.

ਬ੍ਰਾਉਜ਼ਰ ਵਿੱਚ ਨਤੀਜੇ ਪ੍ਰਾਪਤ ਕਰਨਾ

ਆਉ ਅਸੀਂ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਇਸ ਡੇਟਾ ਨੂੰ ਵਰਤਣਾ ਸ਼ੁਰੂ ਕਰੀਏ. ਇੱਕ ਪਾਰਸਲ ਜੇ ਐਸ ਬਿਲਡ ਚੇਨ ਸਥਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ (ਜਾਂ ਪਿਛਲੇ ਟਿਊਟੋਰਿਯਲ ਤੇ ਵਾਪਸ ਦੇਖੋ ਜਿੱਥੇ ਅਸੀਂ ਇਹ ਕੀਤਾ). ਇਸ ਵਿੱਚ ਇੱਕ ਐਪ ਵਿੱਚ WRLD SDK ਨੂੰ ਸਥਾਪਿਤ ਅਤੇ ਲੋਡ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ. ਜੇ ਐਸ ਫਾਈਲ. js ")const tester = async => {ਸੰਕਰੀ ਜਵਾਬ = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ ("http: // 127 0. 0. 1: 3333 / ਖੋਜ? ↵ਅਕਸ਼ਾਂਸ਼ = -33 872527399999996 ਅਤੇ ਲੰਬਕਾਰ = 18 633 9 64 ",)ਕਾਂਸਟ ਡੇਟਾ = ਉਡੀਕ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ. ਜੇਸਨ ਕੰਸੋਲ ਲਾਗ (ਡੇਟਾ)}ਟੈਸਟਰ

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਤੁਸੀਂ ਇਸ ਨੂੰ ਹੇਠ ਲਿਖੀਆਂ ਕਮਾਂਡਾਂ ਨਾਲ ਜੋੜ ਸਕਦੇ ਹੋ:

     ਪਾਰਸਲ ਸੂਚਕਾਂਕ. html    

ਤੁਹਾਡਾ ਫੋਲਡਰ ਬਣਤਰ ਇਸ ਤਰ੍ਹਾਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ:

Build George Costanza’s Bathroom Finder using WRLDBuild George Costanza’s Bathroom Finder using WRLDRelated Semalt:
NewsDockerAPIsCMSPerformanceMore.

ਪਿਛਲੇ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ, ਅਸੀਂ ਉਹੀ ਫੋਲਡਰ ਬਣਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਬਣਾਇਆ ਹੈ. ਤੁਸੀਂ ਐਪ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਬਦਲਣ ਦੇ ਨਾਲ ਨਾਲ, ਇਸ ਸਭ ਦੀ ਨਕਲ ਕਰ ਸਕਦੇ ਹੋ. ਜੇ ਐਸ ਜੋ ਤੁਸੀਂ ਉਪਰ ਵੇਖਦੇ ਹੋ ਟੈਸਟਰ ਫੰਕਸ਼ਨ ਦਰਸਾਉਣਾ ਹੈ ਕਿ ਅਸੀਂ ਹਾਲੇ ਤੱਕ ਸਾਡੇ ਕੈਚਿੰਗ ਪ੍ਰੌਕਸੀ ਸਰਵਰ ਤੋਂ ਡੇਟਾ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕਰ ਸਕਦੇ. ਇਸਦੇ ਲਈ, ਸਾਨੂੰ ਐਡੋਨਿਜ਼ ਐਸੋਰਸ ਪਰਤ ਨੂੰ ਯੋਗ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:

     "ਸਖਤੀ ਵਰਤੋ"ਮੋਡੀਊਲ ਨਿਰਯਾਤ = {/ *| ------------------------------------------------- -------------------------| ਮੂਲ| ------------------------------------------------- -------------------------|| ਮੂਲ ਹੋਣ ਦੀ ਇੱਕ ਸੂਚੀ ਨਿਰਧਾਰਤ ਕਰੋ . * /ਮੂਲ: ਸਹੀ,// ਬਾਕੀ CORS ਸੈਟਿੰਗਜ਼}    

ਇਹ ਪ੍ਰੌਕਸੀ / config / cors ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਜੇਕਰ ਅਸੀਂ ਮੂਲ ਤੋਂ ਸਹੀ ਸੈਟ ਕਰਦੇ ਹਾਂ, ਤਾਂ ਸਾਰੇ CORS ਬੇਨਤੀ ਸਫਲ ਹੋਣਗੇ. ਉਤਪਾਦਨ ਦੇ ਮਾਹੌਲ ਵਿੱਚ, ਤੁਸੀਂ ਸ਼ਾਇਦ ਇੱਕ ਬੰਦ ਪ੍ਰਦਾਨ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਜੋ ਸ਼ਰਤ ਅਨੁਸਾਰ ਸਹੀ ਕਰ ਦਿੰਦਾ ਹੈ; ਤਾਂ ਜੋ ਤੁਸੀਂ ਇਸ API ਨੂੰ ਬੇਨਤੀ ਕਰਨ ਵਾਲੇ ਨੂੰ ਸੀਮਤ ਕਰ ਸਕੋ.

ਜੇਕਰ ਤੁਸੀਂ ਬ੍ਰਾਉਜ਼ਰ ਨੂੰ ਰਿਫਰੈਸ਼ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਉਸ URL ਲਈ ਖੁੱਲ੍ਹਾ ਹੁੰਦਾ ਹੈ ਜਿਸਨੂੰ ਸੇਮਟਜ ਐਸ ਐਸ ਸੇਵਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ; ਤੁਹਾਨੂੰ ਹੁਣ ਕੰਸੋਲ ਵਿੱਚ ਨਤੀਜੇ ਵੇਖਣ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ:

Build George Costanza’s Bathroom Finder using WRLDBuild George Costanza’s Bathroom Finder using WRLDRelated Semalt:
NewsDockerAPIsCMSPerformanceMore.

ਉਸ ਚੇਤਾਵਨੀ ਵੱਲ ਧਿਆਨ ਨਾ ਦਿਓ ਇਹ ਸਿਰਫ ਇਕ ਪਲ ਲਈ ਪਾਰਸਲ ਜੇ ਐਸ ਹਾਟ ਮੈਡੀਊਲ ਸਮਾਲ ਹੈ .

ਇਸ ਬਿੰਦੂ ਤੋਂ ਅੱਗੇ, ਅਸੀਂ ਕੋਚਿੰਗ ਪ੍ਰੌਕਸੀ ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਾਂ ਤਾਂ ਜੋ ਕੋਆਰਡੀਨੇਟਸ ਦੇ ਸਮੂਹ ਨੂੰ ਨੇੜੇ ਦੀਆਂ ਸਹੂਲਤਾਂ ਦਾ ਪਤਾ ਲਗਾਇਆ ਜਾ ਸਕੇ. ਮਿਡਲ ਨੂੰ ਮਿਲਾਓ!

ਡਬਲਿਊ. ਆਰ. ਡੀ. ਡੀ.

ਨਾਲ ਜੋੜਨਾ

ਆਓ env ਨੂੰ ਜੋੜ ਕੇ ਸ਼ੁਰੂ ਕਰੀਏ. ਜੇ ਐਸ ਅਤੇ ਈ. ਉਦਾਹਰਨ. ਜੇ.ਐਸ. ਫਾਈਲਾਂ, ਪਹਿਲੇ ਟਿਊਟੋਰਿਅਲ ਤੋਂ ਐਪੀਪ ਫੋਲਡਰ ਤੱਕ. ਫਿਰ ਅਸੀਂ ਇਹਨਾਂ ਨੂੰ ਫਿਰ ਨਕਸ਼ਾ ਦੇਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹਾਂ:

     ਕਾਂਸਟ wrld = require ("wrld js")const env = ਲੋੜ (". / env")const ਕੁੰਜੀਆਂ = {wrld: env. WRLD_KEY,}// ਟੈਸਟਰ ਕੋਡਵਿੰਡੋ addEventListener ("ਲੋਡ", async    => {const map = Wrld. ਮੈਪ ("ਨਕਸ਼ਾ", ਕੁੰਜੀਆਂ. wrld, {ਕੇਂਦਰ: [40. 7484405, -73 98566439999999],ਜ਼ੂਮ: 15,})})    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਇੱਥੇ ਅਸੀਂ ਐਮਪਾਇਰ ਸਟੇਟ ਬਿਲਡਿੰਗ ਤੇ ਵਾਪਸ ਹਾਂ. ਇਹ ਬਿਹਤਰ ਹੋਵੇਗਾ ਜੇ ਅਸੀਂ ਕਿਸੇ ਹੋਰ ਉਪਭੋਗਤਾ ਦੇ ਨੇੜਲੇ ਤੌਰ ' ਅਤੇ, ਜੇ ਅਸੀਂ ਕਸਟਮ ਨਿਰਦੇਸ਼-ਅੰਕ ਦੇ ਨਾਲ ਭੂਗੋਲਿਕ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਦਾ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੇ ਹਾਂ ਆਉ ਅਸੀਂ HTML5 ਜਿਓਲੋਕੇਸ਼ਨ API ਵਿਚ ਟੈਪ ਕਰੀਏ:

     ਵਿੰਡੋ. addEventListener ("ਲੋਡ", async    => {ਨਕਸ਼ੇ ਨੂੰ ਦੱਬੋਨੇਵੀਗੇਟਰ ਜਿਓਲੋਕੇਸ਼ਨ getCurrentPosition (ਸਥਿਤੀ => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਸਥਿਤੀ ਕੋਆਰਡਸmap = Wrld ਮੈਪ ("ਨਕਸ਼ਾ", ਕੁੰਜੀਆਂ. wrld, {ਕੇਂਦਰ: [ਵਿਥਕਾਰ, ਲੰਬਕਾਰਤਾ],ਜ਼ੂਮ: 15,})},error => {map = Wrld ਮੈਪ ("ਨਕਸ਼ਾ", ਕੁੰਜੀਆਂ. wrld, {ਕੇਂਦਰ: [40. 7484405, -73 98566439999999],ਜ਼ੂਮ: 15,})},)})    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਅਸੀਂ ਉਪਭੋਗਤਾ ਦੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅੰਦਾਜਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ getCurrentPosition ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹਾਂ. ਜੇਕਰ ਉਪਭੋਗਤਾ ਭੂਗੋਲਿਕੇਸ਼ਨ ਡੇਟਾ ਲਈ ਬੇਨਤੀ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਜਾਂ ਕੁਝ ਹੋਰ ਗਲਤ ਹੋ ਗਿਆ ਹੈ, ਤਾਂ ਅਸੀਂ ਜਾਣੇ-ਪਛਾਣੇ ਨਿਰਦੇਸ਼ਾਂ ਦੇ ਸਮੂਹ ਨੂੰ ਡਿਫੌਲਟ ਕਰ ਸਕਦੇ ਹਾਂ.

ਮੀਮੈਂਟਲ ਕੋਈ ਦਸਤਾਵੇਜ਼ੀ ਗਲਤੀ ਦਲੀਲ ਨਹੀਂ, ਪਰ ਮੈਂ ਕੋਡ ਨੂੰ ਸਪਸ਼ਟ ਕਰਨ ਲਈ ਪੈਰਾਮੀਟਰ ਨੂੰ ਪਾਉਣਾ ਪਸੰਦ ਕਰਦਾ ਹਾਂ.

ਇਹ ਆਟੋਮੈਟਿਕ ਸਥਾਨ ਦੀ ਖੋਜ ਦਾ ਧਿਆਨ ਰੱਖਿਆ ਗਿਆ ਹੈ. / ਐਪ js ">

ਇਹ ਐਪ / ਇੰਡੈਕਸ ਤੋਂ ਹੈ. html

    . ਕੰਟਰੋਲ {ਸਥਿਤੀ: ਸੰਪੂਰਨ;ਸਿਖਰ: 0;ਸੱਜੇ: 0;ਪਿੱਠਭੂਮੀ: rgba (255, 255, 255, 0. 5);ਪੈਡਿੰਗ: 10 ਪੈਕਸ;}    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ CSS

     ਵਿੰਡੋ. addEventListener ("ਲੋਡ", async    => {ਨਕਸ਼ੇ ਨੂੰ ਦੱਬੋconst ਅਕਸ਼ਾਂਸ਼ ਇਨਪੁੱਟ = ਦਸਤਾਵੇਜ਼. ਸਵਾਲ-ਚੋਣਕਾਰ ("[name = 'latitude']")const ਲੰਬਵਾਰਕ ਇੰਪੁੱਟ = ਦਸਤਾਵੇਜ਼. ਸਵਾਲ-ਚੋਣਕਾਰ ("[ਨਾਂ = 'ਲੰਬਕਾਰ']")const ਐਪਲੀਕੇਸ਼ਨਬਟਨ = ਦਸਤਾਵੇਜ਼. ਸਵਾਲ-ਚੋਣਕਾਰ ("[ਨਾਮ = 'ਲਾਗੂ']")ਲਾਗੂ ਕਰੋਬਟਨ addEventListener ("ਦਬਾਓ",    => {ਨਕਸ਼ਾ setView ([ਅਕਸ਼ਾਂਸ਼ ਇਨਪੁਟ. ਮੁੱਲ, ਲੰਬਕਾਰ ਇਨਪੁਟ. ਮੁੱਲ])})ਨੇਵੀਗੇਟਰ ਜਿਓਲੋਕੇਸ਼ਨ getCurrentPosition (ਸਥਿਤੀ => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਸਥਿਤੀ ਕੋਆਰਡਸlatitudeInput ਮੁੱਲ = ਵਿਥਕਾਰਲੰਬਕਾਰਾ ਇੰਪੁੱਟ ਮੁੱਲ = ਲੰਬਣਾmap = Wrld ਮੈਪ ("ਨਕਸ਼ਾ", ਕੁੰਜੀਆਂ. wrld, {ਕੇਂਦਰ: [ਵਿਥਕਾਰ, ਲੰਬਕਾਰਤਾ],ਜ਼ੂਮ: 15,})},error => {map = Wrld ਮੈਪ ("ਨਕਸ਼ਾ", ਕੁੰਜੀਆਂ. wrld, {ਕੇਂਦਰ: [40. 7484405, -73 98566439999999],ਜ਼ੂਮ: 15,})},)})    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਅਸੀਂ ਨਵੇਂ ਇੰਪੁੱਟ ਤੱਤ ਜੋ ਅਸੀਂ ਜੋੜਦੇ ਹਾਂ, ਦੇ ਹਵਾਲੇ ਲੈ ਕੇ ਸ਼ੁਰੂ ਕਰਦੇ ਹਾਂ. ਜਦੋਂ ਲਾਗੂ ਹੋਵੇਬਟਨ ਨੂੰ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ, ਅਸੀਂ ਨਕਸ਼ੇ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ. ਜਦੋਂ ਭੂਗੋਲਿਕੇਸ਼ਨ ਡੇਟਾ ਸਫ਼ਲ ਹੁੰਦਾ ਹੈ, ਅਸੀਂ ਇਹਨਾਂ ਇਨਪੁਟ ਨੂੰ ਢੁਕਵੇਂ ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਨਾਲ ਭਰ ਸਕਦੇ ਹਾਂ.

ਹੁਣ, ਨੇੜਲੇ ਸੁਵਿਧਾ ਇਮਾਰਤਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਨ ਬਾਰੇ ਕਿਵੇਂ?

     ਦਾ ਨਕਸ਼ਾ ਦਿਉਹਾਈਲਾਈਟ ਕਰੋ ਫੀਕਤਸ = []const highlightFacilities = async (ਵਿਥਕਾਰ, ਲੰਬਕਾਰ) => {(ਮੁੱਖ ਉਦੇਸ਼ਾਂ ਦੀ ਸਹੂਲਤ ਦਿਉ) {ਸਹੂਲਤ ਹਟਾਓ   }ਹਾਇਲਾਇਟਡ ਫਾਸਿਲਿਟੀਜ਼ = []const facilitiesResponse = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ (`http: // 127. 0. 0. 1: 3333 / ਖੋਜ? ਅਕਸ਼ਾਂਸ਼ = $ {ਅਕਸ਼ਾਂਸ਼} ਅਤੇ ਲੰਬਕਾਰ = $ {ਲੰਬਕਾਰ} `,)ਕੰਾਸ ਸਹੂਲਤ ਡਾਟਾ = ਸਹੂਲਤਾਂ ਦੀ ਉਡੀਕ ਕਰੋ. ਜੇਸਨ   ਲਈ (ਸਹੂਲਤ ਦੀ ਸਹੂਲਤ ਦਿਉ) {// ਕੰਸੋਲ ਲਾਗ (ਸਹੂਲਤ)const col =ਸਹੂਲਤ upvote> = ਸਹੂਲਤ ਡਾਊਨਵੋਟ? [125, 255, 125, 200]: [255, 125, 125, 200]Const highlight = Wrld. ਇਮਾਰਤਾ ਬਿਲਡਿੰਗਹਾਈਲਾਟ (ਰਿਬਲੈਂਡ ਇਮਾਰਤਾ buildingHighlight ਚੋਣਾਂ    ਹਾਈਲਾਈਟ ਬਿਲਡਿੰਗਟੇਬ ਸਥਾਨ ([ਸਹੂਲਤ ਅਕਸ਼ਾਂਸ਼,ਸਹੂਲਤ ਲੰਬਕਾਰ,]). ਰੰਗ (ਰੰਗ),). addTo (ਮੈਪ)ਹਾਈਲਾਈਟ ਫੀਚੀਆਂ ਧੱਕੋ (ਹਾਈਲਾਈਟ)}}ਵਿੰਡੋ addEventListener ("ਲੋਡ", async    => {// ਬਟਨ ਇਵੈਂਟ ਸ਼ਾਮਲ ਕਰੋਨੇਵੀਗੇਟਰ ਜਿਓਲੋਕੇਸ਼ਨ getCurrentPosition (ਸਥਿਤੀ => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਸਥਿਤੀ ਕੋਆਰਡਸ// ਨਕਸ਼ਾ ਬਣਾਓਨਕਸ਼ਾ ("ਸ਼ੁਰੂਆਤੀ ਸਟ੍ਰੀਮਿੰਗ ਸੰਪੂਰਨ",    => {ਹਾਈਲਾਈਟ ਫਾਸਿਲਿਟੀਜ਼ (ਵਿਥਕਾਰ, ਲੰਬਕਾਰ)})},error => {// ਨਕਸ਼ਾ ਬਣਾਓਨਕਸ਼ਾ ("ਸ਼ੁਰੂਆਤੀ ਸਟ੍ਰੀਮਿੰਗ ਸੰਪੂਰਨ",    => {ਹਾਈਲਾਈਟ ਫੀਚੀਆਂ (40. 7484405, -73 .98566439 99 99 99)})},)})    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਜਦੋਂ ਅਸੀਂ ਨਕਸ਼ਾ ਬਣਾਉਂਦੇ ਹਾਂ, ਜਾਂ ਇਸਦੇ ਫੋਕਸ ਨੂੰ ਬਦਲਦੇ ਹਾਂ, ਅਸੀਂ ਹਾਈਲਾਈਟ ਫਾਚਿਲਿਟੀਜ਼ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰ ਸਕਦੇ ਹਾਂ. ਇਹ ਅਕਸ਼ਾਂਸ਼ ਅਤੇ ਲੰਬਕਾਰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਸਾਰੀਆਂ ਪਹਿਲਾਂ ਨੀਲੀ ਇਮਾਰਤਾਂ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ ਅਤੇ ਕੈਚਿੰਗ ਪ੍ਰੌਕਸੀ ਖੋਜ ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੀਆਂ ਸਾਰੀਆਂ ਇਮਾਰਤਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਦਾ ਹੈ.

50% ਜਾਂ ਵੱਧ ਉਪਵੈ-ਇੱਟਾਂ ਵਾਲੀਆਂ ਇਮਾਰਤਾਂ ਲਈ ਹਰੀ-ਹਾਈਲਾਈਟ ਦੀ ਚੋਣ ਕਰਨਾ; ਅਤੇ ਬਾਕੀ ਦੇ ਲਈ ਇੱਕ ਲਾਲ ਉਚਾਈ ਇਸ ਨਾਲ ਬਿਹਤਰ ਸਹੂਲਤਾਂ ਲੱਭਣਾ ਆਸਾਨ ਹੋ ਜਾਵੇਗਾ. ਅਸੀਂ ਉਜਾਗਰ ਬਿਲਡਿੰਗਾਂ ਨੂੰ ਥੋੜਾ ਜਿਹਾ ਸਪੱਸ਼ਟ ਕਰ ਸਕਦੇ ਹਾਂ; ਮੈਪ ਮਾਰਕਰ ਜੋੜ ਕੇ ਅਤੇ ਦਬਾਇਆ ਗਿਆ / ਦਬਾਉਣ ਤੇ ਪੋਪਅੱਪ ਦਿਖਾਓ:

     ਦਾ ਨਕਸ਼ਾ ਦਿਉਹਾਈਲਾਈਟ ਕਰੋ ਫੀਕਤਸ = []ਹਾਈਲਾਇਟਰਮੈਨਕਰਸ = []const highlightFacilities = async (ਵਿਥਕਾਰ, ਲੰਬਕਾਰ) => {(ਮੁੱਖ ਉਦੇਸ਼ਾਂ ਦੀ ਸਹੂਲਤ ਦਿਉ) {ਸਹੂਲਤ ਹਟਾਓ   }ਹਾਇਲਾਇਟਡ ਫਾਸਿਲਿਟੀਜ਼ = []ਲਈ (ਹਾਈਲਾਇਟਰ ਮਾਰਕਰਸ ਦਾ ਮਾਰਕਰ ਦਿਉ) {ਮਾਰਕਰ ਹਟਾਓ   }ਹਾਈਲਾਟਰ ਮਾਰਕਰਸ = []const facilitiesResponse = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ (`http: // 127. 0. 0. 1: 3333 / ਖੋਜ? ਅਕਸ਼ਾਂਸ਼ = $ {ਅਕਸ਼ਾਂਸ਼} ਅਤੇ ਲੰਬਕਾਰ = $ {ਲੰਬਕਾਰ} `,)ਕੰਾਸ ਸਹੂਲਤ ਡਾਟਾ = ਸਹੂਲਤਾਂ ਦੀ ਉਡੀਕ ਕਰੋ. ਜੇਸਨ   ਲਈ (ਸਹੂਲਤ ਦੀ ਸਹੂਲਤ ਦਿਉ) {const ਸਥਾਨ = [ਸਹੂਲਤ. ਅਕਸ਼ਾਂਸ਼, ਸਹੂਲਤ ਰੇਖਾਵਾਂ]// ਹਾਈਲਾਈਟ ਰੰਗ ਜੋੜੋconst ਅਦਾਨ-ਪ੍ਰਦਾਨ = ਨਕਸ਼ਾ ਇਮਾਰਤਾ findBuildingAtLatLng (ਸਥਾਨ)ਮਾਰਕਰ ਨੂੰ ਛੱਡੋਜੇ (ਲਾਂਘਾ ਲੱਭਿਆ) {ਮਾਰਕਰ = ਐਲ ਮਾਰਕਰ (ਸਥਾਨ, {ਉਚਾਈ: ਇੰਟਰਸੈਕਸ਼ਨ. ਬਿੰਦੂ alt,ਸਿਰਲੇਖ: ਸਹੂਲਤ ਨਾਮ,}). addTo (ਮੈਪ)} else {ਮਾਰਕਰ = ਐਲ ਮਾਰਕਰ (ਸਥਾਨ, {ਸਿਰਲੇਖ: ਸਹੂਲਤ ਨਾਮ,}). addTo (ਮੈਪ)}ਜੇ (ਸਹੂਲਤ ਟਿੱਪਣੀ) {ਮਾਰਕਰ ਬਿੰਦਪੋਪ (ਸਹੂਲਤ ਟਿੱਪਣੀ). openPopup   }ਹਾਈਲਾਟਰ ਮਾਰਕਰਸ ਪੁਸ਼ (ਮਾਰਕਰ)}}ਵਿੰਡੋ addEventListener ("ਲੋਡ", async    => {// ਬਟਨ ਇਵੈਂਟ ਸ਼ਾਮਲ ਕਰੋਨੇਵੀਗੇਟਰ ਜਿਓਲੋਕੇਸ਼ਨ getCurrentPosition (ਸਥਿਤੀ => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਸਥਿਤੀ ਕੋਆਰਡਸ// ਨਕਸ਼ਾ ਬਣਾਓਨਕਸ਼ਾ ("ਪੈਨੈਂਡ", ਇਵੈਂਟ => {const {lat, lng} = ਨਕਸ਼ਾ GetBounds    getCenter   latitudeInput ਮੁੱਲ = latਲੰਬਕਾਰਾ ਇੰਪੁੱਟ ਮੁੱਲ = lng})},error => {// ਨਕਸ਼ਾ ਬਣਾਓਨਕਸ਼ਾ ("ਪੈਨੈਂਡ", ਇਵੈਂਟ => {const {lat, lng} = ਨਕਸ਼ਾ GetBounds    getCenter   latitudeInput ਮੁੱਲ = latਲੰਬਕਾਰਾ ਇੰਪੁੱਟ ਮੁੱਲ = lng})},)})    

ਇਹ ਐਪ / ਐਪ ਤੋਂ ਹੈ ਜੇ ਐਸ

ਅਸੀਂ ਪੈਨਲ ਘਟਨਾਵਾਂ ਨੂੰ ਉਨ੍ਹਾਂ ਥਾਵਾਂ ਤੇ ਜੋੜ ਸਕਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਮੈਪ ਬਣਾਉਂਦੇ ਹਾਂ. ਇਹ ਉਦੋਂ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ ਜਦੋਂ ਉਪਯੋਗਕਰਤਾ ਨੂੰ ਘੁੰਮਣ ਲੱਗਣਾ ਸ਼ੁਰੂ ਹੋ ਗਿਆ ਹੈ, ਅਤੇ ਨਕਸ਼ਾ ਬਾਕੀ ਰਹਿ ਗਿਆ ਹੈ ਸਾਨੂੰ ਦੇਖਣਯੋਗ ਨਕਸ਼ੇ ਦੀ ਹੱਦ ਮਿਲਦੀ ਹੈ, ਅਤੇ ਇਸ ਤੋਂ ਸੈਂਟਰ ਪ੍ਰਾਪਤ ਕਰੋ

ਫੇਰ, ਹਾਈਲਾਈਟ ਫੁਕਲਾਈਬਿਲਿਟੀਜ਼ ਫੰਕਸ਼ਨ ਵਿੱਚ, ਅਸੀਂ ਮਾਰਕਰਸ ਅਤੇ ਵਿਕਲਪਿਕ ਪੋਪਅੱਪ (ਜੇ ਪ੍ਰਦਰਸ਼ਤ ਕਰਨ ਦੀ ਪ੍ਰਸ਼ੰਸਾ ਕੀਤੀ ਗਈ ਹੈ) ਜੋੜਿਆ ਗਿਆ ਹੈ. ਇਹ ਉਚਾਈ ਵਾਲੀਆਂ ਇਮਾਰਤਾਂ ਨੂੰ ਲੱਭਣਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਇਸ ਬਾਰੇ ਹੋਰ ਵਾਧੂ ਜਾਣਕਾਰੀ ਲੱਭਣ ਲਈ ਉਹਨਾਂ ਦੀਆਂ ਸਹੂਲਤਾਂ.

ਵਾਤਾਵਰਨ ਜੋੜਨਾ

ਮੈਮਰੀ ਦ੍ਰਿਸ਼ ਵਿਚ ਕੁਝ ਵਾਤਾਵਰਣ ਪ੍ਰਭਾਵਾਂ ਨੂੰ ਜੋੜ ਕੇ ਸਿਮਟ ਪੂਰਾ ਕਰੋ. ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ, ਅਸੀਂ ਆਪਣੇ ਕੈਚਿੰਗ ਪ੍ਰੌਕਸੀ ਲਈ "ਮੌਸਮ ਦੀਆਂ ਸਿਥਤੀਆਂ" ਦੇ ਅੰਤਮ ਸਿਰੇ ਨੂੰ ਜੋੜ ਸਕਦੇ ਹਾਂ:

     ਰੂਟ ਪ੍ਰਾਪਤ ਕਰੋ ("ਹਾਲਤ", async ({ਬੇਨਤੀ, ਜਵਾਬ}) => {const {ਵਿਥਕਾਰ, ਲੰਬਕਾਰ} = ਬੇਨਤੀ ਸਾਰੇ   const ਕੀ = ਐਨਵ. ਪ੍ਰਾਪਤ ਕਰੋ ("OPENWEATHER_KEY")const ਮੌਸਮ ਰਿਸਪੌਂਸ = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ (`http: // api openweathermap org / data / 2. 5 / ਮੌਸਮ? ↵lat = $ {latitude} ਅਤੇ lon = $ {ਲੰਬਕਾਰੀ} ਅਤੇ ਐਪੀਡ = $ {ਕੁੰਜੀ} `,)const ਮੌਸਮਡੈਟਾ = ਉਡੀਕ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈਰੋਜ਼ਪੇਸ਼ੇਸ਼ਨ. ਜੇਸਨ   ਜਵਾਬ. json (ਮੌਸਮਡੇਟਾ)})    

ਇਹ ਪ੍ਰੌਕਸੀ / ਸ਼ੁਰੂਆਤ / ਰੂਟ ਤੋਂ ਹੈ. ਜੇ ਐਸ

ਇਸ ਲਈ ਇੱਕ ਓਪਨ ਮੌਸਮ ਨਕਸ਼ਾ ਖਾਤਾ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ. API ਕੁੰਜੀ ਜੋ ਸਾਨੂੰ ਮਿਲਦੀ ਹੈ ਉੱਥੇ ਜੋੜਨ ਦੀ ਲੋੜ ਹੈ . ਅਤੇ env ਉਦਾਹਰਨ . ਫਿਰ ਅਸੀਂ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਇਸ ਡੇਟਾ ਦੀ ਬੇਨਤੀ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਾਂ. ਜੇ ਉਸ ਖੇਤਰ ਦਾ ਮੌਸਮ WRLD ਦੇ ਮੌਸਮ ਪ੍ਰੈਸੈਟਾਂ ਵਿੱਚੋਂ ਇੱਕ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ; ਅਸੀਂ ਇਸ ਨੂੰ ਮੈਪ ਤੇ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹਾਂ. ਅਸੀਂ ਦਿਨ ਦਾ ਸਮਾਂ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਬਰਾਊਜ਼ਰ ਦੇ ਸਮੇਂ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹਾਂ:

     ਕਾਂਸਟ wrld = require ("wrld js")const env = ਲੋੜ (". / env")const ਕੁੰਜੀਆਂ = {wrld: env ਇਮਾਰਤਾਂ ਨੂੰ ਹਾਈਲਾਈਟ ਕਰੋ ਅਤੇ ਮਾਰਕਰ ਜੋੜੋਕੋਸ਼ਿਸ਼ ਕਰੋ {const ਮੌਸਮ ਰਿਸਪੌਂਸ = ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਉਡੀਕ (`http: // 127. 0. 0. 1: 3333 / ਹਾਲਤ? ↵ਅਕਸ਼ਾਂਸ਼ = $ {ਵਿਥਕਾਰ} ਅਤੇ ਲੰਬਕਾਰ = $ {ਲੰਬਕਾਰ} `,)const ਮੌਸਮਡੈਟਾ = ਉਡੀਕ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈਰੋਜ਼ਪੇਸ਼ੇਸ਼ਨ. ਜੇਸਨ   ਜੇ (ਮੌਸਮਡੇਟਾ ਮੌਸਮ ਅਤੇ ਮੌਸਮ ਡਾਟਾ. ਮੌਸਮ. ਲੰਬਾਈ> 0) {const ਹਾਲਤ = ਮੌਸਮ ਡਾਟਾ ਮੌਸਮ [0] ਮੁੱਖ. toLowerCase   ਸਵਿਚ (ਕੰਡੀਸ਼ਨ) {ਕੇਸ "ਬਰਫ":ਨਕਸ਼ਾ ਥੀਮ. ਮੌਸਮ ਦਾ ਮੌਸਮ.ਬ੍ਰੇਕਕੇਸ "ਕੁਝ ਬੱਦਲ":ਕੇਸ "ਖਿੰਡੇ ਹੋਏ ਬੱਦਲਾਂ":ਕੇਸ "ਟੁੱਟੇ ਹੋਏ ਬੱਦਲਾਂ":ਨਕਸ਼ਾ ਥੀਮ. ਮੌਸਮ.ਬ੍ਰੇਕਕੇਸ "ਧੁੰਦਲਾ":ਨਕਸ਼ਾ ਥੀਮ. ਸੈੱਟ ਵੇਲਡਰ (ਰੇਲਡ ਥੀਮਜ਼) ਮੌਸਮ.ਬ੍ਰੇਕਕੇਸ "ਸ਼ਾਵਰ ਮੀਂਹ":ਕੇਸ "ਬਾਰਸ਼":ਕੇਸ "ਤੂਫ਼ਾਨ":ਨਕਸ਼ਾ ਥੀਮ. ਸੈੱਟ ਵੇਲਡਰ (ਰੇਲਡ ਥੀਮਜ਼) ਮੌਸਮ Rainy)ਬ੍ਰੇਕਮੂਲ:ਨਕਸ਼ਾ ਥੀਮ. ਸੈੱਟ ਵੇਲਰ (ਪੁਰਾਤਨ ਥੀਮ. ਮੌਸਮ. ਸਾਫ਼)ਬ੍ਰੇਕ}}const ਸਮਾਂ = ਨਵੀਂ ਤਾਰੀਖ    getHours   ਜੇ (ਟਾਈਮ> 5 && ਟਾਈਮ  <= 10) {ਨਕਸ਼ਾ ਥੀਮ. ਟਾਈਮ (ਟਾਈਮ. ਟਾਈਮ. ਟਾਈਮ. ਡਾਨ)} ਹੋਰ ਜੇ (ਟਾਈਮ>  10 && ਟਾਈਮ  <= 16) {ਨਕਸ਼ਾ ਥੀਮ. ਟਾਈਮ (ਟਾਈਮ. ਟਾਈਮ)} ਦੂਸਰਾ ਜੇ (ਸਮਾਂ>  16 ਅਤੇ& <21) {ਨਕਸ਼ਾ ਥੀਮ. ਸੈੱਟ ਟਾਈਮ (ਪੁਰਾਤਨ ਥੀਮ. ਟਾਈਮ. ਡੁਸਕ)} else {ਨਕਸ਼ਾ ਥੀਮ. ਟਾਈਮ (ਰਾਤ ਦਾ ਸਮਾਂ)}} ਕੈਚ (e) {// ਮੌਸਮ ਅਤੇ ਸਮਾਂ ਪ੍ਰਭਾਵ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਿਕਲਪਿਕ ਹਨ// ਜੇਕਰ ਉਹ ਤੋੜਦੇ ਹਨ, ਜੋ ਵੀ ਕਾਰਨ ਕਰਕੇ, ਉਨ੍ਹਾਂ ਨੂੰ ਐਪ ਨੂੰ ਨਹੀਂ ਮਾਰਨਾ ਚਾਹੀਦਾ}}const ਅ                                                                                       

February 28, 2018