Cov txheej txheem:

Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap: 7 Cov Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap: 7 Cov Kauj Ruam (nrog Duab)

Video: Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap: 7 Cov Kauj Ruam (nrog Duab)

Video: Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap: 7 Cov Kauj Ruam (nrog Duab)
Video: Yuav ua li cas thiaj hais lus English tau zoo? 2024, Hlis ntuj nqeg
Anonim
Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap
Yuav Ua Li Cas Tsim Cov Ntawv Qhia Zoo Stylized Siv OpenStreetMap

Hauv cov lus qhia no, Kuv yuav piav qhia tus txheej txheem uas koj tuaj yeem tsim koj tus kheej cov ntawv tsim ua cov ntawv qhia ua qauv. Daim duab qhia chaw zoo nkauj yog daim duab qhia chaw uas tus neeg siv tuaj yeem hais qhia cov ntaub ntawv txheej uas pom tau, nrog rau txhais cov qauv uas txhua txheej tau pom. Kuv yuav piav qhia tus txheej txheem dhau los uas koj tuaj yeem sau software rau stylize cov duab qhia chaw, ua raws li piv txwv ntawm Python software kuv tau sau los ua txoj haujlwm no.

Cov vis dis aus hauv qab no hais txog yuav ua li cas kuv tus kheej tsim cov duab qhia chaw, tab sis nyeem txuas ntxiv kom paub meej. Kuv zoo siab heev pom dab tsi hauv zej zog tsim!

Kuv qhov kev txhawb siab tom qab qhov haujlwm no yog dab tsi?

Hais ncaj, Kuv pib qhov haujlwm no vim kuv xav tias nws yuav lom zem ua. Lub tswv yim no tau nyob ib puag ncig hauv kuv lub siab rau xyoo dhau los, thiab thaum kawg kuv tau siv sijhawm uas kuv xav tau kom coj nws mus rau qhov muaj txiaj ntsig. Tom qab ib hnub ntawm kev tsim qauv nrog qee qhov kev sau yooj yim, Kuv muaj peev xwm los tsim cov txiaj ntsig zoo kawg nkaus - yog li cog lus tias kuv paub tias kuv xav tau ua kom tiav kuv cov ntawv sau xws li lwm tus tuaj yeem yooj yim tsim lawv tus kheej.

Kuv qhov kev txhawb siab hauv kev sau cov lus qhia no yog vim qhov tseeb uas kuv pom cov ntaub ntawv tsawg heev ntawm yuav ua li cas los tsim koj tus kheej cov duab qhia chaw los ntawm kos. Kuv vam tias yuav qhia qhov kuv tau kawm nrog zej zog.

Cov peev txheej/Txuas:

  • OpenStreetMap
  • OpenStreetMap Legalese
  • Github Repository

Khoom siv

  • Kev faib sej (Kuv siv Anaconda & Python 3.6)
  • PyQt5 (rau GUI kev vam khom)

Kauj Ruam 1: Txheeb Tus Txheej Txheem Kuv: Rub Tawm OSM Cov Ntaub Ntawv

Txhais cov txheej txheem Kuv: Rub tawm OSM Cov Ntaub Ntawv
Txhais cov txheej txheem Kuv: Rub tawm OSM Cov Ntaub Ntawv

Thaum kuv pib qhov haujlwm no thawj zaug, lo lus nug tshaj plaws yog, "Kuv tuaj yeem tau txais cov ntaub ntawv qhia chaw nyob qhov twg." Lawm, raws li koj xav tau, Kuv tam sim xav txog Google Maps. Tom qab kev tshawb fawb tseem ceeb, Kuv pom tias Google yeej tsis xav kom tib neeg ua si nrog lawv cov ntaub ntawv, hauv kev muaj tswv yim zoo lossis lwm yam. Qhov tseeb, lawv qhia meej tsis pub web-scraping los ntawm Google Maps.

