Daha çox

JavaScript-də Google Map API istifadə edərək böyük məlumatları necə təqdim etmək olar


Məlumatların hər nöqtəni eyni vaxtda göstərmək üçün çox böyük olduğu üçün qutuları istifadə edərək məlumatları təmsil etməyə çalışıram.

Bununla bağlı problem, qutuların sayı 15K-dan çox olursa, xəritə böyüdərkən və kiçildikdə asılıdır.

Buna görə WMS istifadə etməyi düşündüm, bunun üçün yeniyəm, GeoServer qurdum, ancaq buna qat əlavə etmək və bu təbəqəyə necə daxil olmaq barədə qarışıq qaldım.

Ssenari olduğu kimi GeoServer-ə dinamik bir qat əlavə edə bilərəmmi: İstifadəçi bir geopoints məlumat sənədini yükləyir və sonra həmin sənəddəki məlumatları görüntüləyir.

İstifadəçinin yüklənmiş sənədindən GeoJSON məlumat formatı yaradıram. Bu GeoJSON məlumatlarını GeoServer ilə iş vaxtında bir təbəqə olaraq yükləmək və sonra baxmağa hazır olmaq mümkündür.

OpenLayers istifadə edərək böyük məlumat təqdimatı mümkündürmü?


bəli, məlumatları dinamik olaraq GeoServer-ə yükləyə bilərsiniz, məsələn. REST API istifadə http://docs.geoserver.org/2.0.0/user/extensions/rest/index.html

Bəli, həqiqətən BÖYÜK vektor məlumatlarını göstərmək üçün ən son OpenLayers 2 və ya daha yaxşı Leaflet və ya OpenLayers 3 istifadə edə bilərsiniz. OpenLayers 2 üçün göstərici olaraq CANVAS istifadə edin, yox DOM. Vərəqə və ya OpenLayers 3 standart olaraq kətandan istifadə edir.

GeoJSON əvəzinə TopoJSON istifadə etməyi düşünün - köçürülən məlumatların miqdarı xeyli azdır.


V2.6-dan etibarən Geoserver, ESPG-də GeoJSON-un birbaşa yüklənməsini dəstəkləyir: 4236 proyeksiya ... https://github.com/GeoNode/geonode/pull/2155

Əgər o marşruta gedirsinizsə; Bununla birlikdə, bu, mapshaper adlı açıq mənbəli node.js tətbiqini nəzərdən keçirmək istəyə biləcəyiniz bir şeydirsə - http://www.mapshaper.org/ özünüzü bir server tərəfində nodejs yerləşdirilməsi kimi asanlıqla yerləşdirə bilərsiniz.


8 Cavablar 8

Poçt kodu məlumatlarının ən çox istifadə etdiyim şeylərdən biri, əks halda fərdi səviyyədə mövcud olmaya biləcək poçt koduna əsaslanan demoqrafik dəyişənlərə baxmaqdır.

Məsələn, http://www.city-data.com/ ilə məlumatlarınız barədə sizə bir şey izah edə biləcək gəlir bölgüsü, yaş aralığı və s. Bu davamlı dəyişənlər çox vaxt ən azından nisbətən sonlu məlumatlar üçün ikili poçt kodlarına əsaslanmaqdan daha faydalıdır.

Ayrıca, poçt kodları iyerarxikdir. ilk iki və ya üç rəqəmi götürsəniz və bunlara əsaslansanız, ayrı-ayrı fermuarlardan daha çox məlumat əldə edən bir miqdar regional məlumatınız var.

Zach'ın dediyi kimi istifadə olunan enlik və boylam, xüsusən də ağac əsaslı bir modeldə də faydalı ola bilər. Müntəzəm bir xətti model üçün ABŞ-ı dörd coğrafi qrupa bölərək dördlü ağaclardan istifadə edə bilərsiniz, bunları ikili hala gətirdiniz, daha sonra bu sahələrin hər birini dörd qrupa ayırın və bunları əlavə ikili dəyişənlər kimi daxil edin. beləliklə n ümumi yarpaq bölgəsi üçün [(4n - 1) / 3 - 1] cəmi dəyişənlərlə (ən kiçik bölgələr üçün n, sonrakı səviyyə üçün n / 4 və s.) bənzəyirsiniz. Əlbətdə ki, bu, çox xəttlidir, buna görə bunu etmək üçün nizamlanmaya ehtiyac var.


Mapquest nümunəsinin genişləndirilməsi

API-nin bəzi digər xüsusiyyətlərindən necə istifadə olunacağını göstərmək üçün Mapquest nümunəsinə bir az daha çox funksionallıq əlavə edək.

