首页 > 编程语言 >ArcGIS API for JavaScript 4.x 免登录调用arcgis online私有服务

ArcGIS API for JavaScript 4.x 免登录调用arcgis online私有服务

时间:2023-12-26 15:24:16浏览次数:47  
标签:apiKey 服务 ArcGIS JavaScript arcgis api key view

API keys | ArcGIS Developers

 

前言

 本来以为普通用户调用服务只能依靠登录,仔细研究了一下可以通过key来实现免登录调用服务。

背景

最近在做一个BIM结合GIS的Demo,先通过arcgis pro将.rvt文件配准到实际位置,然后打包成slpk文件,拖拽到arcgis online发布出来,最后在前端加载。 

环境

 arcgis pro 3.0.0

Revit 2021

arcgis api for jacvascipt 4.24

Win10

问题

 01.免费版的online只能发布私有服务,调用私有服务需要登录arcgis online账号

02. 自己发布的服务无法删除:

 03.续订日期才能恢复服务

 

所谓的续订服务的日期大概就是这个吧

 

解决方案

 既然只能发布私有服务,那只能使用api key来解决免登录问题。

进入开发者仪盘表(DashboardAPI keys),发现有一个默认的api-key,可以使用这个key,但我觉得自己新建一个比较好。

 

方案一,使用现有默认key:

①单击View Usage

 ②进入Overview,找到右下角的"Set content item scopes"

 ③选中需要绑定的服务,然后单击右下角Add items

 ④结果

 

⑤如果需要,还可以限制访问的域名

 方案二,新建api-key

①单击左上角新增api key

 ②设置名称和描述

 ③后面的步骤跟方案一相同了:

 

 

代码部分:

const addBIM = (view) => {
  /**
   * apiKey可以在esriConfig设置,也可以在BuildingSceneLayer里面设置
   */
  const apiKey="AAPK1457dc3f91554c6fbde4a85e9826f27bszcOiZPFXyTkT3DClwZbHFvPNvSPNffmWyEF2rfpCeVV5osoQxdS";//此key已经删除一部分,仅作示例用
  // esriConfig.apiKey = apiKey;
  const buildingLayer = new BuildingSceneLayer({
    url: "https://tiles.arcgis.com/tiles/pDXnn9eULK5uzFWf/arcgis/rest/services/wjschoolrvt/SceneServer",
    title: "BIM图层",
    apiKey:apiKey
  });
  view.map.layers.add(buildingLayer);
  view.goTo({
    center: [120.602, 31.145],
    heading: 10,
    zoom: 20,
    tilt: 45
  })
  view.popup.autoOpenEnabled = false;
  // Get the screen point from the view's click event
  view.on("click", function (event) {
    // Search for graphics at the clicked location. View events can be used
    // as screen locations as they expose an x,y coordinate that conforms
    // to the ScreenPoint definition.
    view.hitTest(event).then(function (response) {
      let result = response.results[0];

      if (result) {
        let lon = result.mapPoint.longitude;
        let lat = result.mapPoint.latitude;

        console.log("Hit graphic at (" + lon + ", " + lat + ")", result.graphic);
      } else {
        console.log("Did not hit any graphic");
      }
    });
  });
}
View Code

 

参考网址

01.Set location service scopes(设置api key的关联的服务)

标签:apiKey,服务,ArcGIS,JavaScript,arcgis,api,key,view
From: https://www.cnblogs.com/youzi-xuchongyou/p/17928187.html

相关文章

  • 在 Python 中,​​?:​​​ 符号并不是一个有效的运算符。这个符号在其他一些编程语言
    在Python中,?:符号并不是一个有效的运算符。这个符号在其他一些编程语言中,如JavaScript或C,被称为条件(三元)运算符。然而,在Python中,我们使用if-else表达式来达到相同的目的。例如:x=10y=20print("xisgreater")ifx>yelseprint("yisgreater")在上述代码中,如果......
  • JavaScript基础语句和window对象
    ifelse语句varsum=190varyouhuisum//赋予一个容器if(sum>=200){youhuisum=sum-10console.log(111)}else{//如果上面if不满足则都执行else语句......
  • JavaScript读写FM1208 CPU卡源码
    本示例使用的发卡器:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv=&quo......
  • JavaScript读写15693 ICod2 卡源码
    本示例使用设备:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="......
  • JavaScript(JS) 数组
    ​ JavaScript数组是一个可变长度的对象,用于存储多个值。数组的值可以是任何类型,包括数字、字符串、对象、函数等。参考文档:JavaScript(JS)数组-CJavaPy1、创建数组可以使用以下方式创建数组:使用方括号[]来创建一个空数组:JavaScriptconstarr=[]; 使用 A......
  • JavaScript手搓"防抖"优化代码
    一、为什么要防抖就好比我们想象一个场景:当我们在使用我们的页面,我们页面有一个提交数据的按钮!我们每次点击提交按钮,都会向我们的后端服务器发送一个请求!接下来我们来构建一下这样一个简单的页面!<buttonid="submit">提交</button><script>letsub=document.getEle......
  • javascript中的点击事件
     <!DOCTYPEhtml><html>    <head>        <metacharset="utf-8">        <title></title>    </head>    <body>        <tableborder>            <tr>                <th><i......
  • JavaScript数组
    数组在JavaScript开发中,数组主要用于临时存储多个数据,可以存放不同类型的数据。数组的定义数组的定义有两种方式:①使用Array对象使用new关键字实现,语法如下://定义一个空数组letarray=newArray();//定义元素值位数值的数组letarray=newArray(1,2,3,1.3);//......
  • 基于html+javascript开发的base64解码工具
    base64在线解码工具可以帮助你将Base64编码的字符串解码为原始的文本或数据。预览入口以下是一个简单的base64在线解码工具的示例:html<!DOCTYPEhtml><html><head><title>Base64在线解码工具</title></head><body><h1>Base64在线解码工具</h1><labelf......
  • 基于html+javascript开发的base64解码工具
    base64在线解码工具可以帮助你将Base64编码的字符串解码为原始的文本或数据。预览入口以下是一个简单的base64在线解码工具的示例:html<!DOCTYPEhtml><html><head><title>Base64在线解码工具</title></head><body><h1>Base64在线解码工具</h1><l......