Daugiau

Kaip rasti OSM kelio ID iš platumos / ilgumos?


Kaip rasti kelio ID (naudojant „OpenStreetMap“) iš platumos ir ilgumos derinio? Norėdami pateikti tam tikrą kontekstą:

Turiu daugybę jutiklių, kurie pateikia taršos duomenis (apytiksliai) tokia forma: lat, long, timestamp, value

Atsižvelgiant į tai, kad turėsiu daug jutiklių, noriu pažymėti kiekvieną „kelią“ su užfiksuotu taršos kiekiu, kad mano maršruto parinkimo algoritmas („GraphHopper“) galėtų priskirti skirtingus svorius kiekvienam būdui.

Kokiu nors ideju?


Tai, ko ieškote, vadinama „atvirkštiniu geokodavimu“ ir yra įgyvendinama, pvz. su „Nominatim API“


Vivek, vienas klausimas, kurį turėsite, yra labai ilgas. Jei ilgą laiką grąžinsite OSMid, bus sustabdytas visas naudojimas, o ne galimas paprastas maršrutas aplink probleminę sritį.

Jei jūsų sritis nėra didžiulė, (miesto dydis) galite apsvarstyti „PG_Routing“, nes galite dinamiškai atnaujinti atskiro segmento maršruto lenteles, atsižvelgdami į ilgio paiešką naudodami „PostGis“ funkcijas.

Arba galite lengvai susieti jutiklio pozicijas maršruto grafike ir tada realiuoju laiku tiesiog pasverti tuos, kurie turi didelę kainą

„PG_routing“ nėra ypač greitas atlikėjas, tačiau puikiai tinka tokio tipo reikalavimams, nes visa tai yra duomenų bazėje ir yra labai lanksti.

Aptariu „Graphhopper“ / „Pg_Routing“ tiltą „Graphhoper“ sąraše. Priežastis yra ta, kad noriu sugebėti dinamiškai važiuoti šalies lygiu (nelaimės ir sezoniniai pokyčiai, pvz., Keliai, kurie nėra pasiekiami lietingu sezonu ir pan.), O „GraphHopper“ yra labai geras atlikėjas, tačiau jis veikia tik XML failuose, o tai reiškia grafiko atstatymas arba atminties lentelės reguliarus atnaujinimas iš duomenų bazės ir „GraphHopper Source“ modifikavimas, kad būtų pažvelgta į atminties lentelę ir pritaikyti svoriai.

Vėlgi, „Graphhopper“ saugo OSMId kelią, kuris tam tikromis aplinkybėmis gali būti labai ilgas, todėl rizikuojate, kad visas greitkelis nebus nukreipiamas, nes paprasčiausias nukreipimas gali būti reikalingas praktiškai norint apeiti užterštą teritoriją.

Mažesnėms vietovėms tiesiog naudoju „PG_Routing“ ir visus savo duomenis jau turiu „PostGIS“ duomenų bazėje.


Ieškote geografinių duomenų korpuso

Man buvo įdomu, ar kas nors pirmauja geografinių vietų korpuse? Idealiausia būtų miestų pavadinimai ir koordinačių poros. Treniruoju pokalbių robotą ir man (idealiu atveju) norėčiau, kad jis galėtų pasiimti pokalbio vietas ir paprašius parodyti žemėlapį. Pavyzdžiui, jei būtų įvedami žodžiai „Aš einu į Čikagą“, pokalbių botas galėtų pateikti Čikagos žemėlapį. Norai ir norai, jei žinotumėte vieną ar kaip galėčiau tai padaryti, būčiau dėkingas.


Содержание

Paprasčiausias būdas pradėti naudoti „Overpass“ API yra naudoti „Taginfo“ ir pereiti prie jus dominančios žymos. Kaip pavyzdį paimkite pašto dėžutes. Paspauskite Viadukas Turbo mygtuką viršutiniame dešiniajame kampe. Tai paleis „Overpass Turbo“ vartotojo sąsają ir pateiks šią užklausą

„Overpass Turbo“ vartotojo sąsaja turi daug galimybių. Šiuo metu turėtų pakakti, kad viršutiniame kairiajame žemėlapio rodinio kampe būtų teksto laukas. Įveskite mėgstamą vietą. Tada, naudodamas „Nominatim“, žemėlapio vaizdas bus perkeltas į tą vietą. Įveskite pvz. Manhetene ir pasirinkite pirmąjį hitą. Tada žemėlapis peršoka į viršutinį centrinio parko galą Manhetene. Priartinkite du lygius, kad pamatytumėte dalį užstatytos teritorijos. Paleiskite užklausą spustelėdami Bėk.

„Taginfo“ pavyzdys

Dabar galime pradėti suprasti užklausą.

Dauguma ankstesnių užklausų yra komentarai - viskas po // ir tarp jų /* ir */. Taigi, glaustesnis užklausos variantas yra

Kalbant apie paprastą pavyzdį, užklausą toliau mažiname dviem žingsniais, kad ji būtų tikrai paprasta.

Žinodami, kad pašto dėžutės yra visuotinės žinios, mes visada žinome:

Ir mes galime pašalinti daugumą kriptinės sintaksės, kuri dažniausiai nurodo, ką daryti su būdais ir santykiais. Mes galime gauti tą patį rezultatą kaip anksčiau, turėdami tik dvi eilutes.

Visi šie veiksmai naudojami su „Taginfo“ žyma. Čia nėra magijos. Tai tiesiog pakeičia patogumas = pašto dėžutė su atitinkama verte.

Kai kurios standartinės funkcijos

Dabar kaip su papildoma sintakse? Peržiūrėkime juos po truputį. Norėdami pamatyti efektą, vietoj pašto dėžučių pereiname į restoranų užklausą, nes tada galite pamatyti efektą pridėdami būdų palaikymą.

Ne visi restoranai yra pažymėti kaip mazgai. Todėl mes taip pat norime ieškoti būdų ir santykių:

Vykdant šią užklausą bus gautas pranešimas, kad trūksta geometrijos. Taip yra todėl, kad „OpenStreetMap“ duomenų modelis tiesiogiai nesieja koordinačių su būdais ir ryšiais. Vietoj to būdai ir santykiai gauna savo geometriją, išsprendę jų mazgo nuorodas.

išėjo statment turi įvairius režimus, kaip patogiau išspręsti šią problemą: galite pasirinkti, pavyzdžiui iš geom leisti „Overpass“ API išspręsti koordinates už jus. Arba jūs naudojate iš centro sutraukti geometriją iki vienos objekto koordinatės:

Visas šias užklausas galime pateikti tiesiog vienas po kito. Tada mes gauname rezultatus vienas po kito ir „Overpass Turbo“ juos visus parodo vienu metu.

„Taginfo“ sugeneruotose užklausose naudojama seka iš kūno, & gt, out skel qt. Taip yra tik dėl istorinių priežasčių. Tai daro iš esmės tą patį, kas iš geom bet pateikia elementus griežtai iš „OpenStreetMap“ duomenų modelio. „Overpass Turbo“ šiais laikais gali tiesiogiai apdoroti iš geom ir iš centro o pateikti pirminiai duomenys yra glaustesni.

Paskutinis žingsnis - užklausa bus glausta:

Tai vis tiek turi tą patį rezultatą kaip ir anksčiau. Tačiau užklausos pradžioje apribojimo langelį atvedėme į vieną vietą. Svarbi priežastis tai padaryti yra tai, kad turėtumėte išsiugdyti įprotį visada turėti ribojimo dėžutę, nebent tikrai norite rezultatų iš visos planetos.

Mes taip pat sugrupavome užklausa pareiškimai sąjunga teiginys - tai skliausteliai. Tai leidžia turėti tik vieną išvesties sakinį.

„Taginfo“ sugeneruotoje užklausoje taip pat naudojami du kiti visuotiniai nustatymai: pirmasis yra [out: Json]. Tai gali būti pranašumas, jei norite tiesiogiai perskaityti grąžintus duomenis. Tai galite padaryti Duomenys skirtuką virš žemėlapio rodinio.

Antrasis yra [skirtasis laikas: 25]. Tai apriboja užklausos vykdymo laiką iki 25 sekundžių. Jei kažkas negerai, riba užtikrina, kad nei serveris, nei jūs negaišite laiko. Kaip ir „Global Bounding Box“, tai yra naudinga atsargumo priemonė.

Iš viso gauname tokį prašymą:

Retos žymos

Jei iš anksto nežinote, kur galėtumėte tikėtis žymos, bet jei esate tikri, kad elementų nėra daug daugiau nei keli šimtai, galite mesti ribojimo laukelį.

Jei taip pat paliksite laikas baigėsi nustatymą, tada serveris nustato numatytąją 180 sekundžių trukmę:

Kiti pavyzdžiai

Be šio puslapio, yra daug daugiau pavyzdžių, pateiktų „Overpass API“ tinklaraštyje. Taip pat yra nuorodų į konkrečius pavyzdžius iš toliau pateiktų skyrių.


2 atsakymai 2

„Google“ žemėlapių duomenims taikoma daugybė apribojimų, todėl jie nėra tinkami kaip pagrindas tolesniam naudojimui.

Nors jis gali būti įvairios kokybės, „Open Street Map“ (OSM) vis dažniau apima ribas, taip pat būdus (kelius) ir taškus, ir yra „Open Data“ (atsižvelgiant į jų naudojimo sąlygas, įskaitant priskyrimą).

OSM duomenys yra XML formatu (atsisiuntimo nuoroda pavyzdžio kairiojo stulpelio apačioje), kuriame išvardyti santykiai, būdai ir mazgai pasirinktoje riboje. Gražiu paprastu atveju, kaip antai „Acadia“ universiteto riba, tokios komunalinės paslaugos, kaip „osmtogeojson“, turėtų sugebėti konvertuoti ją į atvaizdavimo formatą, pvz., „Geojson“, tačiau gali kovoti su sudėtingesne įdėta riba.

Palyginę „Google Maps“ su OSM duomenimis, pamatysite, kad yra keletas skirtumų nuo miestelio ribų (ypač į šiaurę nuo Hwy 1 / Main St). Diskutuotina, kas yra tikslesnė, oficialiame universiteto miestelio žemėlapyje nerodomos jokios ribos, tačiau jame yra (pavyzdžiui) pastatai į vakarus nuo Westwood, kurių nei „Google“, nei OSM neįtraukia į miestelį.

Norėdami rasti bendresnį sprendimą, daugelis šalių dabar turi atvirus duomenų ribų failus internete, pvz., „GeoBase“, skirtą Kanadai. Tai labiau tikėtina, kad tai bus tik vyriausybės administracijos sritys (provincijos, savivaldybės, atrankos ir pan.), Ir tai gali būti didelis duomenų kiekis.


1 Atsakymas 1

Pirmiausia galite suskaidyti duomenų rinkinį į miestus. Tai tikriausiai duos geresnių rezultatų nei viską laikys kartu.

Tuomet pasirinktas įrankis tikriausiai yra ELKI:

  1. Jame yra daug ir daug algoritmų, skirtų aptikti pašalinius. Visų pirma, jis turi vietinį išsklaidymo faktorių (wikipedia), kuris tiksliai bando užfiksuoti vietinius tankio skirtumus
  2. Jis palaiko geodezinį atstumą su skirtingais žemės modeliais
  3. Jis gali naudoti R-medžio rodiklius greitėjimui, todėl 300 tūkst. Tai nėra problema (tačiau vis tiek galbūt norėsite suskirstyti duomenis apie miestus, kad gautumėte geresnių rezultatų ir be jo viešbutis „Chicago“, bet su koordinatėmis Kalifornijoje vis tiek iš koordinačių atrodo normalu). Aš pats jau naudojau 100 tūkst. Daugialypių duomenų rinkinių ir mačiau, kaip autorius grupuodamas naudoja 23 milijonus „tweet“.
  4. Atviras šaltinis, parašytas Java kalba.

Taip pat galbūt norėsite patikrinti autorių darbą pritaikant pašalinių parametrų aptikimą. To gali prireikti, jei norite apdoroti visus 300 tūkst. Iš karto, taip pat naudokitės miesto ir viešbučio stulpeliais. (Dauguma metodų yra skirti skaitmeniniams duomenims!) Pagal šio modelio aiškinimą galbūt norėsite apibrėžti kontekstą kaip viešbučius tame pačiame mieste ir tada palyginti tankius.

Schubert, E., Zimek, A., & amp; Kriegel, H. P. (2014).
Persvarstytas vietinis pašalinių rodiklių aptikimas: apibendrintas vietovės rodinys su erdvinio, vaizdo ir tinklo aptikimo taikomosiomis programomis.
Duomenų gavyba ir žinių atradimas, 28 (1), 190–237.

hmm. pagalvojus apie jūsų problemą, ši problema taip pat gali būti aktuali, nustatant autoįvykių ir radiacinės spinduliuotės matavimo duomenis:

Schubert, E., Zimek, A., & amp; Kriegel, H. P. (2014).
Apibendrintas išorinis aptikimas naudojant lanksčius branduolio tankio įvertinimus.
14-osios SIAM tarptautinės duomenų gavybos konferencijos (SDM) pranešimų medžiaga, Filadelfija, PA.


„Deep“ tinklapis

Skirtingai domiuosi kompiuteriais, programavimu, GIS ir kt. Šios svetainės tikslas yra dalytis įvairiais mano parengtais ištekliais ir įrankiais.

Tiesiog naudokitės kiekvieno puslapio viršuje esančiu meniu, norėdami naršyti bet kurioje skiltyje.

  • Deesha
    Apdovanojimai, visiškai nemokama programa, leidžianti naudoti išmanųjį telefoną su vietos jutikliu navigacijai bekelėje. Turi visišką palaikymą Indijos tinklo sistemoje.
    Žemėlapio vaizdai, sukurti specialiai naudoti su Deesha iš JOG žemėlapių.
  • Indijos tinklelis

      Informacija apie Indijos tinklą, jo naudojimą ir parametrus.
      Konvertuokite tarp geodezinių koordinačių (ilgumos / platumos) ir Indijos tinklelio koordinačių.
  • „Garmin“ nustatymai
    „Garmin“ navigacijos įrenginių konfigūravimas naudoti „Indian Grid“ sistemą.
    • Tarptautinis pasaulio žemėlapis (IMW)
    • Indija ir gretimos šalys (IAC)
      Raskite nurodyto žemėlapio numerio ribas, raskite nurodytos vietos žemėlapio numerį arba konvertuokite tarp IAC ir OSM žemėlapių numerių.
    • „Android“

        Saugumo sumetimais programa, skirta šifruoti / iššifruoti tekstą naudojant AES 256 bitų šifravimą su simetrišku raktu.
        Kad jūsų tekstas būtų apsaugotas nuo tradicinių filtrų / robotų, suklaidinkite tekstą raidėmis, pvz., „Unicode“ simboliais.

      • Programa paprasto teksto ir dvejetainių failų šifravimui / iššifravimui naudojant AES 256 bitų šifravimą su simetrišku paprasto teksto raktu.
        „Java“ biblioteka, jei norite pridėti iššokantįjį meniu ir meniu elementus su įprastais teksto veiksmais teksto komponentams.
        Programa, suteikianti naudingos informacijos apie Saulę ir Mėnulį, remiantis puikiais Tomás Alonso Albi efemeridais.
        „Java“ klasė, skirta apskaičiuoti bet kurio žemės taško magnetinę deklinaciją, magnetinio lauko stiprį, nuolydį ir pan.

        Greita klasė, skirta apskaičiuoti bet kurio žemės taško magnetinę deklinaciją, magnetinio lauko stiprį, polinkį ir pan.
      • Saulės mėnulio skaičiuoklė
        Greitas Tomáso Alonso Albi uostas puikių efemeridų (Java kalba).

        Patikrinkite, ar jūsų svoris rodo, kad esate sveikas, kaip jūsų ūgis.
        Tam tikroje imtuvo vietoje apskaičiuokite palydovo azimutą, aukštį ir pan. Pagal jo vietą arba palydovo vietą pagal jo azimutą ir aukštį.
        Fonetinis „Devanagari“ klaviatūros išdėstymas, pagrįstas „Shusha“, skirta „Linux“.
      • „WhatsApp“ teksto formatavėjas
        Sukurkite suformatuotus „WhatsApp“ pranešimus lengvai įklijuodami į „WhatsApp Web“.
        Atsakykite į kelis klausimus, kad sužinotumėte daugiau apie save.

      Jei esate nuolatinis lankytojas, peržiūrėkite „Kas naujo“ po paskutinio apsilankymo.

      Jei aptinkate kokių nors pasiūlymų, atsiliepimų ar klaidų, susisiekite su manimi.


      Importuokite „OpenStreetMap“ duomenis į „Unreal Engine 4“

      Šis papildinys leidžia jums importuoti „OpenStreetMap“ XML duomenis į jūsų Nerealus variklis 4 projektas kaip naujas „StreetMap“ turto tipas. Galite naudoti pavyzdį Gatvės žemėlapio komponentas gatvėms ir pastatams perdaryti.

      (Pastaba: šis papildinys yra tiesiog įdomus savaitgalio projektas, kurio „Epic“ oficialiai nepalaiko.)

      Lengva atsikelti ir paleisti:

      Iš šio puslapio atsisiųskite „StreetMap“ papildinio šaltinį (spustelėkite Klonuokite arba atsisiųskite - & gt Atsisiųsti ZIP).

      Išpakuokite failus į naują „StreetMap“ poaplankis po jūsų projektu Įskiepiai aplanką. Tai turėtų galų gale atrodyti "/ MyProject / Plugins / StreetMap /"

      Atstatyti jūsų C ++ projektas. Naujas papildinys taip pat bus sukompiliuotas!

      Įkelkite redaktorių. Dabar galite vilkti ir mesti „OpenStreetMap“ XML failai (.osm) į turinio naršyklę, kad galėtumėte importuoti žemėlapio duomenis!

      Nuvilkti importuoti Gatvės žemėlapio duomenų turtas į peržiūros sritį ir a Gatvės žemėlapio aktorius bus automatiškai sugeneruotas. Dabar 3D gatvėje turėtumėte pamatyti savo gatves ir pastatus.

      Jei atstatymas buvo sėkmingas, bet nematote naujų funkcijų, dar kartą patikrinkite, ar Gatvės žemėlapis papildinys įgalinamas spustelėjus Nustatymai įrankių juostos mygtuką, tada spustelėkite Įskiepiai. Raskite Gatvės žemėlapis papildinį ir įsitikinkite Įjungtas yra patikrinta.

      Jei dar nesinaudojote UE4 papildiniais, čia galite rasti daug informacijos.

      Kaip gauti „OpenStreetMap“ duomenis

      Teisinis: „OpenStreetMap“ duomenys licencijuojami pagal ODC atviros duomenų bazės licenciją (ODbL). Jei naudojate šiuos duomenis savo projekte, įsitikinkite, kad suprantate ir laikotės licencijos sąlygų pvz. ieškoti teisinių DUK.

      Štai kaip gauti jus dominančios vietos duomenis:

      Didesnėms teritorijoms (ne tik kaimynystėje ar mažame miestelyje) turėtumėte naudoti Mapzen ekstraktus.

      Eikite į OpenStreetMap.org ir naudokite paieškos funkciją norėdami pereiti prie savo mėgstamiausia vieta Žemėje.

      Spustelėkite Eksportuoti mygtuką naršymo juostoje puslapio viršuje, kad pereitumėte Eksporto režimas.

      Slinkite ir priartinkite taip, kad regionas, kurį norite eksportuoti, užpildytų jūsų naršyklės langą. Pradėkite nuo ko nors pakankamai mažo, kad eksportavimas ir atsisiuntimas būtų greitai užbaigti. Pabandykite priartinti mažą miestą ar miesto kvartalą.

      Kai būsite pasirengę, spustelėkite Eksportuoti kairėje. „OpenStreetMap“ bus sugeneruoti XML failą ir netrukus pradėkite atsisiuntimą.

      Jei norite tiksliai sureguliuoti išsaugotą stačiakampį, „OpenStreetMap“ lange galite spustelėti „Rankiniu būdu pasirinkti kitą plotą“ ir sureguliuoti stačiakampį virš eksportuojamo žemėlapio.

      Atminkite, kad daugelyje vietų gali būti ribota informacija apie pastato geometriją. Visų pirma, daugelyje miestų pastatų aukščio gali trūkti arba jie gali būti neteisingi.

      Jei spustelėjus gaunate klaidos pranešimą Eksportuoti, „OpenStreetMap“ gali būti per daug užimta, kad galėtų patenkinti užklausą. Pabandykite spustelėti Viaduko API arba patikrinkite vieną iš kitų šaltinių. Įsitikinkite, kad atsisiųsto failo plėtinys yra „.osm“, nes tai yra tai, ko tikisi papildinys. Atsisiųstą failą galite pervadinti pagal poreikį.

      Žinoma, yra daugybė kitų vietų, kuriose galite rasti neapdorotų „OpenStreetMap“ XML duomenų internete, tačiau atminkite, kad papildinys iki šiol buvo išbandytas tik su failais, eksportuotais tiesiogiai iš „OpenStreetMap“.

      Dėmesio: OSM apima realų pasaulį ir apima tik faktais pagrįstas žinias. Jei norite sukurti išgalvotą žemėlapį, galite naudoti JOSM neprisijungus naudojamą redaktorių, kad sukurtumėte vietinį XML failą, kurio į projektą neįkeltumėte (!).

      Galite lengvai prisidėti prie OSM, pavyzdžiui, pagerinti savo gimtąjį miestą. Tiesiog prisiregistruokite www.openstreetmap.org ir spustelėkite skirtuką Redaguoti. Internetinis „iD“ redaktorius leidžia lengvai atsekti oro vaizdus ir lengvai pridėti LV. Norėdami sužinoti daugiau informacijos, tiesiog peržiūrėkite čia:

      Turėkite omenyje, kad projekto bendruomenė (gyventojai!) Yra esminė dalis. Taigi protinga susisiekti su artimais žemėlapiais, gauti daugiau patarimų apie vietinį žymėjimą ar nerašytas taisykles. Laimingo kartografavimo!

      Kada tu importuoti OSM failą, papildinys sukurs naują Gatvės žemėlapio turtas kad žemėlapio duomenys būtų rodomi UE4. Šiuos galite priskirti Gatvės žemėlapio komponentaiarba tiesiogiai sąveikauja su žemėlapio duomenimis C ++ kodu.

      Keliai importuojami su visi prisijungimo duomenys! Tai reiškia, kad jūs galite gana lengvai susikurti savo navigacijos algoritmus.

      „OpenStreetMap“ padėties duomenys saugomi geografinės koordinatės (platuma ir ilguma), tačiau UE4 natūraliai nepalaiko tos koordinačių sistemos. Tai reiškia, kad šiuo metu negalime lengvai susidoroti su sferiniais pasauliais UE4. Taigi importavimo metu mes suprojektuojame visas žemėlapio koordinates į plokščią 2D plokštumą.

      OSM duomenys yra importuojami dvigubu tikslumu, tačiau prieš išsaugodami savo UE4 gatvių žemėlapio turinį viską sutrumpiname iki vieno tikslumo slankiojo kablelio. Jei planuojate dirbti su didžiuliais žemėlapių duomenų rinkiniais vykdymo metu, turėsite tai pakeisti.

      A įgyvendinimo pavyzdys Gatvės žemėlapio komponentas yra įtraukta, kuri sukuria atvaizduojamą tinklą iš pakrautų gatvių ir pastatų duomenų. Tai labai paprastas komponentas, kurį galite naudoti kaip atspirties tašką.

      Įgyvendinimo pavyzdys sukuria pasirinktinį primityvų komponentinį tinklą, o ne tradicinį statinį tinklą. To priežastis buvo leisti lankstesnes miesto gatvių ir pastatų atvaizdavimo savybes ar net dinamiškus aspektus.

      Visi tinklelio duomenys generuojami apkrovos metu iš žemėlapio turto kartografinių duomenų, įskaitant spalvotas kelio juostas ir paprastus pastato tinklelius su trikampiais stogo daugiakampiais. Kelių spline interpoliacija neatliekama.

      Sukurtas gatvių žemėlapio tinklelis turi viršūnių spalvas ir įprastus elementus, ir jūs galite priskirti jam pasirinktinę medžiagą. Jei norite naudoti įmontuotas spalvas, įsitikinkite, kad jūsų medžiaga padaugina „Vertex“ spalvą su pagrindine spalva. Tinklelis yra sukonfigūruotas taip, kad būtų galima labai efektyviai pateikti per vieną traukimo skambutį. Keliai vaizduojami kaip paprastos keturbriaunės juostelės (be keliavimo). Tekstūros koordinatės dar nepalaikomos.

      Yra įvairūs „pakoreguojami“ kintamieji, kad būtų galima valdyti, kaip generuojamas atvaizduojamas tinklas. Tai galite rasti viršuje „UStreetMapComponent“ :: GenerateMesh () funkcijos kūnas.

      (Gatvės žemėlapio komponentas taip pat yra paprastas pavyzdys, kaip parašyti savo primityvius komponentus UE4.)

      Importuodami „OpenStreetMap“ XML failus, visus mums įdomius duomenis saugome FOSMFile duomenų struktūra atmintyje. Čia yra duomenų, kurie yra labai artimi neapdorotam vaizdavimui XML faile. Koordinatės saugomos kaip geografinės padėties dvigubo tikslumo slankiojo kablelio taškuose.

      Įkėlus viską į FOSMFile, suformuojame duomenis ir konvertuojame juos į formatą, kurį galima nuosekliai susieti su disku ir efektyviai įkelti vykdymo metu ( „UStreetMap“ klasė.)

      Atsižvelgiant į jūsų naudojimo atvejį, galbūt norėsite labai pritaikyti „UStreetMap“ klasėje saugoti duomenis, kurie yra artimesni neapdorotam žemėlapio vaizdavimui. Pvz., Jei norėtumėte atlikti didelio masto GPS navigaciją, norėtumėte, kad vykdymo metu būtų pasiekiami didesnio tikslumo duomenys.

      Yra įvairių laisvų galų.

      Importuojant failus, didesnius nei 2 GB, užstrigs. Tai yra dabartinis UE4 apribojimas.

      Kai kurie sugeneruotų OSM XML failų variantai nebus tinkamai įkeliami. Pavyzdžiui, kol kas nepalaikomi vienkartiniai ribotuvai apie vertes.

      „Street Map“ API turėtų būti lengva naudoti iš C ++, tačiau „Blueprint“ palaikymas nebuvo skirtas šiam papildiniui. Daugybė būdų yra skirti efektyvumui. Vis dėlto, jei yra paklausa, galima pridėti „Blueprint“ scenarijaus kabliukus.

      Kaip minėta pirmiau, koordinatės sutrumpinamos iki vieno tikslumo, o to nepakaks išplėstinio naudojimo atvejais. Panašiai geografinės koordinatės nelieka ir pasibaigus pradiniam importo etapui. Visos koordinatės projektuojamos į plokštumą ir perkeliamos į žemėlapį ribojančio stačiakampio vidurį.

      Runtime duomenų struktūros yra sukonfigūruotos palaikyti kelio paiešką (žr „FStreetMapNode“ nario funkcijos), tačiau dar nėra GPS algoritmo įgyvendinimo pavyzdžių.

      Sugeneruoti tinklo duomenys šiuo metu yra labai paprasti ir neturi informacijos apie susidūrimą, navigacijos tinklo palaikymo ir neturi tekstūros koordinačių. Tai iš tikrųjų yra tik pavyzdys. Siekiant didesnio atvaizdavimo lankstumo ir greitesnio veikimo, importuotojas gali būti pakeistas, kad generuotų faktinius „Static Mesh“ išteklius žemėlapio geometrijai.

      Galite ieškoti @daryti įskiepio šaltinio kode, kad būtų galima atlikti kitus nedidelius patobulinimus.

      Šiam papildiniui reikalinga „Visual Studio“ ir „C ++“ kodo projektas arba visas „Unreal Engine 4“ šaltinio kodas iš „GitHub“. Jei dar nesinaudojote programavimu UE4, žiūrėkite oficialų programavimo vadovą!

      „Street Map“ papildinys turėtų veikti visose platformose, kurias palaiko UE4, tačiau naujausia versija nebuvo išbandyta kiekvienoje platformoje.

      Mes stengsimės atnaujinti šaltinio kodą, kad jis veiktų su naujomis „Unreal Engine“ versijomis, kai jos išleidžiamos.

      Neketinu aktyviai reguliariai atnaujinti papildinio, tačiau jei bus padėta kokių nors kritinių pataisymų, tikrai pabandysiu juos peržiūrėti ir integruoti.

      Jei turite klaidų, pateikite problemą, pateikite užklausą arba suimkite mane „Twitter“.

      Galiausiai, a didelis aciu į „OpenStreetMap“ fondą ir fantastišką bendruomenę, kuri teikia žemėlapių duomenis ir prižiūri duomenų bazę.


      Galimybės

      rodyti šį pagalbos pranešimą ir išeiti

      parenka sritį, kuriai generuoti osm SRTM duomenis, surišant langelį. Jei reikia, failai atsisiunčiami iš NASA serverio. Nurodykite kaip & ltleft & gt: & ltbottom & gt: & ltright & gt: & lttop & gt atitinkamai platumos ir ilgumos laipsniais. Platumos į pietus nuo pusiaujo ir ilgumos į vakarus nuo Grinvičo gali būti nurodomos kaip neigiami dešimtainiai skaičiai. Jei bus suteikta ši parinktis, nurodyti hgt failai bus praleisti.

      išvesties kontūro duomenims naudokite daugiakampį FILENAME, atsisiųstą iš http://download.geofabrik.de/clipbounds/. Tada skaičiavimo laikas bus šiek tiek ilgesnis. Jei nurodyta, ribojimo dėžutė perduota - sritis parinktis bus ignoruojama.

      atsisiųskite tik reikalingus failus, nerašykite kontūro duomenų.

      nurodykite kontūro linijos žingsnio dydį metrais arba pėdomis, jei naudojate - pėdos variantą. Numatytoji vertė yra 20.

      išvesties kontūro linijos pėdomis, o ne metrais.

      pasakykite tai, jei nenorite, kad išvestyje atsirastų jūros lygio kontūro linija (0 m) (kuri kartais atrodo gana negraži).

      nurodykite išvesties osm failo (-ų) failų pavadinimų priešdėlį.

      nurodykite failų, į kuriuos norite rašyti ilgumos / platumos / aukščio duomenis, priešdėlį, o ne generuoti kontūro osmą.

      nurodykite dviejų kableliais atskirtų sveikųjų skaičių eilutę pagrindinėms ir vidutinėms aukščių kategorijoms, pvz. g. „200,100“, kuris yra numatytasis nustatymas. Tai reikalinga išgalvotam perteikimui.

      lygiagrečiai vykdomų darbų skaičius (tik „POSIX“)

      perduoti skaičių kaip OSM-VERSION naudoti išvesties. Numatytoji vertė yra 0,6. Jei jums reikia senesnės versijos, pabandykite 0.5.

      parašykite mazgo ir kelio elementų laiko žymos atributą OSM XML ir o5m išvestyje. To gali prireikti kai kuriems vertėjams žodžiu. O5m išėjime tai taip pat suaktyvina keitimų rinkinio ir vartotojo informacijos rašymą.

      nurodykite sveiko skaičiaus pirmojo užrašyto mazgo, esančio išvesties OSM xml, ID. Pagal numatytuosius nustatymus ji yra 10000000, tačiau kai kuriems OSM xml sujungimams kyla problemų, kai susiduriama su ne unikaliais ID. Šiuo atveju ir šiuo metu galima sakyti 10000000000 (dešimt milijardų) tada.

      nurodykite sveiko skaičiaus kaip pirmojo užrašyto būdo id išvesties OSM xml. Pagal numatytuosius nustatymus ji yra 10000000, tačiau kai kuriems OSM xml susijungimams kyla problemų, kai susiduriama su ne unikaliais ID. Šiuo atveju ir šiuo metu galima sakyti 10000000000 (dešimt milijardų).

      nurodykite sveikąjį skaičių kaip maksimalų mazgų skaičių vienoje sugeneruotoje plytelėje. Pagal numatytuosius nustatymus ji yra 1000000, tai yra maždaug maksimalus mazgų, kuriuos tinkamai tvarko „mkgmap“, skaičius. Jei norite didesnių plytelių, išbandykite didesnes vertes. Jei norite išvesties vieną failą, čia pasakykite 0.

      nurodykite sveikąjį skaičių kaip maksimalų mazgų skaičių į vieną pusę. Pagal numatytuosius nustatymus ji yra 2000, kuri yra didžiausia OSM api 0.6 versijos vertė. Pasakykite čia 0, jei norite nepaskirstytų būdų.

      supaprastinkite kontūro linijas naudodami Ramer-Douglas-Peucker (RDP) algoritmą su šia EPSILON verte. Kuo didesnė vertė, tuo labiau supaprastintos kontūro linijos. Perduota vertė bus tiesiogiai naudojama, t. e. WGS84 pagrindu veikiančių atskaitos sistemų, tokių kaip EPSG: 4326, perduota reikšmė interpretuojama atitinkamai kaip platumos ir ilgumos laipsniai. Norėdami pašalinti tik tiesių linijų viršūnes, naudokite 0,0 reikšmę. Protingos reikšmės, skirtos sumažinti išvesties failo dydį ir išsaugoti patikimą tikslumą, priklauso nuo failo skiriamosios gebos. SRTM3 duomenims tam tikra vertė nuo 0,0001 iki 0,0005 atrodo pagrįsta, todėl failo dydis sumažėja maždaug vienu ar dviem trečdaliais. Atkreipkite dėmesį, kad naudojant kontūro linijos supaprastinimą sulėtės kontūro linijos generavimas. Numatyta nenaudoti KPP.

      Neištrinkite visų viršūnių supaprastindami kontūro liniją naudodami RDP, bet ištrinkite tik šio diapazono taškus. Pagal numatytuosius nustatymus ištrinamos visos neišleidžiamos viršūnės. Naudokite šią parinktį tik tuo atveju, jei norite pasinaudoti KPP, bet jums reikia kažkokių artimų taškų dėl pateikimo problemų. Naudojant šią parinktį, labai sulėtės kontūro linijų generavimas.

      įjungti išvesties failų glazavimą. Tai sumažina reikalingą vietos diske, tačiau lemia ilgesnį skaičiavimo laiką. Nurodykite sveikąjį skaičių nuo 1 iki 9. 1 reiškia mažą suspaudimą ir greitesnį skaičiavimą, 9 reiškia didelį suspaudimą ir mažesnį skaičiavimą.

      rašykite protobuf dvejetainius failus, o ne OSM XML. Tai sumažina reikalingą vietos diske. Įsitikinkite, kad programos, su kuriomis norite naudoti išvesties failus, gali analizuoti PBF. Išvesties failai turės .osm.pbf plėtinį.

      rašykite o5m dvejetainius failus vietoj OSM XML. Tai sumažina reikalingą vietos diske. Įsitikinkite, kad programos, su kuriomis norite naudoti išvesties failus, gali analizuoti o5m. Išvesties failų plėtinys bus .o5m.

      naudokite SRTM-RESOLUTION lanko sekundžių skiriamąją gebą. Galimos vertės yra 1 ir 3, numatytoji vertė yra 3. Apie skirtingas SRTM duomenų versijas ir žemėlapio aprėptį žr --srtm versija variantą.

      naudoti šią SRTM duomenų VERSIJĄ. Palaikomos SRTM versijos yra 2.1 ir 3. 2.1 versijoje yra tuštumų, kurie buvo užpildyti 3 versijoje naudojant ASTER GDEM ir kitus duomenis. 2.1 versijoje tik JAV teritorija įtraukta į 1 lanko antrojo duomenų rinkinį. 3 versijoje aprėpiamas beveik visas pasaulis. Numatytasis šios parinkties variantas yra 3. Jei norite senosios versijos, pasakykite --srtmversion=2.1 čia

      vartotojo vardas, kurį reikia naudoti prisijungiant prie „Earthexplorer“. To reikia, jei norite naudoti NASA SRTM šaltinius 3.0 versijoje. Jei dar neturite „Earthexplorer“ prisijungimo, apsilankykite https://ers.cr.usgs.gov/register/ ir sukurkite jį. Nurodžius, „phyghtmap“ išsaugos „Earthexplorer“ prisijungimo duomenis nešifruotus faile, vadinamame „.phyghtmaprc“, jūsų namų kataloge. T. y., Turite nurodyti tik šią parinktį (ir --earthexplorer-password variantas) vieną kartą. Be to, komandinėje eilutėje nurodytą slaptažodį gali perskaityti kiekvienas jūsų sistemos vartotojas. Taigi, nesirinkite slaptažodžio, kurio nenorite atskleisti kitiems. Ši parinktis turėtų būti nurodyta kartu su --earthexplorer-password variantą.

      slaptažodis, kurį reikia naudoti prisijungiant prie „Earthexplorer“. Ši parinktis turėtų būti nurodyta kartu su --earthexplorer-user variantą. Norėdami gauti daugiau paaiškinimų, žr --earthexplorer-user variantą.

      jei nurodyta, NASA SRTM duomenys yra užmaskuoti duomenimis iš www.viewfinderpanoramas.org. Galimos vertės yra 1 ir 3 (paaiškinimus žr --srtm variantas).

      nurodykite šaltinių, kurie bus naudojami kaip kableliais atskirtos eilutės, sąrašą. Galimi šaltiniai yra „srtm1“, „srtm3“, „view1“ ir „view3“. Jei nurodyta, duomenų šaltinis bus pasirinktas naudojant šią parinktį kaip nuostatų sąrašą. Nurodant - šaltinis=vaizdas3, pavyzdžiui, srtm3 pirmenybę teikia vaizdo ieškiklio 3 lanko sekundės duomenims, o ne NASA SRTM 3 lanko sekundės duomenims. Taip pat žiūrėkite --srtm versija variantas skirtingoms SRTM duomenų versijoms.

      teisingas x kontūro linijų poslinkis. Nustatymas - korekcijos=0Pranešta, kad .0005 davė gerų rezultatų. Tačiau atrodo, kad teisingas nustatymas priklauso nuo jūsų vietos, todėl čia gali būti geriau pradėti nuo 0.

      teisingas y kontūro linijų poslinkis. Nustatymas - karkasas=0Pranešta, kad .0005 davė gerų rezultatų. Tačiau atrodo, kad teisingas nustatymas priklauso nuo to, kur esate, todėl čia gali būti geriau pradėti nuo 0.

      Hgt failų talpyklos katalogas. Atsisiunčiami SRTM failai yra saugomi talpyklos kataloge, kad būtų galima juos naudoti vėliau. Numatytasis katalogas tai yra ./hgt/ dabartiniame kataloge. Naudodami šią parinktį galite nurodyti kitą talpyklos katalogą.

      perrašyti indekso failus ir išeiti. Išbandykite tai, jei bandant atsisiųsti duomenų failus „phyghtmap“ kyla problemų.

      pratęskite tuštumos vertės diapazoną iki šio aukščio. Hgt failo formatas naudoja negaliojančią vertę, kuri yra -0x8000 arba, skaičiuojant po kablelio, -32768. Kai kuriuose „hgt“ failuose yra kitų neigiamų verčių, kurios yra neįtikėtinos kaip aukščio vertės, pvz. g. -0x4000 (-16384) ar panašiai. Kadangi žemiausia vieta žemėje yra apie -420 m žemiau jūros lygio, turėtų būti saugu pasakyti -500 čia tuo atveju, jei susiduriate su keistu phmghtmap elgesiu, pvz., programos nutraukimu, nes viršijamas didžiausias leidžiamas rekursijų skaičius.


      Kurti variantus

      Priklausomai nuo versijos tipo (žr. Aukščiau), skirtingos versijos parinktys yra ĮJUNGTOS arba IŠJUNGTOS. Galite pakeisti „ccmake“ arba komandinės eilutės nustatymus panašiai kaip

      Pastatymo variantas Numatytas apibūdinimas
      BUILD_BENCHMARKS IŠJUNGTA (įjungta kūrimo versijoje) Kurkite etalono programas. Jums to reikia tik tuo atveju, jei ketinate vykdyti etalonus.
      BUILD_DATA_TESTS IŠJUNGTA (įjungta kūrimo versijoje) Sukurkite duomenų testai. Šiems bandymams reikalingi OSM testų duomenys iš kitos saugyklos, todėl juos atlikti yra šiek tiek sunkiau. Išsamesnės informacijos rasite skyriuje „Bėgimo testai“.
      BUILD_EXAMPLES ĮJUNGTA Sukurkite pavyzdžius pavyzdžių kataloge.
      BUILD_HEADERS IŠJUNGTA (įjungta kūrimo versijoje) Įdomu tik „Libosmium“ kūrėjams. Tai sukurs kiekvieną „Libosmium“ antraštės failą, kad būtų galima patikrinti, ar įtraukimo priklausomybės yra tinkamai nustatytos.
      PASTATYMAS ĮJUNGTA Sukurkite vieneto bandymus. Išsamesnės informacijos rasite skyriuje „Bėgimo testai“.


      Tai gali būti šiek tiek per daug net ir mums. & # 8221

      Maždaug tuo metu, kai pridėjome „Open Plaques“ mašinų žymių palaikymą, projekto vadovė Frankie Roberto paklausė: & # 8220Kaip palaikyti „Open Street Map“ (OSM) mašinų žymes? & # 8221

      Mano tiesioginis atsakymas buvo kažkas panašaus į & # 8220That & # 8217s, netgi mums šiek tiek per daug nykus. & # 8221 Tai reiškė, kad aš nuolat apie tai galvojau. Ir dabar mes tai darome.

      Jei nesate tikras, kas yra „# 8220way“ ir „# 8221“, geriausia pradėti nuo „OpenStreetMap“ ir „# 8217“ pačių aprašymo, kaip jų metaduomenys yra sudaryti:

      Mūsų žemėlapius sudaro tik keli paprasti elementai, ty mazgai, būdai ir santykiai. Kiekviename elemente gali būti savavališkas skaičius savybių (dar žinomos kaip žymos), kurios yra raktų ir verčių poros (pvz., Greitkelis = pagrindinis) ir # 8230

      Mazgas yra pagrindinis OSM schemos elementas. Mazgus sudaro platuma ir ilguma (vienas geografinis taškas) ir # 8230

      Būdas yra sutvarkytas mažiausiai 2 ir daugiausia 2000 mazgų sujungimas, apibūdinantis linijinę ypatybę, pvz., Gatvę ar pan. Jei pasieksite mazgo limitą, paprasčiausiai suskirstykite savo kelią ir, jei reikia, sugrupuokite visus santykius. Nodes can be members of multiple ways.

      Frankie’s interest is principally in marking up buildings in and around Manchester, where he lives. When he tags one of his photos with osm:way=30089216 we can fetch the metadata (the key-value pairs) for that way using the OSM API and see that it has the following properties:

      That allows to us “expand” the original machine tag and display a short caption next to the photo, in this case: “St George’s House is a building in OpenStreetMap” with a link back to the web page for that way on the OSM site.

      You may have noticed that there are a bunch of other key-value pairs in that example, like the name of the architect, that we don’t do anything with. Which attributes are we looking for, then? The short answer is: Not most of them. The complete list of map features in OSM is a bit daunting in scope and constantly changing. It would be nice to imagine that we could keep pace with the discussions and the churn but that’s just not going to happen. If nothing else, the translations alone would become unmanageable.

      Instead we’re going to start small and see where it takes us. Here are the list of tagged features in a way or node definition that we pay attention to, and how they’ll be displayed:

      k=name v=
      … is a feature in OpenStreetMap (If present, with another recognized tag we will display the name for the thing being described in place of the more generic “this is a…”)

      k=building v=yes
      … is a building in OpenStreetMap

      k=cycleway
      … is a bicycle path in OpenStreetMap

      k=motorway (v=cycleway)
      … is a highway in OpenStreetMap (unless v is “cycleway” in which case it’s a bike path)

      k=railway v=subway (or tram or monorail or light_rail)
      … is a subway (or tram or monorail or light_rail) line in OpenStreetMap

      k=railway v=station
      … is a train station in OpenStreetMap if the type of railway is also defined (above) then we’ll be specific about the type of station. I should mention that as of this writing we’re still waiting for the translations for “this is a train station” to come back because I, uh… anyway, real soon now.

      k=waterway v=stream (or canal or river)
      … this is a stream (or canal or river) in OpenStreetMap

      k=landuse v=farm (or forest)
      … this is a farm (or forest) in OpenStreetMap

      k=natural v=forest (or beach)
      … this is a forest (or beach) in OpenStreetMap

      Which means: We’ve almost certainly got at least some of it wrong. Anyone familiar with OSM features will probably be wondering why we haven’t included amentiy or shop tags since they contain a wealth of useful information. I hope we will, but it wasn’t clear how we should decide which features to support (more importantly, which to exclude) and the number of possible combinations were starting to get a bit out of hand and we have this little photo-sharing site to keep running.

      This is the part where I casually mention that we’ve also added alpha shapes and “donut holes”, derived from geotagged photos, and some of it is just trying to shine the spotlight on places and environments that we take for granted.

      Like I said, we’ve almost certainly got at least some of it wrong but hopefully we got part of it right and can correct the rest as we go. This one is definitely a bit more of an experiment than some of the others.

      Finally, in the tangentially related department we finished wiring up the RSS/syndication feeds to work properly with wildcard machine tags. That means you can subscribe to a feed of all the (public) photos tagged with osm:way= or osm:node= or, if you’re like me, all the photos of places to eat in Dopplr with dopplr:eat= .


      Žiūrėti video įrašą: Koordinates pamoka. Scratch (Rugsėjis 2021).