Vairāk

Kā es varu saņemt leģendu no ArcGISDynamicMapServiceLayer, izmantojot esri javascript api?

Kā es varu saņemt leģendu no ArcGISDynamicMapServiceLayer, izmantojot esri javascript api?


Jauns kods: Es nedaudz atjaunināju kodu, lai iegūtu jaunāku jaunāko api versiju, bet ashima bija pareiza, jo es nenododu savu slāni kā masīvu. To izlaboja, un tas darbojās

karte = jauna karte ("karte", {pamatkarte: "ielas", centrs: [-84.32, 46.5], // garš, tālummaiņa: 13}); // ielādē myMap slāni var myMap = new FeatureLayer (myMapLocation, {mode: FeatureLayer.MODE_ONDEMAND, outFields: ["*"]}); // pievienojiet leģendu map.on ("layer-add-result", function (evt) {var layerInfo = arrayUtils.map (evt.layers, function (layer, index) {return {layer: layer.layer, title: layer.layer.name};}); if (layerInfo.length> 0) {var legendDijit = new Legend ({karte: karte, layerInfos: layerInfo}, "leģenda"); legendDijit.startup ();}}); map.addLayers ([mans karte]);

Tāpēc es izmantoju ESRI Javascript API, līdz šim esmu varējis izveidot karti, iegūt slāni no cita avota un tos apvienot, bet es esmu aizķēries ar leģenda sagrābšanu no cita avota un to arī piebilstot. Tas man ir pašlaik pēc mēģinājumiem (mēģināju arī pārslēgt karti: karti uz karti: mymap). MyMapLocation ir iestatīts tikai uz "/ MapServer", nevis "/ mapServer / layer" vai jebko citu.

map = new Map ("mapDiv", {pamatkarte: "ielas"}); myMap = jauni esri.layers.ArcGISDynamicMapServiceLayer (myMapLocation); map.on ('layer-add-result', function () {// šī sadaļa pārtrauc v var legend = new Legend ({map: map, layerInfos: legendLayers}, "legendDiv"); // ^ legend.startup ( );}); legendLayers.push ({layer: myMap}); map.addLayers ([mans karte]);

Izskatās, ka jūs neesat pasludinājis legendLayers kā masīvu (var legendLayers = [];) pirms tā lietošanas. Ja tas neatrisina jūsu problēmu, vai varat ielīmēt kļūdu, kas rodas, palaižot šo kodu pārlūkprogrammā?


ArcGIS JavaScript API: atribūtu tabulā atlasiet funkcijas un parādiet informāciju

Man ir tīmekļa karte, kurā es varu atlasīt objektus, izmantojot daudzstūra grafiku (man ir trīs iezīmju slāņi, viens punkts un divi daudzstūra iezīmju slāņi). Kā es varu attēlot grafiski atlasīto funkciju rezultātus tabulas formātā, kas ir līdzīgs šim piemēram, taču meklēšanas uzdevuma vietā rezultātiem jāparāda grafiski atlasīto objektu atribūtu informācija.

autors: JakeSkinner

Šeit ir piemērs, kā to izdarīt.

autors: JakeSkinner

Šeit ir piemērs, kā to izdarīt.

autors: JakeSkinner

Noklikšķinot uz datu režģa, Fiddle tika atjaunināts, iekļaujot funkcijas tuvināšanu:

Vai varat ievietot & ltHEAD & gt informāciju, piemēram, stila lapas saites, kuras izmantojat kodam?

autors: JakeSkinner

Sveiks Džeik. Es veidoju kartes atklāšanas rīku un paplašinu jūsu kodu. Ar buferi mēģinu meklēt pēc ģeometrijas, teksta (izmantojot meklēšanas uzdevumu) un pēc robežām (DD, DMS, MGRS)

Esmu pievienojis teksta meklēšanu, taču tas nedarbojas. Vai jūs, lūdzu, palīdzētu man pievienot šīs funkcijas, ieskaitot X, Y koordinātas (DD) ar buferi. Mans kods ir zemāk.


Eksportējiet kartes grafiku ar rīkjoslu Leģenda uz PDF dokumentu

Sveiki,
Man ir izstrādāta lietojumprogramma Silverlight, kur es izmantoju pakalpojumu BaseMap, un augšpusē es tajā pievienoju dažas grafikas. Es vēlos eksportēt šo kartes attēlu kopā ar rīkjoslu Grafika un Leģenda uz PDF dokumentu. Man ir veiksmīgi izdevies eksportēt kartes attēlu uz PDF dokumentu, kur uz PDF dokumentāciju tiek eksportēts tikai BaseMap (kā kods, kas rakstīts, lai eksportētu tikai PDF). Tagad es vēlos eksportēt grafikas un leģendu rīkjoslu, kā arī iepriekš minētos, bet nevar iegūt ideju par to, kā to izdarīt. Pievienots ekrānuzņēmums nodrošina kartes skatu ar grafikas un leģendu rīkjoslu.

Izmantojot ArcGIS Server10, Silverlight 4 ar VS2010 SP1.

Jebkura koda palīdzība, ar ko sākt, man ļoti noderēs.

Vai antiviela var man sniegt ātru ideju par to. Es eksportēju tikai BaseMap uz PDF dokumentu, izmantojot šādas koda rindas. Jāeksportē, izmantojot kartes grafiku un leģendu rīkjoslu.

private void btnOK_Click (objektu sūtītājs, RoutedEventArgs e)
<
// Parādīt dialoglodziņu Saglabāt kā
Dialoglodziņš SaveFileDialog = jauns SaveFileDialog ()
dialog.Filter = "PDF | * .pdf | JPEG faili (* .jpeg) | * .jpeg"

ja (dialog.ShowDialog () == true)
<
// atgriešanās
//>

// Izveidojiet jaunu dinamisko slāni no tā paša kartes pakalpojuma kā pašreizējais flīžu slānis


Kā iegūt lauku nosaukumus no slāņa?

Tāpēc man ir ArcGISDynamicMapServiceLayer, kura iekšpusē ir apakšslāņi. kā es varu iegūt lauku nosaukumus apakšslāņa iekšpusē?

autors DominiqueBroux

Es nedomāju, ka ir SL API, kas piešķir laukus ArcGISDynamicMapServiceLayer, bet informāciju varat iegūt, pieprasot punktu REST.


Lai to deserializētu, jums būs nepieciešams neliels kods.

autors DominiqueBroux

Ja jums ir API 2. versija, vēl viena iespēja, kuru jūs varētu apsvērt, ir izveidot FeatureLayer, kas pēc inicializācijas darbības sniegs jums lauku sarakstu.

Piemērs: paziņojiet objektu slāni tikai atlases režīmā, lai nepieprasītu nevajadzīgus datus.

Iegūstiet laukus, apstrādājot notikumu 'Inicializēts':

Vai ir iespējams programmiski iegūt Field_Alias ​​no gala punkta REST lietošanai ar uzdevumu identificēt?

Priecājos, ja kāds man to varētu nedaudz apgaismot

Es savā tehniskajā emuārā esmu izveidojis divus ierakstus, kas parāda, kā to izdarīt. Esmu izveidojis paplašināšanas metodi ArcGISDynamicMapServiceLayer klasei. Diemžēl mans emuārs ir portugāļu brazīliešu valodā, bet jūs, puiši, varat to viegli tulkot, izmantojot Google (es domāju).

Ari C. Raimundo
Lietotņu izstrādātājs
Kuritiba-PR-Brazīlija

Es savā tehniskajā emuārā esmu izveidojis divus ierakstus, kas parāda, kā to izdarīt. Esmu izveidojis paplašinājuma metodi ArcGISDynamicMapServiceLayer klasei. Diemžēl mans emuārs ir portugāļu brazīliešu valodā, bet jūs, puiši, varat to viegli tulkot, izmantojot Google (es domāju).

Ari C. Raimundo
Lietotņu izstrādātājs
Kuritiba-PR-Brazīlija

Liels paldies par jūsu kodu, tas man ļoti palīdzēja. saglabāja manu dienu, tā sniedz precīzu pieeju DynamicMapServer slāņa lauku ielādēšanai. Es jau kādu laiku meklēju ceļvedi līdzīgai pieejai, un jūs esat paveicis lielisku darbu un turklāt dalījies ar savu darbu - ne tikai sniedzot norādes kā citi ieraksti. Tas ir patiešām forši. Liels paldies visiem punktiem jums.
Arī starp citu Kuritiba ir jauka forša pilsēta.


1 Atbilde 1

Kā jau teicāt, Esri ir tikai viens no daudzajiem OAuth nodrošinātājiem, tāpēc jums būs “jāritina mūsu pašu kods” jebkurā situācijā, kad atsevišķu pārdevēju paraugi neuzrāda tieši to, kas jums nepieciešams.

Attiecībā uz to, vai jums trūkst kaut kā pamata, es īsti nevaru pateikt no jūsu jautājuma. Jebkurai autentifikācijai, kuru veicat ar trešo personu OAuth nodrošinātājiem, nebūs nekāda sakara ar Esri serveriem.

Visbeidzot, es nesaprotu, kāpēc jūs galu galā rakstīsit C #, jo jūs varat dot lietotājiem iespēju autentificēties tieši Google vai Facebook tieši no klienta JavaScript.


Izveidojiet rīkjoslu

  1. ArcMap logā Katalogs atrodiet WebApp mapi reģistrētajā mapē.
  2. Ar peles labo pogu noklikšķiniet uz mapes WebApp un noklikšķiniet uz Jauns & gt rīkjosla. Piešķiriet rīkkastei nosaukumu AdvancedHighQualityPrinting.
  3. Ar peles labo pogu noklikšķiniet uz rīkjoslas AdvancedHighQualityPrinting un noklikšķiniet uz Vienuma apraksts.
  4. Dialoglodziņā Vienuma apraksts aizpildiet vienumus Tagi un Kopsavilkums ar izvēlēto tekstu. Pēc izvēles aizpildiet citus priekšmetu aprakstus.
  5. Noklikšķiniet uz Saglabāt un izejiet no dialoglodziņa Vienuma apraksts.

Sāciet Web izstrādi, izmantojot JavaScript ĢIS karti

(kurss atjaunināts: 2017-Oct-01: aizstājiet lecture03 Test Projects vietnē Google Firebase 2017-May-03: pievienojiet 13 jaunas lekcijas funkciju slāņu pievienošanai, leģenda 2017-Apr-27: pievienojiet 7 jaunas lekcijas grāmatzīmēm, dijit pogas, un openStreet Map 2017-Apr-23: atjauniniet jauno API versiju 3.20 un 4.3, pievienojiet kodu pilnā apjomā katram projektam 2016-Aug-31: Google resursdatora pakalpojums ir pārtraukts, ieteicams Firebase 2016 2016. gada 9. jūlijs: pievienojiet papildu saturu 2016 -Jūn-23: pievienot papildu saturu 2016-Jun-29: pievienot papildu saturu)

"Pasaule, kurā dzīvojam, ir pilna ar koordinātām, un es to mīlu!" - Alfrēds Lams, kursu pasniedzējs.

"Skaistas kartes izveidošanas būtība ir līdzsvars!" - kursa instruktors Alfrēds Lams.

Šis ir sākuma līmeņa kurss, kas māca, kā pievienot ĢIS karti, 3D karti tīmekļa lietojumprogrammām JavaScript. Šajā kursā sniegtais kods ir vienkāršs un efektīvs. Šī kursa mērķis ir dot studentiem priekšstatu par to, cik lielā mērā ArcGIS JavaScript API var jums palīdzēt.

ĢIS nozīmē Ģeogrāfiskās informācijas sistēma. To veido aparatūra, programmatūra, cilvēki, vide un dati. Tāpēc studenti ar dažādu izcelsmi var mācīties un izmantot ĢIS. Šī kursa mērķis ir nodot studentiem ideju, ka ĢIS kartes pievienošana tīmeklim jūsu klientiem nav grūta. Jūs varat pavadīt minimālo laiku, lai to apstrādātu.

Ja esat jauns lietotājs ĢIS kartēs tīmekļa izstrādē, šis kurss ir īstā vieta, kur sākt. ArcGIS API JavaScript ir izstrādājis ESRI, kas līdz šim ir lielākais ĢIS sistēmu un lietojumprogrammu pārdevējs pasaulē. Daži izstrādātāji var jautāt, kāpēc mēs traucējamies izmantot ĢIS kartes, jo mums jau ir Google karte. Es atbildu, ka Google karte ir lieliska, lai jūs varētu noteikt savas atrašanās vietas. Bet tās dati, funkcionalitāte un elastība nebūt nav pietiekami, ja vēlaties izveidot daudzpusīgu lietotni ar dažādām bāzes kartēm, pastāstīt stāstu, pievienot savas kartes funkcijas vai veikt analīzi klientiem, izmantojot karti. Savukārt ArcGIS ir visaptverošākā un progresīvākā ĢIS pasaulē, un tā spēj veikt visus šos uzdevumus jūsu vietā. Lūdzu, pieminējiet, ka 3D kartes API joprojām ir beta versijā.

Laiks ir dārgs daudziem tīmekļa izstrādātājiem un programmētājiem. Šis kurss tika apkopots ar visām nepieciešamajām darbībām, lai sāktu tīmekļa ĢIS lietotņu izstrādi. Tiem ĢIS lietotājiem, studentiem, iOS izstrādātājiem un visiem, kas ir ieinteresēti izstrādāt pienācīgākas mobilo vai tīmekļa ĢIS lietotnes. Lūdzu, atrodiet manā vietnē vai uzziniet par citiem maniem kursu paziņojumiem par Android, JavaScript un iOS nākotnē.


Kā es varu saņemt leģendu no ArcGISDynamicMapServiceLayer, izmantojot esri javascript api? - Ģeogrāfiskās informācijas sistēmas

Lai izmaiņas stātos spēkā, izsauciet GraphicsLayer pārzīmēšanas metodi pēc šīs metodes izsaukšanas.

Jauns esri.renderer.SimpleRenderer (noklusējuma simbols)

Jauns esri.renderer.SimpleRenderer (Json)

& ltSymbol & gt defaultSymbol

& ltString & gt apraksts

& ltString & gt etiķete

& ltObject & gt proporcionalais simbols

  • Dati, kas atspoguļo a attāluma daudzums. Piemēram:
    • Ja koku atrašanās vietas ir definētas kā punkti un atribūtu lauks ar koku lapotnes rādiusu, varat izmantot proporcionālus simbolus, lai attēlotu faktisko zemes platību, kuru klāj katrs koks.
    • Lai attēlotu ūdensvada platumu, varat izmantot proporcionāla izmēra līnijas.
    • Parādiet satiksmes datus, piemēram, ceļus un lielceļus, kā līnijas simbolus, kur gājiena platums ir proporcionāls satiksmes skaitam.
    • Izveidojiet proporcionālo marķieru simbolu skaitīšanas karti, kur katra simbola platība atspoguļo štata populāciju.

    Turklāt, neatkarīgi no iepriekš aprakstītā datu veida, jūs varat kartēt datu vērtību diapazonu ar simbolu izmēru diapazonu.

    Punktu funkcijām veidotāja lielums tiek mainīts proporcionāli datu vērtībai. Līnijas funkcijām gājiena platums ir atšķirīgs.

    proportionalSymbolInfo atbalsta šādas īpašības

    Šis īpašums ir nepieciešams

    Ja datu vērtība norāda daudzumu, kas nav attālums (piemēram, trafika skaits, skaitīšanas dati), tad vērtībaUnit ir jāiestata uz "nezināms".

    Šis īpašums ir nepieciešams.

    • rādiuss: datu vērtība apzīmē apļveida objekta rādiusu.
    • diametrs: datu vērtība apzīmē apļveida pazīmes diametru.
    • apgabals: datu vērtība apzīmē objekta apgabalu.
    • platums: datu vērtība norāda līnijas platumu.
    • attālums: datu vērtība norāda apļveida objekta rādiusu.
    • rādiuss: datu vērtība norāda attālumu no centra līnijas (pusi no platuma).

    Šis īpašums nav obligāts.

    Dati, kas atspoguļo attālums daudzums: Norādiet minSize un maxSize, lai izlīdzinātu outliers.

    Dati, kas attēlo daudzumu, kas nav attālums. Norādiet parametru maxSize, lai izlīdzinātu izņēmumus.

    Datu vērtību diapazonu kartē ar simbolu izmēru diapazonu:

    & ltObject & gt rotationInfo

    Objekta atribūta lauka nosaukums, kurā ir rotācijas leņķis. Vai arī funkcija, kas atgriež rotācijas leņķi.

    Funkcija ir noderīga gadījumos, kad rotācijas leņķis atribūtu laukā nav pieejams, bet ir jāaprēķina, izmantojot matemātisko izteiksmi vai formulu. Piemēram, varat norādīt funkciju, lai aprēķinātu vēja vai pašreizējo virzienu, ja pamatā esošie dati tiek saglabāti kā U vai V vektori. Skatīt piemēru zemāk.


    ArcGIS API JavaScript 3.26

    Pievienojiet savai lietotnei ģeogrāfiskās meklēšanas lodziņu ar pāris koda rindiņām. Logrīkam pēc noklusējuma ir ArcGIS Online World Geocoding Service, taču to var pielāgot, lai izmantotu vienu vai vairākus ArcGIS Server ģeokodēšanas pakalpojumus.
    Pārbaudiet paraugus, kas izmanto šo jauno logrīku.

    Jaunas karšu konstruktora iespējas:

    Kartes klasē ir jaunas konstruktora opcijas, kas var palīdzēt jums iestatīt karti, izmantojot mazāku kodu.

    • bāzes karte: ArcGIS.com pamatkarte. Iespējamās vērtības: "ielas", "satelīts", "hibrīds", "topo", "pelēks", "okeāni", "nacionāli ģeogrāfisks" vai "osm".
    • centrs: divu koordinātu (garuma, platuma) vai esri.geometry.Point masīvs.
    • tālummaiņa: kartes tālummaiņas līmeņa sākšana.
    • minZoom: mazākais mēroga tālummaiņas līmenis kartē.
    • maxZoom: kartes lielākais tālummaiņas līmenis.

    Kartes izmērs tagad tiek automātiski mainīts, tāpēc vairs nav nepieciešams iestatīt notikumu klausītāju, lai mainītu notikumu lielumu kartes konteinerā, lai izsauktu mapi.resize, kad kartes konteinera izmērs tiek mainīts.

    Zemāk ir salīdzināts iepriekšējais kods 3.3 un ekvivalents kods 3.3.

    Vienkārša bāzes kartes maiņa

    Divas jaunas karšu metodes, getBasemap un setBasemap, atvieglo pamatkartes maiņu. setBasemap pieņem vienu no iepriekš minētajām virknēm, kas atbilst ArcGIS.com bāzes kartei. Ja sākotnēji bāzes kartes iestatīšanai tika izmantota map.options.basemap vai kartes pamatkarte tika iestatīta ar setBasemap, getBasemap atgriezīs virkni, kas atbilst kartes pašreizējai pamatkartei.

    Pēc noklusējuma ir maza kartes tālummaiņas vadība

    Tagad kartes tālummaiņas vadīklas slīdņa vietā pēc noklusējuma ir “+” un “& ndash”. Slīdnis ir pieejams, izlaižot sliderStyle: "large" kartē, izmantojot konstruktora opciju objektu.

    Izmantojiet grafikas slāni vai iezīmju slāni kā vienīgo slāni kartē

    Kartei vairs nav nepieciešams flīžu vai dinamisks pakalpojums, kas būtu pirmais kartei pievienotā slāņa veids. Apskatiet jauno funkciju slāni jebkurā projekcijas paraugā, lai redzētu, kā tas darbojas.

    Uzlabota apstrāde platuma un garuma koordinātās

    Tiek pieņemts, ka esri.geometry objekti, kas izveidoti bez telpiskas atsauces, ir ģeogrāfiski un pēc noklusējuma ir WGS84 telpiskās atsauces (wkid 4326). Esri.geometry.Point gadījumiem ir divas jaunas metodes: getLatitude un getLongitude, kas atgriež platumu vai garumu, ja punktam ir ģeogrāfiskas vai tīmekļa merkatora koordinātas. Pretējā gadījumā šīs metodes atgriežas nedefinētas. Kartei ir arī īpašums geographicExtent, ja karte atrodas ģeogrāfiskās koordinātās vai tīmekļa merkatorā.

    Zīmēšanas rīku uzlabojumi

    Zīmēšanas rīkjoslas taisnstūra, trīsstūra, apļa un elipses rīki atbalsta klikšķi + vilkšana, lai noteiktu katras formas lielumu. Rīkjoslā tagad ir iekļautas arī iespējas zīmēt bultiņas noteiktos virzienos (augšup, lejup, pa kreisi un pa labi). Jaunās opcijas ir parādītas zīmēšanas rīku paraugā.