Hmoov zoo, kuv qhov kev poob siab tau luv luv thaum kuv pom ntawm OpenStreetMap (OSM). OSM yog txoj haujlwm sib koom tes nrog tib neeg thoob plaws ntiaj teb pab txhawb cov ntaub ntawv. OSM qhia meej meej tso cai qhib kev siv lawv cov ntaub ntawv hauv lub npe Open Source software. Raws li xws li, mus ntsib OSM lub vev xaib yog qhov uas daim ntawv qhia kev qhia paub pib qhov twg.

Tom qab tuaj txog ntawm OSM lub vev xaib, nyem rau ntawm "Export" tab los qhia cov cuab yeej xa tawm daim ntawv qhia. Tam sim no, nthuav dav kom pom thaj av uas koj txaus siab sau cov ntaub ntawv qhia chaw. Xaiv qhov "Manually xaiv thaj chaw sib txawv" txuas, uas yuav nqa lub npov ntawm koj lub vijtsam. Puab thiab tso lub npov no hla thaj tsam ntawm kev txaus siab. Thaum txaus siab, nyem rau "Export" khawm kom rub koj cov ntaub ntawv OSM.

Nco tseg #1: Yog tias koj cheeb tsam xaiv tau muaj cov ntaub ntawv ntau dhau, koj yuav tau txais qhov yuam kev uas koj tau xaiv ntau dhau. Yog tias qhov no tshwm sim rau koj, nyem rau "Overpass API" khawm kom rub koj cov ntawv loj dua.

Nco tseg #2: Yog tias koj rub tawm OSM cov ntaub ntawv loj dua 30MB, Python program kuv tau sau yuav qeeb qeeb. Yog tias koj txiav txim siab siv thaj av loj, txiav txim siab sau ib tsab ntawv los pov tseg cov ntaub ntawv tsis tseem ceeb uas koj tsis npaj yuav kos.

Kauj Ruam 2: Txheeb Xyuas Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv

Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv
Txhais Cov Txheej Txheem II: Nkag Siab Cov Ntaub Ntawv

"Kuv muaj cov ntaub ntawv … tam sim no yog dab tsi?"

Pib los ntawm qhib koj cov ntaub ntawv OSM rub tawm rau hauv koj cov ntawv nyiam kho software. Koj yuav xub pom qhov no yog XML cov ntaub ntawv, uas zoo heev! XML yog qhov yooj yim txaus los cais. Kev pib ntawm koj cov ntaub ntawv yuav tsum zoo li yuav luag zoo ib yam rau thawj daim duab ntawm theem no - qee qhov yooj yim metadata thiab thaj tsam thaj tsam yuav teev tseg.

Thaum koj rub cov ntawv, koj yuav pom peb cov ntaub ntawv siv thoob plaws:

  1. Nodes
  2. Txoj kev
  3. Kev sib raug zoo

Cov ntaub ntawv yooj yim tshaj plaws, lub node tsuas muaj tus cim tshwj xeeb, latitude, thiab longitude ntev cuam tshuam nrog nws. Tau kawg, muaj cov metadata ntxiv, tab sis peb tuaj yeem pov tseg nws yam xyuam xim.

Txoj hauv kev yog kev sib sau ntawm cov nodes. Ib txoj hauv kev tuaj yeem ua raws li cov duab uas nyob ib puag ncig lossis raws li txoj kab qhib. Txoj hauv kev suav nrog kev sau cov nodes qhia los ntawm lawv tus cim tshwj xeeb. Lawv tau tagged nrog cov yuam sij uas txheeb xyuas cov ntaub ntawv pawg lawv koom nrog. Piv txwv li, txoj hauv kev pom hauv daim duab thib peb saum toj no yog cov ntaub ntawv pab pawg "chaw," thiab nws pawg pab pawg, "kob." Hauv lwm lo lus, txoj hauv kev tshwj xeeb no yog txheej "kob" nyob hauv pab pawg "qhov chaw". Txoj hauv kev kuj muaj cov cim tshwj xeeb.

