1 votos

ArcGIS múltiples conflictos de scripts

Estoy desarrollando widgets de javascript separados en diferentes scripts y funcionan de forma independiente. Sin embargo, cuando intento poner ambos scripts juntos, ninguno funciona en absoluto. Por lo tanto, esto me lleva a mi pregunta, ¿hay alguna forma de integrar fácilmente múltiples scripts de Javascript de ArcGIS?

Por ejemplo, si solo cambio las declaraciones require de:

require([
        "esri/map",
        "esri/layers/FeatureLayer",
        "esri/dijit/PopupTemplate",
        "esri/request",
        "esri/geometry/Point",
        "esri/graphic",
        "dojo/on",
        "dojo/_base/array",
        "dojo/domReady!"
      ],

a:

require([
        "esri/map",
        "esri/tasks/RouteTask",
        "esri/tasks/RouteParameters",
        "esri/layers/FeatureLayer",
        "esri/dijit/PopupTemplate",
        "esri/request",
        "esri/geometry/Point",
        "esri/graphic",
        "dojo/on",
        "dojo/_base/array",
        "dojo/domReady!"
      ],

rompe todo mi código. Me da un error en la siguiente línea:

var popupTemplate = new PopupTemplate({
          title: "{title}",
          description: "{description}"
        });

En este caso, cuando digo que se rompe, me refiero a que los aspectos funcionales de mi código ya no funcionan. Solo muestra un mapa vacío, pero ninguna de mis capas de elementos muestra nada.

1voto

Simon Puntos 346

Mi suposición es que aunque hayas agregado clases adicionales a tu declaración de require, no has añadido referencias adicionales para mapearlas, lo que hace que estén descoordinadas. Cada clase que requieres se mapea a la referencia que especificas en la misma posición, por lo tanto, la primera clase requerida se mapea a la primera referencia, la segunda a la segunda, y así sucesivamente.

Supongo que la siguiente parte de tu código se ve algo así:

require([
        "esri/map",
        "esri/layers/FeatureLayer",
        "esri/dijit/PopupTemplate",
        "esri/request",
        "esri/geometry/Point",
        "esri/graphic",
        "dojo/on",
        "dojo/_base/array",
        "dojo/domReady!"
      ],
        Map,
        FeatureLayer,
        PopupTemplate,
        request,
        Point,
        graphic,
        on,
        ArrayUtils

Esto significa que puedes acceder a la clase esri/map usando la referencia Map. Puedes acceder a la clase esri/Layers/FeatureLayer usando la referencia FeatureLayer. Y así sucesivamente.

Por lo tanto, si agregas algunas clases adicionales a tu declaración de require, necesitas agregar referencias adicionales. Si no quieres/necesitas referencias a una clase en particular, ponla al final para que no desplace a ninguna otra. Es decir, domReady! nunca se mapea a una referencia, por lo que va al final para que no desplace algo.

Espero que esto ayude, y si no es el problema, publica más de tu código.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X