Установка Arcgis JS API локально

0 голосов
спросил 22 Июль, 20 от Dido_kz (2,240 баллов) в категории Программные продукты Esri
редактировать 22 Июль, 20 от Dido_kz

всем привет, подскажите, кто сталкивался

установил Arcgis JS API локально, на сервере согласно по мануалу. Изменил имя хоста на доменное имя в двух местах: dojo.js & init.js

Но веб приложений в упор не видят не которые файлы с сервера (например:  MapView.js и WebMap.js)

dojo.js:24 GET https://esri/views/MapView.js net::ERR_NAME_NOT_RESOLVED

dojo.js:24 GET https://esri/WebMap.js net::ERR_NAME_NOT_RESOLVED

где что еще менять надо ?

исходник для проверки

<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <!--
  ArcGIS API for JavaScript, https://js.arcgis.com
  For more information about the webmap-basic sample, read the original sample description at developers.arcgis.com.
  https://developers.arcgis.com/javascript/latest/sample-code/webmap-basic/index.html
  -->
<title>Test</title>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <link
      rel="stylesheet"
      href="https://gis.kgp.kz/4.16/esri/themes/light/main.css"
    />

    <script src="https://gis.kgp.kz/4.16/dojo/dojo.js"></script>

    <script>
     
      require(["esri/views/MapView", "esri/WebMap", "esri/config"], function (
        MapView,
        WebMap,
        esriConfig
        ) {
       /************************************************************
         * Creates a new WebMap instance. A WebMap must reference
         * a PortalItem ID that represents a WebMap saved to
         * arcgis.com or an on-premise portal. 
         * ffffggggjjjddddaaaa
         * To load a WebMap from an on-premise portal, set the portal
         * url with esriConfig.portalUrl. 
         ************************************************************/
        esriConfig.portalUrl = "https://gis.kgp.kz/portal"; 
        var webmap = new WebMap({
            portalItem: {
            // autocasts as new PortalItem()
            id:"0ce4b182600b4ea78afdcda6ec8428e8"
          }
        });

        /************************************************************
         * Set the WebMap  instance to the map property in a MapView. 
         ************************************************************/
        var view = new MapView({
          map: webmap,
          container: "viewDiv"
        });
      });
    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>

1 Ответ

0 голосов
ответил 22 Июль, 20 от Grigoriy (127,020 баллов)

Ну написано же:

Скопировать папку arcgis_js_api из архива в папку C:\inetpub\wwwroot\arcgis_js_api

Заменить:

[HOSTNAME_AND_PATH_TO_JSAPI]

На:

gis.kgp.kz/arcgis_js_api/library/4.16/

в двух файлах:

C:\inetpub\wwwroot\arcgis_js_api\library\4.16\init.js

C:\inetpub\wwwroot\arcgis_js_api\library\4.16\dojo\dojo.js

Протестировать, что они доступны снаружи:

https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo.js

https://gis.kgp.kz/arcgis_js_api/library/4.16/

Скопировать файл test_js.html в папку C:\inetpub\wwwroot\ отсюда:

https://forum.esri-cis.ru/?qa=blob&qa_blobid=8018851540065601137

Проверить, что пример работает в режиме отладки (в консоле не должно быть красненького):

https://gis.kgp.kz/test_js.html

Собственно сам js_api можно уже использовать внутри.

А дальше откуда Вы его вызываете и как - уже другой вопрос.

Вот тут работает тоже самое, но js_api берёт оттуда же:

https://projectserver.dataplus.ru/test_js.html

оставил комментарий 22 Июль, 20 от Dido_kz (2,240 баллов)
У меня линукс, написал же выше
Изменил имя хоста на доменное имя в двух местах: dojo.js & init.js
:)
Путь в библиотекам
htyps://gis.kgp.kz/4.16/
оставил комментарий 22 Июль, 20 от Grigoriy (127,020 баллов)
Про линукс выше ничего нет :)
В линукс тоже самое.
У Вас сейчас всё лежит по пути:
https://gis.kgp.kz/4.16/dojo/dojo.js
А должно быть так:
https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo.js
Если нужен другой путь - то нужно ребилдить.
оставил комментарий 22 Июль, 20 от Dido_kz (2,240 баллов)
Ок, завтра верну длинный пусть от ЕСРИ
"Написано же" относится к тому,  что я уже заменил в двух местах...
оставил комментарий 22 Июль, 20 от Grigoriy (127,020 баллов)
The ArcGIS API for JavaScript library can be copied in its entirety to your web server directory (/var/www/html/arcgis_js_api/library/4.16/). Copy /arcgis_js_api/library/4.16/ and all its contents from the ArcGIS API for JavaScript download to your web server. In this example the files are copied to: /var/www/html/arcgis_js_api/library/4.16/.