Thaum kawg, kev sib raug zoo yog kev sau ntau txoj hauv kev. Kev sib raug zoo tuaj yeem sawv cev rau txoj hauv kev zoo nrog qhov lossis nrog ntau thaj chaw. Kev sib raug zoo kuj tseem yuav muaj tus cim tshwj xeeb thiab yuav raug sau npe zoo ib yam rau txoj hauv kev.

Koj tuaj yeem nyeem ntxiv txog cov ntaub ntawv no los ntawm OSM wiki:

  • Nodes
  • Txoj kev
  • Kev sib raug zoo

Kauj Ruam 3: Txheeb Tus Txheej Txheem III: Digesting Cov Ntaub Ntawv

Txheeb xyuas Tus Txheej Txheem III: Digesting Cov Ntaub Ntawv
Txheeb xyuas Tus Txheej Txheem III: Digesting Cov Ntaub Ntawv

Tam sim no koj yuav tsum muaj tsawg kawg yog kev nkag siab ntawm cov ntaub ntawv uas tsim los ua OSM cov ntaub ntawv. Txij ntawm no mus, peb txaus siab nyeem OSM cov ntaub ntawv siv koj hom lus xaiv. Thaum cov kauj ruam no yog Python-centric, yog tias koj tsis xav siv Python, koj yuav tsum tseem nyeem ntu no vim nws muaj ob peb lub tswv yim thiab cov lus qhia.

Pob xml suav nrog los ntawm lub hauv paus nrog feem ntau tus qauv Python faib. Peb yuav siv pob ntawv no los cais peb cov ntaub ntawv OSM yooj yim heev raws li pom hauv thawj daim duab. Hauv ib zaug rau lub voj, koj tuaj yeem ua tus tuav ntawm OSM cov ntaub ntawv rau txhua qhov tshwj xeeb cov ntaub ntawv.

Ntawm kab kawg ntawm daim duab, koj yuav pom tias kuv tshawb xyuas qhov 'ciam' tag. Cov kauj ruam no yog qhov tseem ceeb hauv kev txhais cov latitude thiab longitude qhov tseem ceeb rau hauv pixels ntawm qhov screen. Kuv pom zoo kom khiav qhov kev hloov pauv no thaum lub sijhawm koj thauj OSM cov ntaub ntawv, vim tias kev hloov pauv ntau ntawm cov ntaub ntawv yog txheej txheem hnyav.

Hais txog kev hloov latitudes thiab ntev mus rau tshuaj ntsuam xyuas, ntawm no yog qhov txuas rau kev ua lej uas kuv tau sau. Koj yuav zoo li pom qee yam coj txawv txawv me ntsis hauv kev hloov latitude rau tshuaj ntsuam xyuas. Muaj cov kauj ruam ntxiv koom nrog thaum piv rau qhov ntev! Raws li nws hloov tawm, OSM cov ntaub ntawv raug coj ua qauv siv Pseudo-Mercator txoj haujlwm ua haujlwm. Hmoov zoo, OSM muaj cov ntaub ntawv zoo txog cov ncauj lus no ntawm no, thiab lawv muab txoj haujlwm latitude hloov pauv rau ntau yam lus. Zoo heev!

Nco tseg: Hauv kuv tus lej, kev tshuaj xyuas lub vijtsam (0, 0) yog kaum sab laug sab laug ntawm lub vijtsam.

Kauj Ruam 4: Kev Siv Python Map Stylizer

Python Daim Ntawv Qhia Stylizer Siv
Python Daim Ntawv Qhia Stylizer Siv
Python Daim Ntawv Qhia Stylizer Siv
Python Daim Ntawv Qhia Stylizer Siv
Python Daim Ntawv Qhia Stylizer Siv
Python Daim Ntawv Qhia Stylizer Siv

