More

Proj4js izmantošana Openlayers - Proj4js nav definēts

Proj4js izmantošana Openlayers - Proj4js nav definēts


I want to use Proj4js.

  

Man rodas javascript kļūda:ReferenceError: Proj4js nav definēts. Kad es paskatos uz avotu, kas norādīts vietnē/cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4-src.js, Es neredzu nekādu specifikāciju objektam ar nosaukumuProj4jskam ir īpašumsdefs. Tomēr tas ir tas, ko saka apmācības (piemēram, http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example).

Ko es daru nepareizi?


Jums ir divas izvēles

1. risinājums:

Jūs varat mainīt atsauci uz proj4js. OpenLayers 2.x noklusējuma atbalsts ir ar Proj4js 1.1, bet jūs izmantojat 2.x.

      

1. demonstrācija (lai skatītu, atveriet pārlūkprogrammas konsoli)

2. risinājums:

Vai arī varat izmantot jauno proj4js versiju, pievienojot iesaiņojumu, lai tas atbilstu iepriekšējās versijas uzvedībai.

      

2. demonstrācija (lai skatītu, atveriet pārlūkprogrammas konsoli)

Jums var rasties daži apmales efekti, lai gan tas šķiet mazsvarīgs saskaņā ar pavedienu par OpenLayers 2.x atbalstu ar Proj4js 2.x sēriju

Starp abiem rezultātiem bija neliela atšķirība, bet tagad viss ir kārtībā. Tas bija saistīts ar parametru korekciju ar proj4js šai konkrētajai projekcijai (EPSG: 31466).


Olām 2.13.1 un proj4 2.3.7 šis kods ļauj skalas līnijai un getGeodesicLength darboties pareizi:

/ ** adapteris ol2, lai patērētu proj4 2.x*/ var Proj4js = logs ["Proj4js"] = logs ["Proj4js"] || {Proj: funkcija (kods) {var rezultāts = proj4 (kods); result.srsCode = kods; // par ol2 saderības atgriešanās rezultātu; }, defs: proj4.defs, pārveidot: proj4};

Laiks darbībai - Proj4js.org iestatīšana

varēja izmantot EPSG: 4326 un EPSG: 900913 no iepriekšējiem piemēriem.

Ir vairākas jau definētas projekcijas, un jūs varat tās apskatīt plašāk

vietnē http://proj4js.org. Pilnīgāks saraksts (satur gandrīz Proj4js definīcijas

jebkuru EPSG kodu) var atrast vietnē http://spatialreference.org/.

Šajā nodaļā mēs runājām par prognozēm. Mēs apskatījām, kas tie ir un kādi tie ir

dažāda veida projekcijas. Bija arī garums, platums un citi ģeogrāfiskie jēdzieni

apspriests. Kamēr mēs tikko saskrāpējām šo diezgan sarežģīto tēmu virsmu, jums vajadzētu

ir pietiekami daudz pamatinformācijas, lai saprastu, kā izmantot prognozes.

Mēs runājām arī par projekcijas klasi, kā arī par to, kā pārveidot koordinātas un izmantošanu

bibliotēkā Proj4js. Jūs bieži strādājat ar datiem koordinātu sistēmās, kas nav EPSG: 4326,

un ir svarīgi zināt, kā strādāt un pārveidot datus citās prognozēs.

Nākamajā nodaļā mēs apskatīsim Google Maps un citas trešo pušu API

dažas no mūsu nesen iegūtajām zināšanām par izmantojamām prognozēm.

Mijiedarbība ar trešo pušu API

Tīmekļa kartes mūsdienās ir ļoti populāras, un to popularitāte pieaug. Pēc Google

Tika ieviestas kartes, notika interaktīvu tīmekļa karšu eksplozija. Google

nodrošina API saskarnei ar savu kartēšanas pakalpojumu, tāpat kā citi tagad, un

OpenLayers labi darbojas ar lielāko daļu no tiem. Mēs varam ne tikai izmantot šīs trešās puses

API ar OpenLayers, mēs varam arī “sajaukt” citus slāņus virs tiem.

Šajā nodaļā mēs uzzināsim:

Trešās puses kartēšanas API jēdziens

Slāņu klašu izmantošana trešo pušu API: Google, Microsoft un Yahoo!

Darbs ar sfērisko Mercator

Dažādu slāņu klašu apvienošana

Tīmekļa kartes mūsdienās ir ierasta lieta. Tīmekļa karšu eksplozīvās izaugsmes katalizators

bija Google Maps ieviešana. Tīmekļa kartes pastāvēja agrāk, taču tās nebija ātras vai

draudzīgs izstrādātājiem. 2005. gada jūnijā Google izlaida API Google Maps, kas nodrošināja

priekšgala klients (OpenLayers loma) kopā ar piekļuvi aizmugures karšu serverim.

Tas ļāva ikvienam savā vietnē ievietot ne tikai Google karti, bet arī ļāva to ievietot

pievienot savus punktu datus un manipulēt ar karti citos veidos. Google Maps pieauga

popularitāti un citi uzņēmumi, piemēram, Microsoft un Yahoo!, sekoja viņu pēdās,

izveidot savas tīmekļa kartēšanas API.

Mijiedarbība ar trešo pušu API

Termins mashup attiecas uz lietojumprogrammu, kas apvieno dažādus dažādus datu avotus un

funkcionalitāte kopā. Kartes mashup ir karte, kas apvieno dažādus slāņus un datus. Trešais

partiju kartēšanas API, piemēram, Google un Yahoo! Kartes ļauj cilvēkiem tos vieglāk izveidot

"karšu mashups". Piemēram, karte ar Google Maps bāzes slāni, kas pārklāts ar marķieriem

ka vietas, uz kurām esat ceļojis, var izsekot kā karšu sajaukumu.

OpenLayers neieviesa karšu sajaukumus, taču tas ļauj mums izveidot ļoti jaudīgus

viegli. Google kartes slāņa, WMS slāņa un vektoru slāņa apvienošana ir diezgan vienkārša

OpenLayers un trešo pušu API

OpenLayers ļauj izmantot trešo pušu kartēšanas API kartes lietojumprogrammā, ļaujot

jūs izmantojat viņu kartes savā iekšienē. Galvenais brīdinājums ir tas, ka rakstīšanas laikā trešais

partijas API kartei jābūt bāzes slānim (bet, kā mēs iepriekš apspriedām, jūs varat izmantot tik daudz bāzes

Trīs lielās komerciālās kartēšanas API, ar kurām OpenLayers var sazināties, ir

Google Maps, Yahoo! Maps un Bing (Microsoft) kartes. Ir vēl viens bezmaksas un atvērts

avota API, ar kuru OpenLayers labi darbojas (un darbojas līdzīgi kā iepriekšējā

trīs), ko sauc par OpenStreetMap.

Vispirms apskatīsim katru no šīm četrām slāņu klasēm, un pēc tam apskatīsim, kā to darīt

apvienojiet tos ar citām slāņu klasēm.

Google Maps programmatūra sastāv no klienta un servera. Klients ir tas, ko jūs izmantojat

kad apmeklējat vietni http://maps.google.com un tā sazinās ar Google Maps

aizmugures serveri. Google nodrošina API, kas ļauj izmantot savu klientu un aizmuguri

serveri, bet tā kā OpenLayers tiek izmantots kā mūsu klients, mēs esam ieinteresēti tikai sadarboties ar

Google aizmugures karšu serveris.

Atkarībā no tā, kā plānojat izmantot Google, var būt juridiski ierobežojumi

Kartes. Pilnus ierobežojumus var atrast vietnē http://code.google.com/apis/

maps/terms.html un http://www.google.com/intl/en_ALL/

Iepriekšējās nodaļās mēs esam izveidojuši Google slāni, izmantojot Google 3. versiju (V3)

Kartes API. Tā kā Google Maps atjaunina savu API, arī OpenLayers ir jāatjaunina uz

pielāgoties visām veiktajām izmaiņām. OpenLayers versijas pirms 2.10 (šī

grāmatas pamatā ir) izmantot Google Maps API 2. versiju (V2). Google Maps V2 lietojums ir

tomēr novecojis, tāpēc mēs koncentrēsimies uz V3 izmantošanu. No mūsu viedokļa mūsu kods to nedara

daudz ko mainīt - OpenLayers aizkulisēs apstrādā visas versijai raksturīgās funkcijas

Tomēr, visticamāk, jūs sastapsit vecākas OpenLayers kartes, kas izveidotas, izmantojot Google Maps

2. versija, tāpēc mēs apskatīsim, kā izmantot gan V2, gan V3. Atkal, lūdzu, izmantojiet tikai V3, kad

jaunu karšu izgatavošana, jo V2 galu galā vairs netiks atbalstīts.

Atšķirības starp Google Maps 2. un 3. versiju

Ir tikai trīs lietas, kas jums jādara savādāk, dodoties no Google

Kartes no V3 līdz V2 (vai otrādi):

1. Skripta tags, ko pievienojat atsaucei uz Google Maps bibliotēku, ir atšķirīgs. Jūs to darāt

nav jānorāda API atslēga ar Google Maps API V3.

2. Tipa rekvizītā izmantotie slāņu nosaukumi ir atšķirīgi. Piemēram, “reljefs”

slānis V3 ir definēts kā tips: google.maps.MapTypeId.TERRAIN, bet V2 tas

3. Slānis ir konfigurēts ar sfērisku Mercator (mēs apskatīsim, ko tas nozīmē

Ieteicams izmantot Google Maps API V3. Oficiālā Google Maps

V3 dokumentāciju var atrast vietnē http://code.google.com/apis/

Oficiālos Google Maps API dokumentus V2 var atrast vietnē http: // code.

Laiks darbībai - izmantojot Goole Maps V3 (standarta veids)

Izveidosim karti, izmantojot Google Maps API V3. Mēs to jau esam izdarījuši 3. nodaļā,

tāpēc jums tas ir nedaudz jāpārzina. Šis ir standarta veids, kā izmantot Google Maps

Slānis, un jums vajadzētu izmantot šo metodi, ja vien jums nav nepieciešams slāņa tips V2, kas V3

Mijiedarbība ar trešo pušu API

Izmantojot OpenLayers versijas pirms 2.10, piekļuve Google Maps V3 var

Google Maps API 3. versijai nav nepieciešama API atslēga. Tomēr jūs joprojām

sadaļā ir jāiekļauj tālāk minētais, lai OpenLayers zinātu, kur

lai meklētu Google Maps API bibliotēku. Mēs jautāsim kartes API un norādīsim

ka mēs vēlamies Google Maps API versiju 3.2 (varat atstāt parametru & v = 3.2, ja

vēlaties ļaut Google Maps automātiski nodrošināt jaunāko versiju). Pievienot

pirms OpenLayers iekļaušanas skripta:

piekļūt Google Maps API.

2. Iestatiet tipa rekvizītus, piemēram, type: google.maps.MapTypeId.HYBRID.

Google Maps API iekļaušana ļauj OpenLayers sazināties ar Google Maps

aizmugure. Tā kā mēs iekļāvām Google Maps API, mēs varam izmantot mainīgos, kas ir daļa no

to. Konkrēti, iespējamā tipa īpašuma vērtības tiek iegūtas tieši no Google

Maps API - piemēram, ja mēs neiekļāvām API, mēs nevarējām izmantot google.maps.

Ņemiet vērā, ka, ja Firebug palaižat map.getCenter (), centrālais punkts, kuru mēs saņemam, ir ļoti

atšķirīgas koordinātas nekā pie mums - tās nav garuma/platuma vērtības. Tas ir

jo sphericalMercator mums ir iestatīts automātiski, lai mēs varētu viegli ieklāt citus slāņus,

piemēram, vektoru slāņi, virs trešās puses kartes slāņa. Pirms mēs apskatīsim iemeslu

(kas ir saistīts ar citām trešo pušu kartēšanas API), apskatīsim Google kartes slāni

Google kartes slāņa objekta izveide

Google kartes slāņa objekta izveides formāts ir vienāds gan V2, gan V3

Google Maps API. Pamatformāts Google Maps slāņa izveidošanai ir šāds:

var google_layer_object = jauns OpenLayers.Layer.Google (

Pirmais arguments, tāpat kā lielākajā daļā slāņu klašu, ir slāņa nosaukums. Otrs arguments

ir rekvizītu objekts. Ir tikai daži Google slāņa īpašumi, tāpēc iesim

Tā kā Google slānis tiek mantots no pamata slāņu klases, varat izmantot gandrīz jebkuru īpašumu

ko nodrošina slāņu klase, piemēram, numZoomLevels vai maxExtent. Mēs aptversim tikai

īpašumus, kas raksturīgi Google Maps slāņu klasei. Iespējamās vērtības tipam

atribūts ir atkarīgs no izmantotās Google Maps API versijas.

Šis rekvizīts nosaka, vai kartei vajadzētu darboties kā Mercator projicētai kartei. Iestatīšana

uz true ļaus mums kopā ar faktisko karti izmantot citus slāņus, piemēram, slāni Vector

projekcija. Sfēriskais Mercator ir sīkāk aplūkots vēlāk šajā nodaļā. Lietojot

Google Map API 3. versijā šis rekvizīts tiek automātiski iestatīts uz true. Izmantojot V2, jums būs

manuāli iestatiet to uz patiesu. Piemērs: sfērisksMercator: true.

Īpašuma tips norāda Google kartes slāņa tipu - kādu slāni Google mums vajadzētu piešķirt.

Google Maps API versijām V2 un V3 ir dažādas iespējamās vērtības. Apskatīsim 3. versiju

vērtības un pēc tam apskatiet 2. versijas vērtības.

Standarta, V3 veids, kā atsaukties uz slāņu veidiem, ir šāds:

var google_layer_V3 = jauns OpenLayers.Layer.Google (

Lai norādītu slāņa tipu, mēs varam vienkārši mainīt rekvizītu TYPE. Iespējamās TYPE vērtības

var būt viens no šiem:

Parāda karti ar daļēji caurspīdīgu ielas slāni

pārklāts ar satelīta attēliem (tāds pats kā G_HYBRID_

Parāda satelīta attēlus (tāpat kā G_

Parāda karti ar tādām funkcijām kā reljefs (tas pats

Noklusējuma vērtība, ko izmanto, ja nekas netiek nodots

Parāda noklusējuma ielu karti (tāda pati kā G_

Atjaunināts iespējamo slāņu veidu saraksts ir atrodams Google Maps

API dokumentācija vietnē http://code.google.com/apis/maps/

Rakstīšanas laikā slāņi, kas nav zeme (mēness, Marss un debesis), vēl nebija pieejami

Mijiedarbība ar trešo pušu API

Google Maps API 2. versija nodrošina arī dažādus slāņus. Daži slāņu veidi

ir pat citu planētu kartes, taču to apskatei nav nepieciešams papildu darbs

OpenLayers. Lai norādītu kartes veidu V2, izmantojiet tālāk norādīto.

var google_layer_V2 = jauns OpenLayers.Layer.Google (

Iespējamās TYPE vērtības ir šādas:

Parāda satelīta attēlus.

Parāda aerofotografēšanu.

Parāda karti ar daļēji caurspīdīgu ielas slāni

Parāda karti ar daļēji caurspīdīgu ielas slāni

Parāda karti ar tādām funkcijām kā reljefs.

Parāda Mēness reljefa karti ar augstuma krāsu kodu.

Parāda Marsa reljefa karti ar augstuma krāsu kodu.

Parāda Marsa infrasarkano attēlu. Siltās vietas ir gaišas un

Parāda visas debess sfēras karti.

Noklusējuma vērtība. To izmanto, ja nav norādīts GMapType. Šī

kartes veids parādīs parasto ielu karti.

Parāda fotogrāfijas, kas uzņemtas no orbītas ap Mēnesi.

Parāda fotogrāfijas, kas uzņemtas no orbītas ap Marsu.

Lai izmantotu kādu no šiem slāņu veidiem, veidojot slāni, vienkārši ievadiet tipa nosaukumu.

Piemērs: tips: G_NORMAL_MAP.

Iepriekšējais saraksts bija rakstīšanas laikā atbalstītie slāņu veidi, bet pašreizējais

un jaunākās slāņu vērtības var atrast Google Maps V2 API dokumentos

Laiks darbībai - Google kartes slāņa izveide ar V2

Izveidosim karti ar Google Maps API V2. Tas nav pareizais veids, kā izmantot

Google Maps slānis, bet es to iekļauju, jo jūs, iespējams, saskaraties ar kodu

izmanto API V2. Google Maps V2 nodrošina arī dažus dažādu slāņu veidus (piemēram, mēness

slānis), ko V3 nesniedz rakstīšanas laikā.

Google Maps API V2 versijā ir jāreģistrē API atslēga, tāpēc paņemiet to (bez maksas)

vietnē http://code.google.com/apis/maps/signup.html. Ja jums nav a

domēna nosaukumu, izmantojiet vietni http: // localhost.

Sadaļā pirms OpenLayers skripta taga iekļaujiet tālāk norādīto.

Aizstājiet YOUR_KEY ar atslēgu, kas ģenerēta, veicot 1. darbību:

Tagad izveidosim dažus slāņus. Tipa atribūta formāts ir nedaudz atšķirīgs

ar V2. Mēs apskatīsim iespējamās slāņa tipa vērtības tūlīt pēc šī piemēra. Pirmkārt,

izveidosim dažus slāņus, sākot ar “hibrīda” slāni. Hibrīda tipa vērtība

slānis ir G_HYBRID_MAP. Mēs arī norādīsim 20 tālummaiņas līmeņus, izmantojot numZoomLevels

īpašums. Dažādi bāzes slāņi var atbalstīt dažādus tālummaiņas līmeņus:

// Izveidojiet Google kartes slāņa objektus

var google_hybrid = jauns OpenLayers.Layer.Google (

Tagad izveidosim “fizisku” slāni, kas ir reljefa/topoloģijas slānis.

veids ir G_PHYSICAL_MAP, un mēs norādīsim citu rekvizītu numZoomLevels:

var google_physical = jauns OpenLayers.Layer.Google (

Mēs izmantosim G_SATELLITE_MAP, lai izveidotu satelīta slāni:

var google_satellite = jauns OpenLayers.Layer.Google (

Mijiedarbība ar trešo pušu API

Ja mēs neievada tipu, tiks izmantots noklusējuma “ielu kartes” slānis. Tas ir

slānis, kuru pēc noklusējuma redzēsit pakalpojumā Google Maps. Ja vēlaties manuāli norādīt šo slāni

tipa, to sauc par G_NORMAL_MAP.

var google_streets = jauns OpenLayers.Layer.Google (

Tagad pievienosim slāņa tipu, kas (rakstīšanas laikā) netiek atbalstīts V3


Proj4js koordinē pārvērtības pārlūkprogrammā michael adair dm solutions group

Tas pats jautājums papīra kartēm un tīmekļa kartēm datora ekrānā.

Matemātika definē: koordinātu atskaites sistēmas (DRS)

Koordinātu atskaites sistēmas (CRS) sastāv no kartes projekcijas + nulles punkta projekcijas definē 3D virsmu uz 2D plaknes transformācijas nulles punktiem nosaka zemes lielumu un formu, ģeogrāfiskie dati tiek vākti/saglabāti, izmantojot jebkuru DRS

Kartes projekcijas projektē 3D virsmu līdz 2DA, kas piemērojama noteiktiem ģeogrāfiskiem apgabaliem, mēģina samazināt izkropļojumus apgabalā, attālumā, mērogā utt.

Datums nosaka zemes lielumu un formu Zeme nav lode, gandrīz elipsoīds

Atpakaļ pie problēmas Karte var izmantot tikai vienu DRS Nepieciešams, lai apvienotu dažādos DRS saglabātos datus. Starp koordinātu sistēmām ir nepieciešama transformācija

Risinājumi tīmekļa kartēšanai Vektoru dati sastāv no punktu sērijas, kas attēlo punktu, līniju un daudzstūru ģeometrijas (kopā ar atribūtiem) Koordinātas dažādās DRS

Servera pusē: PROJ.4, CS-MAP, GeoTools Atgriež jau pārveidotu rasteri (kopumā) Rastra attēli ir jāapstrādā serverī

Ir vēlams manipulēt ar atsevišķām pārlūkprogrammas funkcijām

Risinājumi tīmekļa kartēšanai pārveido starp DRS klientā (tīmekļa pārlūkprogrammā), izmantojot Proj4js! Ļauj klientam saglabāt atsevišķas funkcijas izvēlei, izcelšanai utt.

Par Proj4jsA JavaScript bibliotēku PROJ.4 un GCTPC (C kods) ports

50k saspiests mazāk, ja nav vajadzīgas visas projekcijas Ietver dažas nulles nulles transformācijas Dinamiska DRS parametru ielāde (vai nē) Projekcijas koda dinamiska ielāde (vai nē) Viegli lietojama ar OpenLayers


Mfcttrf

Vai gaismas gads ir atšķirīgs attālums, ja to mēra no kustīga objekta?

Konflikts starp titlesec pakotni un scrbook klasi pēc pēdējā TeXLive2019 atjauninājuma

Vai datu zinātne ir matemātiski interesanta?

Vai digitālie datori var saprast bezgalību?

Kas notiek, ja nenoteikta C ++ uzvedība atbilst C definētajai uzvedībai?

Kā man pateikt profesoram atbildi uz kaut ko, ko viņš nezina?

Kāpēc melošana Kongresam ir noziegums?

Liela vienība vienādojumiem

Idiomātisks vārds "ļoti maz" šajā kontekstā?

Kā reaģēt, ja citu nodaļas absolvents aizvaino?

Vai Sicīlijā vienu mēnesi ir iespējams ievērot diētu ar zemu ogļhidrātu saturu?

Kāda ir nozīme, liekot kapa akcentu aiz katkoda?

Kā panākt, lai uz ATtiny balstītu PCB galalietotāji varētu viegli atjaunināt?

Vai Bountiful Luck pusperioda rasu varoņdarbu var izmantot vairākas reizes vienā kārtā?

Parādīt ESRI MapService (WMTS) ar EPSG: 28992 koordinātu sistēmu OpenLayers tīmekļa kartē ar OpenStreetMap bāzes slāni

Rādīt ESRI MapService (WMTS) ar EPSG: 28992 koordinātu sistēmu Leaflet tīmekļa kartē ar OpenStreetMap bāzes slāni Displejs OSGB (EPSG: 27700) ArcGIS flīžu MapServer OpenLayers 3WMTS netiek ielādēts QGIS WMTS pievienošana QGIS? QGIS Madeira neizveido savienojumu ar WMTS pakalpojumu

ESRI MapService https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer ir EPSG: 28992 koordinātu sistēma. QGIS es varu pievienot šo slāni, izmantojot WMTS https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer/WMTS (slānis: Historische_tijdreis_1870, formāts: image, jpg : EPSG: 28992). Kā es varu parādīt šo slāni OpenLayers (6) tīmekļa kartē?

ESRI MapService https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer ir EPSG: 28992 koordinātu sistēma. QGIS es varu pievienot šo slāni, izmantojot WMTS https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer/WMTS (slānis: Historische_tijdreis_1870, formāts: image, jpg : EPSG: 28992). Kā es varu parādīt šo slāni OpenLayers (6) tīmekļa kartē?

ESRI MapService https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer ir EPSG: 28992 koordinātu sistēma. QGIS es varu pievienot šo slāni, izmantojot WMTS https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer/WMTS (slānis: Historische_tijdreis_1870, formāts: image/jpg : EPSG: 28992). Kā es varu parādīt šo slāni OpenLayers (6) tīmekļa kartē?

ESRI MapService https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer ir EPSG: 28992 koordinātu sistēma. QGIS es varu pievienot šo slāni, izmantojot WMTS https://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1870/MapServer/WMTS (slānis: Historische_tijdreis_1870, formāts: image, jpg : EPSG: 28992). Kā es varu parādīt šo slāni OpenLayers (6) tīmekļa kartē?


Proj4js izmantošana Openlayers - Proj4js nav definēts - Ģeogrāfiskās informācijas sistēmas

Pirms pieskaršanās šai daļai, vajadzētuTelpiskā atsauce"Telpiskā atsauce",ĢeoīdsAtskaites plakne"Datums",Kartes projekcijas"Kartes projekcija",Ģeogrāfisko koordinātu sistēma(Ģeogrāfisko koordinātu sistēma) unPrognozētā koordinātu sistēma(Projeetion koordinātu sistēma) ir zināma izpratne. OGRSpatialReference klase un sniegt definīcijas OGRCoordinateTransformation galveno koordinātu sistēma (projekcijas plakne un standarti) un koordinātu pārveidošana. Abas klases, kuru pamatā ir koordinātu pārveidošana, aprakstīja OpenGIS un izmanto labi pazīstama teksta formātu, kas jāizsaka koordinātu sistēmā. Tālāk ir norādītas vairākas darbības, lai ilustrētu, kā panākt konversiju starp dažādām koordinātu sistēmām.

1, ģeogrāfisko koordinātu sistēmas definīcija

Informācijā par ģeogrāfisko koordinātu sistēmu jāiekļauj aĢeodēziskais pamats(Kas ietver daļēji lielas ass izmantošanu un vienotu likmi, ko norāda savstarpēja Tropsch sfēra),Centrālais meridiāns(parastigalvenais meridiāns, Tas ir 0 grādu pēc Griničas garuma), papildus aLeņķa mērvienībaRadiānu izmantošana. Ja tajā ir šī informācija, mēs varam izveidot efektīvu ģeogrāfisko koordinātu sistēmu.

Iepriekš minētajā kodā nosaukums "Mana ģeogrāfiskā koordinātu sistēma", "Mans WGS84 Spheroid", "Greenwich" un "grāds" nav atslēgvārds, ko galvenokārt izmanto, lai izskaidrotu lietotāju. Taču & quot (Tas nozīmē, ka tieši pirms šīm virknēm ir paredzēts parādīt, rakstzīmju virknes pozīcijai aiz WGS_1984 ir jābūt derīgai, nevis tikai nosauktai, mēs to īpaši apspriedīsim vēlāk).

Varat arī izmantot funkcijuOGRSpatialReferenceIt, kas ir aprīkots ar numura identifikatoru, lai izveidotu kopīgu koordinātu sistēmu, piemēram: & quot; NAD27 & quot; & quot; NAD83 & quot; & quot; WGS72 & quot; & quot; WGS84 & quot; utt.

Koordinātu sistēmu var definēt ar ģeogrāfisko koordinātu sistēmas kodu, kas iekļauts datu bāzē EPSG (GSC kods):

Ērtības labad un mijiedarbībai ar citām bibliotēkām OGRSpatialReference nodrošina funkcijas konvertēšanai starp formātiem can un OpenGIS WKT of. OGRSpatialReference WKT inicializēšanai var izmantot formāta failu, kā arī informāciju par koordinātām var eksportēt uz WKT formātu.

Izdrukājiet rezultātus šādi:

OGRSpatialReference objektus var definēt, izmantojot funkciju OGRSpatialReference :: importFromWkt ().

2, tiek definēta prognozētā koordinātu sistēma

Prognozēta koordinātu sistēma (piemēram, UTM, Lambert Conformal Conic utt.) Par nepieciešamību izveidot ģeogrāfisko koordinātu sistēmu, projekcijas koordinātu sistēmā, koordinātu punktus metros vai pēdās, kas izteikti garuma vienībās, bet var izmantot arī platuma un garuma leņķa koordinātas. Projicētā koordinātu sistēma tiks definēta zem UTM, WGS84 elipsoīda jostas 17, pamatojoties uz ģeodēzisko atsauci.

Piezīme: (1) pirmā izsaukuma funkcija SetProjCS () nosaka projicētās koordinātu sistēmas nosaukumu, pēc tam izmantojiet funkciju SetWellKnownGeogCS () norādīto ģeogrāfisko koordinātu sistēmu un visbeidzot izsauciet funkciju SetUTM () Iestatiet projekcijas transformācijas parametru informāciju. Pabeidzot darbu pie derīgas prognozētās koordinātu sistēmas definēšanas. Šeit mums jāpievērš uzmanība pasūtījuma OGRSpatialReference definīcijai!

(2) Protams, lai sniegtu vairāk nekā OGRSpatialReference SetUTM () Var izmantot metodi, kas nodrošināja šķērseniskos Mercator parametrus SetTM () funkcija Lambert projekcijas parametru iestatīšana SetLCC () funkcija Mercator projekcijas parametru iestatīšana SetMercator () funkcija.

3, koordinātu sistēma parsē

Izveidojot objektu OGRSpatialReference, tas var parsēt objektā esošo informāciju. Var izmantot, ja tiek prognozētas funkcijas IsProjection OGRSpatialReference () un IsGeographic (), tiek noteikta koordinātu sistēma vai tiek noteikta ģeogrāfisko koordinātu sistēma, GetSemiMajor (), GetSemiMinor () un GetInvFlattening () funkcijas tiek iegūtas daļēji lielākais elipsoīds un puslīdzēja abpusēja likme . GetAttrValue () iegūst PROJCS, GEOGCS, DATUM, virkņu SPHEROID un PROJECTION nosaukumus. Ar funkciju GetProjParm (), lai iegūtu informāciju par parametriem. Funkcija GetLinearUnits () ir vienības veids un tiek pārvērsta metru mērvienībās.

4, koordinātu pārveidošana

OGRCoordinateTransformationClass var izmantot dažādās koordinātu sistēmas koordinātu transformācijās. Varat izmantot funkciju OGRCreateCoordinateTransformation (), lai izveidotu jaunu koordinātu transformācijas objektu, un pēc tam izmantot OGRCoordinateTransformation :: Transform () metodi, lai koordinētu transformāciju.

(1) Tālāk ir veikta konversija starp 13 un WGS84 Xian 1980 / Gauss-Kruger zonas testa kodu:

darbības rezultāts:
(10.000000,10.000000) -& gt (4381699.110753,2447192.109090)

Par EPSG koda importēšanu Funkcijā EPSG varat noklikšķinātŠeitSkatīt vaiEs to norāduVarat arī apskatīt.

(2) Šo funkciju var arī pārveidot par trīsdimensiju punktiem, automātiski pielāgot pacēluma vērtības atkarībā no ovālas sfēras un plaknes. Ja nav Z vērtības, OGR tiek pieņemts, ka konversijas punkti atrodas virsmas līmenī. Šis kods parāda pārveidošanu starp ģeogrāfisko koordinātu sistēmu un prognozēto koordinātu sistēmu.

darbības rezultāts:
(0.000000,0.000000,50.000000) -& gt (-85.488744,0.000000,50.000000)


Proj4js izmantošana Openlayers - Proj4js nav definēts - Ģeogrāfiskās informācijas sistēmas

Inicializācijas karte Kad instance, ja ne skats Lietošana projekcija Parametrs nosaka projekcijas koordinātu sistēmu, tiks izmantota noklusējuma telpiskā atsauce. EPSG: 3857 (Web Mo Catto). Turpmāk uzlikti slāņi, dati tiks projicēti, lai nodrošinātu karti tajā pašā telpas atsaucē.

EPSG (European Petroleum Survey Group, European Petroleum Survey) ir atbildīga par koordinātu atskaites sistēmas datu kopas parametru, kā arī koordinātu konversijas apraksta uzturēšanu un publicēšanu. Tas atbildīs dažādiem identifikācijas numuriem, piemēram, esošajam elipsoīdam, projekcijas koordinātu sistēmai utt.

Openlayers Norādīto telpas atsauci var izmantot tieši atsauces, piemēram, EPSG: 3857 no EPSG: 102100, EPSG: 102113, EPSG: 900913 Tie ir nosaukti, un tos izmanto arī GML elementu identifikācijai http://www.opengis.net/gml/srs/epsg.xml #3857 ar urnu: ogc: def: crs: EPSG: 6.18: 3: 3857

Telpiskās atsauces aizstājvārdu var izmantot defs () metode Pievienot:

ol Citām telpiskām atsaucēm varat izmantot proj4js Customize. defs () Metodes definīcija, reģistrs () Metode ir reģistrēta.

proj4js Tā ir JavaScript bibliotēka, spēcīgs vispārējas nozīmes koordinātu konvertēšanas dzinējs, kas vienlaikus var veikt liela mēroga karšu projekcijas un augstas precizitātes koordinātu konvertēšanu.

Pielāgotai projekcijai ir jābūt nospiestai: https://epsg.io/var tikt atzīta par derīgu.

Kopējais parametru saraksts:

parametrs apraksts
+proj Projekcijas nosaukums, instalācijas proj Pēc tam, kad varat izmantot programmu proj - l Command View Atbalstītais projekcijas nosaukums
+lat_0 Izmēru sākuma punkts
+lon_0 Centrālā līnija
+x_0 Austrumu (pseido) nobīde
+y_0 Ziemeļu (pseido) nobīde
+elpi Ellipsoīda nosaukums, izmantojiet komandu proj -le, lai skatītu, kuri elipsoīdi atbalsta
+vienības Līmeņa vienība, metri. izmantot proj -lu Komandas skats PROJ atbalsta vienība
+lat_ts Derīgs platuma diapazons
+a Elipsveida garums pusass garums
+b Elipsoīds īss pusvārpstas garums
+k Proporcionālais koeficients (mēroga koeficients), vecā versija, noraidījums
+k_0 Proporcionālais koeficients (mēroga koeficients)
+vunīti Vertikālā vienība
+atskaites punkts Salīdziniet sānu nosaukumu, izmantojiet proj -ld Command View Support Betch
84 3 parametru vai 7 parametru bāzes pārveidošana
+līdz_metrs Horizontālo vienību pārvēršana metros, lai aprēķinātu izejas konversijas parametrus, piemēram, 1 pēda =
+no_defs Nelietot proj Noklusējuma definīcijas fails bibliotēkā.

Zemāk kā OSM karte kā slāņa paraugs, definīcija CGCS2000 Telpiskā atsauce.

Var ieklāt flīžu slāni SOM Veidojot pamatni, slānis ir uzlikts.
Vektoru datiem varat izmantot ol.proj metodi zem nosaukumvietas, koordinātu konvertēšanu klientā, piemēram:

Iepriekš minētais ir vienas koordinātas pārveidošana, ko var izmantot ģeometriskiem elementiem Ģeometrija un to apakšklasēm (punkti, līnijas, sejas utt.). ol.geom.Geometry middle transform () Method Konvertē katru ģeometrisko objektu koordinātu kopu. Tāpat kā GeoJSON 、 KML 、 gpx Failu tipu var izvēlēties katra elementa konvertēšanai pēc parsētāja parsētāja pabeigšanas.

efekts:

test.json datu faili:

Datu veidiem pakalpojumiem, piemēram, WFS, WMS pakalpojumu var izmantot pieprasījumā srsname vai CRS. Parametrs norāda atgriešanas elementa telpisko atsauci, un koordinātu konvertēšanas darbība tiek pabeigta serverī.