Hallo allemaal. Ik probeer een mapping-applicatie te maken met CesiumJS in react via de Resium-bibliotheek. Ik wil graag de FAA VFR Sectional Charts weergeven die hier te vinden zijn: https:\/\/faa.maps.arcgis.com\/home\/item.html?id=6ab79dc5de5743adb3e3b6e3c803aa59<\/A>Ik ben vrij nieuw met Cesium\/Resium. Ik heb de ArcGis\/CesiumJS-documentatie gelezen die hier staat voor het laden van kaarttegels: https:\/\/developers.arcgis.com\/cesiumjs\/layers\/add-map-tiles\/<\/A> Wat natuurlijk gewoon base CesiumJS gebruikt. Ik heb gecontroleerd dat mijn toegangstokens correct zijn en niet null of iets dergelijks. Mijn arcgis ontwikkelaarstoken heeft alle beschikbare permissies die ik kon instellen. Ik heb ook geprobeerd de kaarttegel-URL voor de santa monica percelen hier te gebruiken: https:\/\/developers.arcgis.com\/cesiumjs\/layers\/<\/A> en krijg nog steeds een 404-fout. Ik geef mijn toegangstoken door zoals je kunt zien, en er was 1 arcgis URL die ik vond waarvoor ik WEL tegels kon laden. Is er een soort permissie-instelling die ik moet configureren om toegang te krijgen tot die FAA-tegels? Er staat dat ze openbaar zijn? Ik ben nieuw in dit alles, dus er moet iets zijn dat ik mis om correct verbinding te maken om deze tegels te krijgen. Bedankt voor alle hulp die je kunt bieden.<\/P> <\/P> <\/P>import { ArcGisMapServerImageryProvider, ArcGisMapService, ImageryLayer, Ion } from 'cesium'; import { useEffect, useState } from "react"; import { Viewer } from "resium"; function App() { const arcGisApiKey = import.meta.env.VITE_ARCGIS_API_KEY; const cesiumAccessToken = import.meta.env.VITE_CESIUM_API_KEY; Ion.defaultAccessToken = cesiumAccessToken; ArcGisMapService.defaultAccessToken = arcGisApiKey; Ion.defaultAccessToken = cesiumAccessToken; ArcGisMapService.defaultAccessToken = arcGisApiKey; const [vfrImagery, setVfrImagery] = useState<ImageryLayer | undefined>(undefined); useEffect(() => { async function loadImagery() { try { const vfrImageryProvider = await ArcGisMapServerImageryProvider.fromUrl( "https:\/\/tiles.arcgis.com\/tiles\/ssFJjBXIUyZDrSYZ\/arcgis\/rest\/services\/VFR_Sectional\/MapServer" ); const vfrImageryLayer = new ImageryLayer(vfrImageryProvider); setVfrImagery(vfrImageryLayer); } catch (error) { console.error("Fout bij het laden van imagery providers:", error); } } loadImagery(); }, [arcGisApiKey]); return ( <Viewer baseLayer={vfrImagery} timeline={false} animation={false} geocoder={false} > <\/Viewer> ); } export default App;<\/code><\/pre> <\/P> <\/P> <\/P>
<\/P>
import { ArcGisMapServerImageryProvider, ArcGisMapService, ImageryLayer, Ion } from 'cesium'; import { useEffect, useState } from "react"; import { Viewer } from "resium"; function App() { const arcGisApiKey = import.meta.env.VITE_ARCGIS_API_KEY; const cesiumAccessToken = import.meta.env.VITE_CESIUM_API_KEY; Ion.defaultAccessToken = cesiumAccessToken; ArcGisMapService.defaultAccessToken = arcGisApiKey; Ion.defaultAccessToken = cesiumAccessToken; ArcGisMapService.defaultAccessToken = arcGisApiKey; const [vfrImagery, setVfrImagery] = useState<ImageryLayer | undefined>(undefined); useEffect(() => { async function loadImagery() { try { const vfrImageryProvider = await ArcGisMapServerImageryProvider.fromUrl( "https:\/\/tiles.arcgis.com\/tiles\/ssFJjBXIUyZDrSYZ\/arcgis\/rest\/services\/VFR_Sectional\/MapServer" ); const vfrImageryLayer = new ImageryLayer(vfrImageryProvider); setVfrImagery(vfrImageryLayer); } catch (error) { console.error("Fout bij het laden van imagery providers:", error); } } loadImagery(); }, [arcGisApiKey]); return ( <Viewer baseLayer={vfrImagery} timeline={false} animation={false} geocoder={false} > <\/Viewer> ); } export default App;<\/code><\/pre> <\/P> <\/P> <\/P>
ugh....okay well this embaressing but it's because I didn't zoom in enough....once I zoomed in the tiles loaded in. I guess they have a min/max zoom for when they start to appear.
I also realize I have those two access tokens line twice. That was a typo.
@BrandonBerisfordI tried it and it worked for me. What service is giving you error 404? A 404 error indicates the resource you are attempting to request does not exist, so check your URLs and parameters. If the token was incorrect you would see an error 403 or 401.
I used this example code https://developers.arcgis.com/cesiumjs/scenes/display-a-scene/
I set my ArcGIS API key and Cesium token. Then changed
const arcGisImagery = Cesium.ArcGisMapServerImageryProvider.fromUrl("https://tiles.arcgis.com/tiles/ssFJjBXIUyZDrSYZ/arcgis/rest/services/VFR_Sectional/MapServer");
and that rendered the FAA map
I've attached some screenshots. I've set my cesium ion token and arcgis api key up, and you can see my code below. Idk if you've tried using resium/react instead of vanilla javascript, but this should definetely be possible. I get a ton 404's for like all kinds of tiles it's trying to load it seems?
const arcGisImageryProvider = await ArcGisMapServerImageryProvider.fromBasemapType( ArcGisBaseMapType.SATELLITE, { token: arcGisApiKey } );
If I try just loading the base satellite imagery as seen below it works fine, but when I try to swap to using the fromUrl and the vfr imagery, i get those 404's.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.