After copying the files to your web server, you will need to edit some files to specify the baseUrl (www.example.com/arcgis_js_api/library/4.16/) for the default Dojo configuration
оставил комментарий 23 Июль, 20 от Dido_kz (2,240 баллов)
проверь пож-ста, у вас работает или нет
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <title>Load a basic WebMap | Sample | ArcGIS API for JavaScript 4.16</title>

    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>

    <link
      rel="stylesheet"
      href="https://gis.kgp.kz/arcgis_js_api/library/4.16/esri/themes/light/main.css"
    />

    <script src="https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo.js"></script>

    <script>
      require(["esri/views/MapView", "esri/WebMap","esri/config"], function (
        MapView,
        WebMap,
        config
      ) {
        config.portalUrl = "https://gis.kgp.kz/portal";
        var webmap = new WebMap({
            portalItem: {
            // autocasts as new PortalItem()
            id:"0ce4b182600b4ea78afdcda6ec8428e8"
          }
        });

        var view = new MapView({
          map: webmap,
          container: "viewDiv"
        });
      });
    </script>
  </head>

  <body>
    <div id="viewDiv"></div>
  </body>
</html>
оставил комментарий 23 Июль, 20 от Dido_kz (2,240 баллов)
исправил, но безрезультатно
что https://gis.kgp.kz/4.16/dojo" или https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo"
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Дидар, ну ты глаза раскрой :)
Ну ты же опять написал неправильно.
Неужели трудно написать как нужно.
Он же у тебя физически лежит в другом месте.
baseUrl:"https://gis.kgp.kz/4.16/dojo/dojo.js
это совсем не:
baseUrl:"https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo"
Вот совсем же другие буквы :)
Удали всю папку и скопируй из источника.
И поменяй в двух файлах правильно как написано.
оставил комментарий 23 Июль, 20 от Dido_kz (2,240 баллов)
исправил
запарился немнокжко, сорян
исправил,но не вижу изменений
у вас моя карта открывается ?
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Она у тебя должна открываться в первую очередь.
у браузера есть кнопочка F12 - открывает инструмент разработчика.
И там написано:
Request URL: https://gis.kgp.kz/4.16/dojo/dojo.js/arcgis_js_api/library/4.16/esri/views/MapView.js
Request Method: GET
Status Code: 404
Потому как:
baseUrl:"https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo.js"
Это совсем не одно и тоже что:
baseUrl:"https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo"
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
чтобы у тебя и у меня не было "has been blocked by CORS policy: No 'Access-Control-Allow-Origin' " нужно сам пример положить куда-нибудь на https://gis.kgp.kz/test_kz.html
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
HTTP Status 404 – Not Found
Type Status Report

Message The requested resource [/test_kz.htm] is not available

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Разрабам - Разрабатывать :)
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Теперь сам пример поправить.
Request URL: https://gis.kgp.kz/4.16/dojo/dojo.js
Request Method: GET
Status Code: 404
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Разрабам - открыть гугл и прочитать, что такое CORS.
И как его разрешить.
оставил комментарий 23 Июль, 20 от Grigoriy (127,020 баллов)
Дидар - пробуй сам, у тебя получится :)
Request URL: https://gis.kgp.kz/4.16/esri/themes/light/main.css
Request Method: GET
Status Code: 404

Request URL: https://gis.kgp.kz/4.16/dojo/dojo.js
Request Method: GET
Status Code: 404

Ты свой пример посмотри:
 <link
       rel="stylesheet"
       href="https://gis.kgp.kz/arcgis_js_api/library/4.16/esri/themes/light/main.css"
     />

     <script src="https://gis.kgp.kz/arcgis_js_api/library/4.16/dojo/dojo.js"></script>
оставил комментарий 23 Июль, 20 от Dido_kz (2,240 баллов)
редактировать 24 Июль, 20 от Dido_kz
спасибо Григорий
оставил комментарий 23 Июль, 20 от Dido_kz (2,240 баллов)
редактировать 24 Июль, 20 от Dido_kz
дядя Гриша ) крепкого Вам здоровья
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...