我正在编程一个3D地球使用ArcGis应用程序接口的Javascript和添加了一个GeoJSON层。GeoJSON文件包含多个坐标的信息和图像,这些信息和图像通过弹出窗口显示。
当我从我的本地服务器使用图像URL时,如下面的示例代码所示,图像按其应有的方式显示,并且一切正常。但是,我想使用本地路径来显示它们,例如".project/uploadfolder/imagename.jpg“。这是可能的吗?我如何实现它?我不知道该怎么做,因为GeoJSON文件似乎不支持这种格式,而且图像根本不显示。
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "Mount Fuji",
"category": "Volcanoes",
"type": "......",
"location": "......................",
"imageUrl": "http://localhost/Projekt%C3%BCbung/upload/mount%20fuji-4733029_1280.jpg",
"imageCaption": "Mount Fuji",
"imageCopyright": "Image by ... under CC BY-SA2.5",
"imageUrl_2": "http://localhost/Projekt%C3%BCbung/upload/fuji-960266_1920.jpg",
"imageCaption_2": "Mount Fuji",
"imageCopyright_2": "Image by .... under CC BY-SA2.5",
"imageUrl_3": "http://localhost/Projekt%C3%BCbung/upload/mt-fuji-536284_1920.jpg",
"imageCaption_3": "Mount Fuji",
"imageCopyright_3": "Image by ... under CC BY-SA2.5",
"relevantpublications": "Provide link to relevant publications",
"source": "...."
},
"geometry": {
"type": "Point",
"coordinates": [
138.73088836669922,
35.36308599925639
]
}
},发布于 2021-07-06 00:37:48
从GeoJSON的角度来看,这些图像URL只是字符串属性。通过在GeoJSONLayer上配置弹出窗口模板,您可以显示实际的图片。
此示例说明如何为各种媒体元素执行此操作:https://developers.arcgis.com/javascript/latest/sample-code/popup-multipleelements/
对于上面的GeoJSON,下面这样的代码应该可以工作:
var geoJSONLayer = new GeoJSONLayer({ /* ... */ });
var popupTemplate = {
title: "Pictures of {NAME}",
content: [
type: "media", // MediaContentElement
mediaInfos: [{
title: "<b>{imageCaption}</b>",
type: "image",
caption: "{imageCaption}",
value: {
sourceURL: "{imageUrl_2}"
}
}]
]
};
geoJSONLayer.popupTemplate = popupTemplate;您可以在弹出式模板联机文档中找到更多示例:https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html
https://stackoverflow.com/questions/68258869
复制相似问题