Bu bölməyə başlamaq üçün özünüzə yeni bir qovluqda mapquest başlanğıc sənədinin surətini hazırlayın. Nümunələr deposunu əvvəldən klonlaşdırmısınızsa, bu sənədin içərisində tapa biləcəyiniz bir nüsxəyə sahib olacaqsınız javascript / apis / üçüncü tərəf-apis / mapquest qovluq.

Sonra Mapquest geliştirici saytına girməlisiniz, bir hesab yaratmalısınız və sonra nümunənizlə istifadə etmək üçün bir geliştirici açarı yaratmalısınız. (Yazı zamanı saytda "istehlakçı açarı" adlandırıldı və açarların yaradılması prosesi də istəyə bağlı olaraq "geri çağırma URL" i istəndi. Burada bir URL doldurmanıza ehtiyac yoxdur: onu boş qoyun .)

Xəritə növünün dəyişdirilməsi

Mapquest API ilə göstərilə bilən bir sıra fərqli xəritə növləri mövcuddur. Bunu etmək üçün aşağıdakı sətri tapın:

Hibrid üslubunda bir xəritə göstərmək üçün 'xəritə' ni 'hibrid' olaraq dəyişdirməyə çalışın. Başqa dəyərləri də sınayın. TileLayer istinad səhifəsi müxtəlif mövcud variantları və daha çox məlumatı göstərir.

Fərqli nəzarətlər əlavə olunur

Xəritədə varsayılan olaraq mövcud olan bir neçə fərqli nəzarət var, sadəcə bir zoom nəzarətini göstərir. Map.addControl () metodundan istifadə edərək mövcud nəzarəti genişləndirə bilərsiniz, bunu code.onload işləyicisinin içərisində kodunuza əlavə edin:

Mapquest.control () metodu sadəcə sadə bir tam xüsusiyyətli idarəetmə dəsti yaradır və standart olaraq sağ üst küncdə yerləşdirilir. Dəyəri idarəetmə üçün bir mövqeyi göstərən bir sətir olan bir mövqe xassəsi olan bir idarəetmə üçün bir parametr olaraq bir seçim obyekti təyin edərək mövqeyi tənzimləyə bilərsiniz. Məsələn, bunu sınayın:

Digər nəzarət növləri mövcuddur, məsələn mapquest.searchControl () və mapquest.satelliteControl () və bəziləri olduqca mürəkkəb və güclüdür. Ətrafında bir oyun oynayın və nə ilə gələ biləcəyinizi görün.

Xüsusi marker əlavə edin

Xəritədə müəyyən bir nöqtəyə marker (ikon) əlavə etmək asandır - sadəcə L.marker () metodundan istifadə etməlisiniz (görünür Leaflet.js sənədlərində sənədləşdirilmişdir). Aşağıdakı kodu yenidən window.onload daxilinə nümunənizə əlavə edin:

Gördüyünüz kimi, bu ən sadə şəkildə iki parametr götürür, markerin göstəriləcəyi koordinatları ehtiva edən bir sıra və həmin nöqtədə göstəriləcək ikonanı təyin edən bir simge xassəsi olan bir seçim obyekti.

Nişan, gördüyünüz kimi markerin rəngi və ölçüsü kimi məlumatları ehtiva edən bir mapquest.icons.marker () metodundan istifadə edərək müəyyənləşdirilir.

İlk metodun sonuna zəng vurduğumuz zaman göstəriləcək məzmunu təyin edən .bindPopup ('Bu Manchester!') Çağırırıq.

Nəhayət, işarəni xəritəyə əlavə etmək üçün zəncirin sonuna .addTo (xəritə) zəncirləyirik.

Sənədlərdə göstərilən digər variantlarla oyun oynayın və nə ilə gələ biləcəyinizi görün! Mapquest, istiqamətlər, axtarış və s. Kimi olduqca inkişaf etmiş bir funksionallıq təmin edir.

Qeyd: Nümunənin işləməsi ilə əlaqədar probleminiz varsa, kodumuzu bitmiş versiyamıza nəzər salın - genişlənmiş nümunə ilə tanış olun (burada canlı işlədiyini də görün).


Daha çox API

