admin管理员组文章数量:1319017
I am new to ArcGIS.
I want to directly draw some points and some text on the map.
something like below. but it just show map and draw nothing.
anyone can help me fix this problem?
<!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=".1/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src=".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 = "";
//mapUrl = "";
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);
var graphic = new esri.Graphic(pt, defaultSymbol);
map.graphics.add(graphic);
}
function addText(x, y, text)
{
var pt = new esri.geometry.Point(x, y, map.spatialReference);
//Create font
var font = new esri.symbol.Font();
font.setSize(18);
font.setWeight(esri.symbol.Font[WEIGHT_NORMAL]);
//Create the TextSymbol
var textSymbol = new esri.symbol.TextSymbol();
textSymbol.setText(text);
textSymbol.setColor(new dojo.Color([0, 255, 0]));
textSymbol.setFont(font);
textSymbol.setKerning(true);
var graphic = new esri.Graphic(pt, textSymbol);
map.graphics.add(graphic);
}
dojo.addOnLoad(Init);
</script>
</head>
<body class="tundra">
<div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div>
</body>
</html>
I am new to ArcGIS.
I want to directly draw some points and some text on the map.
something like below. but it just show map and draw nothing.
anyone can help me fix this problem?
<!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./jsapi/arcgis/3.1/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="http://serverapi.arcgisonline./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./ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer";
//mapUrl = "http://sampleserver1.arcgisonline./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);
var graphic = new esri.Graphic(pt, defaultSymbol);
map.graphics.add(graphic);
}
function addText(x, y, text)
{
var pt = new esri.geometry.Point(x, y, map.spatialReference);
//Create font
var font = new esri.symbol.Font();
font.setSize(18);
font.setWeight(esri.symbol.Font[WEIGHT_NORMAL]);
//Create the TextSymbol
var textSymbol = new esri.symbol.TextSymbol();
textSymbol.setText(text);
textSymbol.setColor(new dojo.Color([0, 255, 0]));
textSymbol.setFont(font);
textSymbol.setKerning(true);
var graphic = new esri.Graphic(pt, textSymbol);
map.graphics.add(graphic);
}
dojo.addOnLoad(Init);
</script>
</head>
<body class="tundra">
<div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div>
</body>
</html>
Share
Improve this question
edited Jul 21, 2015 at 18:48
Vikash Pandey
5,4436 gold badges42 silver badges42 bronze badges
asked Oct 19, 2012 at 10:54
RockRock
2051 gold badge4 silver badges14 bronze badges
1
- There are many examples for function ArcGISTiledMapServiceLayer(), also it need oncick() event. But I cannot find one for function ArcGISDynamicMapServiceLayer(). – Rock Commented Oct 21, 2012 at 15:08
2 Answers
Reset to default 5use Tiled Map as base map, then add Dynamic Map layers, change addPoint function: Note: the wkid dependent on your map spatial.
function addPoint(x, y)
{
var point = new esri.geometry.Point(x, y, new esri.SpatialReference({ wkid: 102113 }));
var mp = esri.geometry.geographicToWebMercator(point);
point = new esri.geometry.Point({ "x": mp.x, "y": mp.y, "spatialReference": { "wkid": 102113} });
var graphic = new esri.Graphic(point, defaultSymbol);
map.graphics.add(graphic);
}
There's nothing wrong with your graphics code.
I tried to run your code as-is, but the map.graphics object was null - I couldn't load that sample layer from ESRI. I replaced your line:
map.addLayer(layer)
with
map.addLayer(new esri.layers.OpenStreetMapLayer());
just to get some base data up, and I got a red dot and some green text somewhere off the coast of Africa. It looks like the dynamic layer isn't creating a graphics object...?
本文标签: How to directly draw points and text with ArcGIS JavaScript APIStack Overflow
版权声明:本文标题:How to directly draw points and text with ArcGIS JavaScript API - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742050565a2418043.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论