Quiero mostrar un hipervínculo en la parte inferior de la plantilla emergente en el mapa arcgis esri. Agregué el código que probé, pero el hipervínculo no se muestra en la plantilla emergente. Solo se muestra la tabla de campos. ¿Podría por favor mirar este código y decirme si me he perdido algo?
archivo .ts
const popUpTemplate = new PopupTemplate({ title: "{name}", content: [ { type: "fields", fieldInfos: [ { fieldName: "PhysicianName", label: "Physician Name" }, { fieldName: "Practice", label: "Primary Practise", }, ] }, new CustomContent({ outFields: ["*"], creator: (graphic) => { const a = document.createElement("a"); a.href = "https://www.youtube.com/"; a.target = "_blank"; a.innerText = graphic.attributes.PhysicianName; return a; } }) ], outFields: ["*"] }); const myLayer = new FeatureLayer({ source: physicianData.map((d,i)=>( { geometry: new Point({ longitude: d.Longitude, latitude: d.Latitude }), attributes: { ObjectID: i, name : d.PhysicianName, PhysicianName : d.PhysicianName, Practice : d.Practice, ...d } } )), fields: [{ name: "ObjectID", alias: "ObjectID", type: "oid" }, { name: "name", alias: "Physician : ", type: "string" }, { name: "PhysicianName", alias: "Physician Name", type: "string" }, { name: "Practice", alias: "Practice", type: "string" }, ], objectIdField: 'ObjectID', geometryType: "point", popupTemplate : popUpTemplate, });archivo .html
<div #mapViewNode></div>Creo que su problema es que necesita definir los campos de la capa.
Si está trabajando con gráficos del lado del cliente y FeatureLayer , debe configurar:
source , la colección de gráficos (geometría + atributos)objectIdField , el campo que va a identificar los gráficos, escriba oid (*)fields , el nombre, alias y tipo de cada campo de los atributos gráficosEn tu caso, solo deduciendo los posibles atributos, debería ser algo como esto
const dataFeedLayer = new FeatureLayer({ source: locationData.map((d,i)=>( { geometry: new Point({ longitude: d.longitude, latitude: d.latitude }), attributes: { ObjectID: i, ...d } } )), objectIdField: 'ObjectID', popupTemplate : popUpTemplate, fields: [ { name: "ObjectID", alias: "ID", type: "oid" }, { name: "PhysicianName", alias: "Physician Name", type: "string" }, { name: "PrimarySpecialty", alias: "Primary Specialty", type: "string" }, { name: "url", alias: "Url", type: "string" } ] });Al crear un FeatureLayer a partir de entidades del lado del cliente, esta propiedad debe establecerse en el constructor junto con la propiedad de origen. El campo objectId también debe establecerse en esta matriz o en la propiedad objectIdField.