Yahoo! və Google dizaynerlər və inkişaf etdiricilər üçün güclü API təklif edən yeganə deyil. Bir sıra sosial media saytlarının və digərlərinin Twitter, Facebook, Yelp, Bit.ly və daha çox daxil olmaqla öz API (lər) i var.

    & # 8211 Twitter, API-lərini əhatə edən bir çox geliştirici alətinə sahibdir və bu da Twitter & # 8217s funksiyalarının hər hansı biri ilə qarşılıqlı əlaqəli tətbiqetmələr yaratmağa imkan verir. & # 8211 Facebook, artıq aktiv şəkildə dəstəklənməyən bir neçə keçmiş API daxil olmaqla Kreditlər, Reklamlar, Sohbet və daha çox işləmək üçün API təklif edir. Facebook Platformasının onurğa sütunu olan və tətbiqinizin Facebook-a məlumat oxumaq və yazmağı təmin edən Graph API də burada tapılmışdır. & # 8211 Awe.sm, sosial media kampaniyası izləmə vasitələrini tətbiqinizə və ya veb saytınıza inteqrasiya etmək üçün bir sıra geliştirici API təklif edir. & # 8211 The Foursquare API, yalnız Foursquare xidməti ilə qarşılıqlı əlaqəli tətbiqetmələr yaratmağınıza deyil, həm də Foursquare & # 8217s yerlə əlaqəli verilənlər bazasını ayrıca bir xidmət olaraq istifadə etməyə imkan verir. & # 8211 Ning masa üstü və mobil tətbiqetmələr, xüsusi şəbəkə xüsusiyyətləri, profil tətbiqləri və məlumat idxalçıları inkişaf etdirmək üçün bir sıra API təklif edir. & # 8211 Soundcloud & # 8217s API, veb saytınız üçün Soundcloud pleyeri paylaşmaq, yayımlamaq və özəlləşdirmək üçün alətlər daxildir. & # 8211 The Klout API, Klout Scores, Network Influence, Amplification Probability, True Reach və daha çox daxil olmaqla inkişaf etdiricilər üçün müxtəlif məlumatları təqdim edir. & # 8211 The Social Mention API, digər tətbiqetmələrə inteqrasiya üçün bir sıra sosial media xidmətlərindən real vaxt axtarış məlumatları axını təmin edir. Şəxsi və qeyri-kommersiya istifadəsi üçün pulsuzdur. & # 8211 The Opus Social Media API, sosial şəbəkə və rəqəmsal media saytı və ya tətbiqetmə inkişaf etdirmək üçün əsas ola bilər. & # 8211 Digg, öz saytlarınız və tətbiqləriniz üçün xəbər buraxılışlarına daxil olmanıza imkan verən bir API təklif edir. & # 8211 Yelp API tətbiqetmə və ya veb saytınızdakı biznes siyahısı məlumatlarına, iş reytinqlərinə və Yelp-dən alıntıları nəzərdən keçirməyə imkan verir. & # 8211 Əmlak saytı Zillow, digər tətbiqetmələrə inteqrasiya edilə biləcək qonşuluq məlumatlarına giriş imkanı verən API təklif edir. (Ayrıca, elanlar, mülk detalları, ev qiymətləndirmələri və daha çox şey daxil olmaqla bir sıra digər API təklif edirlər.) & # 8211 Tropo API, Twitter, IM, səs və SMS funksiyalarını müxtəlif ümumi proqramlaşdırma dillərinə əlavə edir. İnkişaf pulsuzdur, baxmayaraq ki mesaj göndərmək qiymətə görə dəyişir (hazırda Twitter və IM mesajları pulsuzdur). & # 8211 Bit.ly, URL qısaldılmasını tətbiqinizə və ya saytınıza inteqrasiya etmək üçün bir API təklif edir.

Hansı API'lərdən istifadə edirsiniz? Hal-hazırda təklif etməyən bir API görmək istədiyiniz saytlar varmı? Şərhlərdə bizə bildirin!


2 Cavablar 2

Bilməzsən. Dediyiniz kimi massivləri və lüğətləri təmsil edə bilərsiniz. İki seçiminiz var.

Çoxluğu bir sıra kimi təmsil edin. Üstünlük: Dəstdən seriala və arxaya çevirmək ümumiyyətlə asandır. Dezavantaj: Bir sıra, bir dəstin vermədiyi zəmanətli bir əmrə sahibdir, buna görə eyni dəstləri JSON dizilərinə çevirmək fərqli hesab ediləcək massivlər yarada bilər. Dizi elementlərinin unikal olduğunu tətbiq etmək üçün heç bir yol yoxdur, bu səbəbdən bir JSON dizisi etibarlı bir dəst içərisində ola bilməz (açıq-aşkar hər halda baş vermə ehtimalı olan təkrarlamaları gözardı edə bilərsiniz).

