我使用的是 Esri Javascript API 4.5
当地图加载时,我从外部源获取点坐标,然后使用Graphic类将其绘制在地图上并PopupTemplate为该图形分配一个。
图形已成功绘制在地图上。但是为了查看弹出模板,我需要单击图形。
有没有办法在将图形添加到地图时触发图形的单击事件,以便自动显示弹出模板?
require([
"esri/PopupTemplate",
"esri/Graphic",
.
.
.
.
"dojo/domReady!"
],
function (
PopupTemplate, Graphic, ....) {
var point = {
type: "point",
x: <some x>,
y: <some y>
};
var symbol = {
type: "picture-marker",
url: "/euf/assets/nl/images/red-pin.png",
width: "30px",
height: "30px"
};
var template = new PopupTemplate({
title: "New Title",
content: "New Content"
});
var graphic = new Graphic({
geometry: point,
symbol: symbol,
popupTemplate: template
}); …Run Code Online (Sandbox Code Playgroud) 我有多边形几何图形,并使用 a 以 3D 形式将它们可视化ExtrudeSymbol3DLayer,如 SDK文档和示例中所述:
var symbol = {
type: "polygon-3d", // autocasts as new PolygonSymbol3D()
symbolLayers: [{
type: "extrude", // autocasts as new ExtrudeSymbol3DLayer()
size: 5, // 5 meters in height
material: { color: "red" }
}]
};
Run Code Online (Sandbox Code Playgroud)
有什么办法可以将这些 3D 挤压件堆叠在一起吗?例如,如果我有纽约市的几何图形,我想用一种颜色从底部拉伸到大约 5m,用一种颜色拉伸 5m 到 10m,等等。有点像制作堆积条形图,但是以更多地理方式。任何意见将不胜感激!
我是ArcGIS的新手.
我想直接在地图上画一些点和一些文字.
类似下面的东西.但它只是显示地图而没有画任何东西.
有人可以帮我解决这个问题吗?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Draw point and text</title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.1/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis?v=3.1"></script>
<script type="text/javascript">
dojo.require("esri.map");
dojo.require("esri.layers.agsdynamic");
var map;
var layer;
var mapUrl;
var defaultSymbol;
function Init()
{
map = new esri.Map("mapDiv");
mapUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer";
//mapUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer";
layer = new esri.layers.ArcGISDynamicMapServiceLayer(mapUrl);
map.addLayer(layer);
defaultSymbol = new esri.symbol.SimpleMarkerSymbol(); // point
defaultSymbol.setColor(new dojo.Color([255, 0, 0]));
addPoint(10, 10);
addText(10, 20, "Text");
}
function addPoint(x, y)
{
var pt = new esri.geometry.Point(x, y, map.spatialReference); …Run Code Online (Sandbox Code Playgroud) 我有一个页面在第一次加载页面时使用ArcGIS Javascript,页面上的地图加载就好了.我有一个下拉框,控制在地图上显示的内容和附加到该下拉框的ajax事件处理程序,当在该下拉框功能中选择了其他选项时
function ajaxOnComplete() { }
Run Code Online (Sandbox Code Playgroud)
被叫.我在该函数中如何要求ArcGIS Javascript重新加载其静态地图?
我想将我的数据框的一些列保存为特定的格式(JavaScript格式).我试图从rjson包中使用toJSON(),但这样做不起作用.
我的结果应该是这样的:http://leaflet.github.io/Leaflet.markercluster/example/realworld.388.js
请帮助,并提前感谢.
I am using the ArcGIS JavaScript API 4.0 in order to display manholes for a given area. I am using our GIS Service to generate a feature layer. However, all the associated photos for that manhole has to be queried independently. My thought was to find an event handler for when the pop up opens and then somehow query the database for those photos and dynamically place the links in the popup template object. Here are the problems:
我觉得这里有一些非常简单的东西.我已经得到了我建立了一个使用ESRI的ArcGIS的API的一类,但是当我导入从类型定义arcgis-js-api的d.ts文件,我得到的打字稿错误"无法使用'新’与它的类型没有一个电话或一封表达构建签名."
例如:
import * as IMap from 'esri/Map';
export class Foo {
bar: (Map: IMap) {
const map = new Map(); // <-- error here
}
}
Run Code Online (Sandbox Code Playgroud)
d.ts文件中的相关摘录:
declare namespace __esri {
/* snip */
interface Map extends Accessor, LayersMixin {
allLayers: Collection;
basemap: Basemap;
ground: Ground;
}
interface MapConstructor {
new(properties?: MapProperties): Map;
}
export const Map: MapConstructor;
/* snip */
}
declare module "esri/Map" {
import Map = __esri.Map;
export = Map;
} …Run Code Online (Sandbox Code Playgroud) 我是ESRI的JavaSCript API的新手,它的易用性和速度给我留下了深刻的印象.作为交互式数据门户的一部分,我让用户输入经度和经度作为十进制度作为空间查询的一部分来返回州,县和FIP.这部分工作得很好,但作为一个附加功能,我想在现有地图上绘制一个点图形,显示输入的坐标位置(DONE),然后以一定的合理比例将中心和缩放到所述点.
centerAndZoom方法是这里的逻辑选择,但它似乎不起作用.我的感觉是地图需要刷新,但我似乎无法想出这个.
我敢肯定我在这里缺少一些基本的东西; 在此先感谢您的时间!
function DrawPointAndZoom() {
// Get currently entered lat/long.
var lat = $('#SiteLatitude').attr('value');
var long = $('#SiteLongitude').attr('value');
var latLongPoint = new esri.geometry.Point(long, lat, new esri.SpatialReference({ wkid: 4326 }));
//Draw point
var symbol = new esri.symbol.SimpleMarkerSymbol().setSize(8).setColor(new dojo.Color([255, 0, 0]));
var graphic = new esri.Graphic(latLongPoint, symbol);
var infoTemplate1 = new esri.InfoTemplate();
infoTemplate1.setTitle("point1");
infoTemplate1.setContent("test point 1");
graphic.setInfoTemplate(infoTemplate1);
map.graphics.add(graphic);
map.centerAndZoom(latLongPoint, 15);
}
Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试使用ArcGis Api For Javascript将较长的经度值转换为X,Y
var i = esri.geometry.lngLatToXY(3.13, 36.742)
console.log(i); //returns Array [ 348541.32567373366, 4403205.668961807 ]
Run Code Online (Sandbox Code Playgroud)
转换在什么系统上进行?有没有指定投影系统的方法?
注意:转换是从十进制度到米
我遵循了这个:https : //developers.arcgis.com/javascript/3/jsapi/esri.geometry.webmercatorutils-amd.html
我目前正在寻找一种在项目中使用模块加载器RequireJS和ArcGIS JS API的方法。根据文档,可以加载ArcGIS JS API的模块,如以下代码片段所示:
require(["esri/config", "esri/Map", "esri/views/MapView"], function (
esriConfig,
Map,
MapView
) {
//...
});
Run Code Online (Sandbox Code Playgroud)
问题是,如果我想从ArcGIS JS API加载模块,它实际上调用了RequireJS的Require函数:
但它应该加载 ArcGIS JS API 中定义的 require 函数:
RequireJS 找不到 ArcGIS JS API 的模块,因此在控制台中抛出错误:
我的项目只支持ES5。因此,我无法使用像esri-loader这样的节点库。
有人可以提供代码示例以将ArcGIS Map Service消费到MapBox GL API中吗?谢谢!
基本上,我正在寻找的是,我想学习 Arcgis javascript api。我的电脑上安装了 Arcgis Desktop 10.3 试用版。我听说 javascript 只能在基于 Arcgis Server 的 Web 应用程序中运行。那么有没有可能在 Arcgis Desktop 中运行这个 javascript 代码?如果没有,请向我建议有关如何获得 Arcgis 服务器试用版以练习 javascript api 的想法。
谢谢你。
下面是我的下一个 JS 代码,它显示了一个简单的 ArcGIS 地图,其中包含特定坐标上的点或标记。
谁能告诉我如何在地图上显示点的弹出/信息窗口?例如,我单击任意点,它将在其上打开相应的弹出窗口。
import NavBar from '@/components/NavBar'
import axios from 'axios';
import { useRef, useEffect, useState } from 'react';
import { loadModules } from 'esri-loader';
export default function Home({...props}) {
const [state, setState] = useState('');
const MapElement = useRef(null)
const options = {
url: 'https://js.arcgis.com/4.6/',
css: true
};
useEffect(() => {
var vehicleData = props.data
var map, point_symbol;
loadModules([
"esri/views/MapView",
"esri/WebMap",
"esri/Graphic",
"esri/geometry/Point",
"esri/PopupTemplate",
"esri/layers/FeatureLayer","dojo/domReady!"
],options).then(([ MapView, WebMap, Graphic, Point, PopupTemplate, FeatureLayer]) => {
const webmap = …Run Code Online (Sandbox Code Playgroud) arcgis-js-api ×13
arcgis ×8
javascript ×8
esri ×4
gis ×3
esri-maps ×2
angularjs ×1
jquery ×1
mapbox ×1
mapbox-gl ×1
mapbox-gl-js ×1
next.js ×1
qgis ×1
r ×1
reactjs ×1
requirejs ×1
typescript ×1