Txog tam sim no, kuv tau tham txog OSM cov ntaub ntawv cov ntaub ntawv - nws yog dab tsi, yuav nyeem nws li cas, thiab yuav ua li cas nrog nws. Tam sim no kuv yuav tham txog software uas kuv tau sau los daws qhov teeb meem daim duab qhia chaw (GitHub repo muab rau hauv kev qhia).

Kuv qhov kev coj ua tshwj xeeb tsom mus rau cov neeg siv kev tswj kav kav dej. Tshwj xeeb, kuv tso cai rau tus neeg siv xaiv cov txheej uas lawv xav pom thiab yuav ua li cas lawv xav kom txheej ntawd pom tau. Raws li kuv tau hais luv luv ua ntej, muaj ob chav kawm ntawm cov ntsiab lus ua: sau cov khoom thiab cov khoom kab. Kev sau tau tsuas yog txhais los ntawm cov xim, thaum kab tau txhais los ntawm xim, kab dav, kab style, kab kab hau, thiab kab koom ua ke.

Raws li tus neeg siv hloov kho rau txheej txheej thiab pom kev, cov kev hloov pauv tau pom nyob hauv daim duab qhia chaw sab xis. Thaum tus neeg siv hloov kho daim duab qhia chaw kom pom lawv qhov txaus siab, nws tuaj yeem kho qhov siab tshaj plaws ntawm daim duab qhia chaw thiab khaws daim duab qhia chaw ua duab hauv nws lub khoos phis tawj. Hauv kev khaws cov duab, tus neeg siv cov ntawv teeb tsa kuj tseem yuav raug cawm. Qhov no ua kom tus neeg siv rov tuaj yeem rov siv dua thiab teeb tsa nws siv los tsim cov duab tshwj xeeb txhua lub sijhawm.

Kauj Ruam 5: Siv Qhov Tsis Zoo + Tshuaj

Kev Siv Teeb Meem + Tshuaj
Kev Siv Teeb Meem + Tshuaj
Kev Siv Teeb Meem + Tshuaj
Kev Siv Teeb Meem + Tshuaj

Thaum kuv xub pib ua qauv qhia daim ntawv qhia tus kheej, Kuv tau kawm tias qhov no yog txheej txheem tsis txaus ntseeg. Muab cov neeg siv kev tswj hwm siab tshaj plaws tuaj yeem yooj yim yooj yim vim muaj coob tus muaj "pob qhov rooj." Txawm li cas los xij, muaj kev daws teeb meem yooj yim, uas cuam tshuam nrog kev sau me ntsis ntxiv.

Kuv pib tawm los ntawm kev txheeb xyuas cov txheej twg kuv nyiam tshwj xeeb hauv. Rau lub hom phiaj ntawm cov lus qhia no, cia peb hais tias kuv nyiam tshaj plaws hauv cov tsev (tag nrho lawv), dej, txoj kev loj, thiab txoj kev saum npoo av. Kuv yuav sau ib tsab ntawv uas kuv tsim ib qho piv txwv ntawm Kev Kho Kom Zoo, toggle txheej txheej tsim nyog siv setItemState () ua haujlwm thiab txiav txim qhov tsis sib xws, thiab teeb xim raws li qhov kuv xav kom kuv cov khaubncaws sab nraud povtseg siv cov setValue (). Cov ntaub ntawv teeb tsa uas tau txais kev cawmdim tuaj yeem theej rau hauv cov ntawv tais ceev tseg thiab thauj los ntawm tus neeg siv.

Ib qho piv txwv tsab ntawv nyob hauv daim duab saum toj no. Cov duab thib ob yog tus piv txwv ntawm tus pab cuam lub luag haujlwm yuav zoo li cas, thiab txij li lawv nyob hauv txhua qhov zoo ib yam, tsuas yog nrog qhov sib txawv sib txawv, Kuv tsuas suav nrog daim duab ntawm ib qho piv txwv.