Dəsti hər bir açar üçün ixtiyari bir qiymətlə, məsələn 0 və ya sıfır olaraq bir lüğət olaraq təmsil edin. Yalnız dəyərləri görməməzlikdən gəlsəniz, bu mükəmməl bir uyğunluqdur. Digər tərəfdən, lüğətin açarlarını bir dəst olaraq çıxarmaq və ya bir dəsti lüğətə çevirmək üçün kitabxana dəstəyiniz olmaya bilər.

Proqramlaşdırma mühitimdə set və array arasındakı dönüşüm daha asandır (array to set, təkrarlanan dəyərləri itirəcək, ya da olmamalı, ya da düzgün hesab ediləcək), bu səbəbdən də massivlərlə gedərdim. Ancaq bu çox fikirdir.

AMMA: Otaqda bəhs edilməmiş böyük bir şişman fil var. JSON lüğətindəki düymələr yalnız simlər ola bilər. Dəstiniz bir sıra simlər deyilsə, yalnız bir sıra istifadə etmək seçiminiz var.


Google Bulud Platforması nə vaxt elan edildi?

Qeyd edildiyi kimi, Google-un bulud xidmətlərinə ilk girişi 2008-ci ildə Google App Engine idi. İki il sonra, Google bir saxlama qatını əlavə etdiyini elan etdi və 2012-ci ildə şirkət platforma üçün ortaq proqramına başladı. Sonra BigQuery, Compute Engine, Cloud SQL və bugünkü Google Cloud Platformunu təşkil edən digər vasitələr gəldi.

Bununla birlikdə, bütün provayderlər kimi, Google daima əvvəlcədən baxışda, alfa və ya betada yeni alətlər və xüsusiyyətlər əlavə edir ki, bu da çox güman ki, bunu geniş ictimaiyyətə çatdıracaqdır.

Google Bulud Platformasına əlavə olunan ən son məhsullardan bəziləri, inkişaf etdiricilərə məlumat dəstləri, Qorumalı VM-lər, Bulud Tapşırıqları, Cloud IoT Edge, Cloud AutoML və AI Hub üzərində geniş miqyaslı əlaqələr yaratmağa imkan verən Cloud Inference API-dir. Google Cloud-da AI texnologiyaları.

Google Cloud Next 2019-da GCP-nin AI qabiliyyətlərini artıracaqları açıqlandı. AI Platforması inkişaf etdiricilərə, məlumat alimlərinə və məlumat mühəndislərinə maşın öyrənmə layihələrində əməkdaşlıq etməyə imkan verir. Cloud AutoML-ə yeni imkanlar əlavə edildi, indi strukturlaşdırılmış cədvəllərdən və video məzmundan verilənlərin avtomatik olaraq təsnif edilməsinə imkan verir. Eyni şəkildə, mövcud AutoML Vision bir kənar hesablama variantına malikdir.

COVID-19 pandemiyası səbəbiylə səkkiz həftə ərzində hamısı onlayn olan Google Cloud Next 2020, işlənərkən istifadə olunan məlumatları şifrələyən Gizli VM-lərin beta testi kimi bir sıra yeni xüsusiyyətlərin elanını verdi. Çapraz platforma bulud analitik vasitəsi olan BigQuery Omni, digər kiçik elanlar və Google-un müxtəlif bulud xidmətlərinə edilən yeniləmələr də elan edildi.

Əlavə mənbələr


Bir səhv barədə məlumat vermək istəyirsinizsə və ya bir təklif vermək istəyirsinizsə, bizə bir e-poçt göndərməkdən çəkinməyin:

Mesajınız W3Schools-a göndərildi.

Ən yaxşı dərslər

Əsas istinadlar

Üst Nümunələr

Veb kursları

W3Schools təlim və təlim üçün optimize edilmişdir. Nümunələr oxumağı və öyrənməyi yaxşılaşdırmaq üçün sadələşdirilə bilər. Dərsliklər, istinadlar və nümunələr səhvlərin qarşısını almaq üçün daima nəzərdən keçirilir, lakin bütün məzmunun tam düzgünlüyünə zəmanət verə bilmərik. W3Schools istifadə edərkən istifadə şərtlərimizi, çərəzlərimizi və gizlilik siyasətimizi oxuduğunuzu və qəbul etdiyinizi qəbul edirsiniz.


JSON ilə işləmə funksiyaları

Bu bölmə JSON-u sətirləşdirmək və təhlil etmək üçün iki üsulu nəzərdən keçirəcəkdir. JSON-u obyektdən sətrə və əksinə çevirə bilmək, məlumatların ötürülməsi və saxlanılması üçün faydalıdır.

JSON.stringify ()

JSON.stringify () funksiyası bir obyekti bir JSON simli halına çevirir.

Strings məlumatların yüngül bir şəkildə saxlanılması və ya ötürülməsi yolu ilə bir müştəridən bir serverə ötürülməsi üçün faydalıdır. Məsələn, bir istifadəçi parametrlərini müştəri tərəfində toplaya və sonra bir serverə göndərə bilərsiniz. Daha sonra, JSON.parse () metodu ilə məlumatları oxuya və lazım olduqda məlumatlarla işləyə bilərsiniz.

Obj dəyişəninə təyin etdiyimiz bir JSON obyektinə baxacağıq və sonra obj funksiyasına keçərək JSON.stringify () istifadə edərək onu çevirəcəyik. Bu simli s dəyişəninə təyin edə bilərik:

İndi s ilə işləsək, JSON'u bir obyekt əvəzinə bir simli olaraq əldə edəcəyik.

JSON.stringify () funksiyası obyektləri simlərə çevirməyimizə imkan verir. Əksini etmək üçün JSON.parse () funksiyasına baxacağıq.

JSON.parse ()

Simlər daşınması üçün faydalıdır, lakin onları yenidən müştəri və / ya da server tərəfindəki bir JSON obyektinə çevirə bilmək istəyəcəksiniz. Mətni eval () funksiyası ilə bir obyektə çevirə bilsəniz də, o qədər də etibarlı deyil, bunun əvəzinə JSON.parse () funksiyasından istifadə edəcəyik.

Nümunəni yuxarıdakı JSON.stringify () bölməsinə çevirmək üçün s sətrini funksiyaya ötürər və yeni dəyişənə təyin edərdik:

Sonra, işləmək üçün obyekt obj ilə eyni olacaq o obyektimiz olardı.

Daha dərindən baxmaq üçün, bir HTML faylı kontekstində JSON.parse () nümunəsini nəzərdən keçirək:

HTML faylı kontekstində, nöqtə işarəsi ilə JSON-a daxil olaraq səhifənin son göstərilməsində əldə edilə bilən bir obyektə JSON sətrinin necə çevrildiyini görə bilərik.

JSON.parse (), JSON simlərini təhlil etmək və onları obyektlərə çevirmək üçün etibarlı bir funksiyadır.


Google Map API istifadə edərək böyük məlumatları JavaScript-də necə təqdim etmək olar - Coğrafi İnformasiya Sistemləri

Bütün korporativ, onin, sinif otağınız, video əsaslı təlimləriniz üçün bir nöqtə - www.justcompile.com
www.sukesh-Marla.com
Təlimçi, Müəllif, Qəzet naşiri, Proqramçı.

Bütün korporativ, onin, sinif otağınız, video əsaslı təlimləriniz üçün bir nöqtə - www.justcompile.com
www.sukesh-Marla.com
Təlimçi, Müəllif, Qəzet naşiri, Proqramçı.

Sukesh Marla
www.sukesh-Marla.com
MVC, WCF, Design Patterns, UML, WPF, BI, TFS üzrə texniki təlimlər üçün [email protected] ilə əlaqə saxlayın və ya www.sukesh-Marla.com saytına daxil olun

Sukesh Marla
www.sukesh-Marla.com
MVC, WCF, Design Patterns, UML, WPF, BI, TFS üzrə texniki təlimlər üçün [email protected] ilə əlaqə saxlayın və ya www.sukesh-Marla.com saytına daxil olun

Sukesh Marla
www.sukesh-Marla.com
MVC, WCF, Design Patterns, UML, WPF, BI, TFS üzrə texniki təlimlər üçün [email protected] ilə əlaqə saxlayın və ya www.sukesh-Marla.com saytına daxil olun

Lab8-i sınadım. JS mənbəyə çatmağa çalışdıqda, xidmət tapılmadığına görə uğursuz olur (Mənbə tapıla bilməz).

İstirahət xidmətini bir şəkildə "yerləşdirmək" lazım deyil? Bunu tutoya qurmadım. "Yayımla" nı gördüm, ancaq xidməti görünməyə qoymağın yolu budur?

Kimsə bu cür xidmətləri "yerləşdirmə" üsulumuzu izah edə bilərmi?

Hər hansı bir kömək üçün və bu tutuos üçün təşəkkür edirik.

Ümumi Xəbər Təklif Sual Hata Cavab Zarafat Həmd Rant Admin

Mesajları dəyişdirmək üçün Ctrl + Sol / Sağ, mövzuları dəyişdirmək üçün Ctrl + Yuxarı / Aşağı, səhifələri dəyişdirmək üçün Ctrl + Shift + Sol / Sağ istifadə edin.