Kauj Ruam 6: Cheeb Tsam rau Kev Txhim Kho

Cheeb Tsam rau Kev Txhim Kho
Cheeb Tsam rau Kev Txhim Kho

Tom qab xav txog kuv qhov kev siv software, Kuv tau txheeb xyuas ntau thaj chaw uas yuav pab tau txhim kho rau cov neeg siv fais fab.

  1. Dynamic txheej rendering. Tam sim no, Kuv muaj daim ntawv teev npe ua ntej ntawm cov txheej uas yuav muab, uas yog nws. Ib feem ntawm qhov kev txiav txim siab yog qhov nyuaj hauv kev txiav txim siab seb puas yuav tsum tau txheej lossis kab. Raws li qhov tshwm sim, nrog yuav luag txhua txhua OSM cov ntaub ntawv koj qhib, koj yuav tau txais tos nrog cov lus ceeb toom me ntsis txog cov txheej uas yuav tsis raug xa tawm. Feem ntau cov no yog qhov tsawg heev nws tsis yog qhov teeb meem, tab sis muaj kev khi rau cov txheej txheem tseem ceeb uas ploj lawm. Dynamic txheej ua haujlwm yuav tshem tawm cov kev txhawj xeeb no.
  2. Kev ua haujlwm txheej txheem dynamic. Qhov no mus tes-hauv-tes nrog #1; yog tias koj xav tau cov txheej txheem ua haujlwm tau zoo, koj xav tau txheej txheej txheej txheej (piv txwv li, txheeb xyuas cov txheej txheej vs. kab ib txheej). Qhov no tuaj yeem ua tiav qhov tsim nyog, raws li kuv tau kawm, vim Txoj Kev uas nws thawj zaug thiab qhov kawg ntawm tib yam yuav zoo ib yam yuav nyob nrog txoj hauv kev thiab yog li ntawd tau ntim.
  3. Pawg Neeg Xim Daim duab qhia chaw zoo nkauj feem ntau muaj ob peb txheej uas zoo ib yam, thiab ua kom cov neeg siv hloov kho ib pab pawg cov style txhua lub sijhawm yuav ua rau txo tus neeg siv lub sijhawm siv kho cov txheej ib-rau-ib.

Kauj Ruam 7: Kaw Kev Xav

Kaw Kev Xav
Kaw Kev Xav
Kaw Kev Xav
Kaw Kev Xav
Kaw Kev Xav
Kaw Kev Xav

Ua tsaug rau txhua tus uas siv sijhawm los nyeem los ntawm Kuv Cov Lus Qhia. Txoj haujlwm no sawv cev rau qhov kawg ntawm ntau teev ntawm kev tshawb fawb, tsim qauv, phiaj xwm, thiab debugging. Kuv vam tias kuv tuaj yeem muab lub ncoo tso tawm los ntawm qhov uas koj tuaj yeem tsim koj tus kheej txoj haujlwm lossis txhim kho qhov kuv tau sau lawm. Kuv kuj vam tias kuv qhov tsis txaus thiab cov lus qhia muab ntau cov ntsiab lus los txiav txim siab hauv koj tus qauv. Yog tias koj tsis nyiam ua txoj haujlwm thiab xav tau ntau dua los tsim cov txuj ci kos duab, Kuv xav pom qhov koj ua hauv cov lus! Qhov muaj peev xwm tsis muaj qhov kawg!

Ua tsaug tshwj xeeb rau OpenStreetMap tus pab! Cov phiaj xwm zoo li no yuav ua tsis tau yog tsis muaj lawv lub dag zog tseem ceeb.

Thov qhia rau kuv paub yog tias koj muaj lus nug hauv cov lus!

Kev Sib Tw Maps
Kev Sib Tw Maps
Kev Sib Tw Maps
Kev Sib Tw Maps

Khiav Tawm Hauv Kev Sib Tw Hauv Maps

Pom zoo: