如何在地图上添加标注

如何在地图上添加标注,第1张

标注地图的方法如下:

一、环境介绍

1,最近在与一家地图厂家做地图对接,对方用的是在ArcGIS地图上做的二次开发,给我的API也是官方的API,我需要在他们地图上实现我们自己公司的一些功能(比如说:添加标记,定位中心等功能),因为环境问题,所以目前只能使用官方在线地图demo实现,下面是我整理的如何实现在ArcGIS在线地图上添加标注

2.地图:ArcGIS官方在线地图,ArcGIS Javascript API版本: 3.9

3.软件截图一(在地图上点击后添加的标注标记,点击标注标记后d出的详细信息):

二、 *** 作步骤

1.下面是我的代码(点击地图就可以添加一个标注标记,点击标注标记就可以显示详细信息):

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8">

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">

<title></title>

<link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css">

<style>

html, body, #map {

height: 100%width: 100%margin: 0padding: 0

}

#controls {

background: #fff

box-shadow: 0 6px 6px -6px #999

color: #444

font-family: sans-serif

height: auto

left: 1em

padding: 1em

position: absolute

top: 1em

width: auto

z-index: 40

}

#controls div {

padding: 0 0 1em 0

}

</style>

<script src="http://js.arcgis.com/3.9/"></script>

<script>

var map, graphicLayer

//标记数组

var allMarkers = []

require([

"esri/map", "esri/geometry/Circle", "esri/symbols/SimpleFillSymbol",

"esri/graphic", "esri/layers/GraphicsLayer",

"dojo/dom", "dojo/dom-attr", "dojo/domReady!"

], function(

Map, Circle, SimpleFillSymbol,

Grahpic, GraphicsLayer,

dom, domAttr

) {

map = new Map("map", {

basemap: "streets",

center: [120.741, 30.39],

slider: false,

zoom: 2

})

//创建图层

graphicLayer = new GraphicsLayer()

//把图层添加到地图上

map.addLayer(graphicLayer)

map.on("click", function(e) {

addMarker(e.mapPoint.x, e.mapPoint.y)

})

map.showZoomSlider()

})

function addMarker(xx, yy) {

//设置标注的经纬度

//方法一

var pt = new esri.geometry.Point(xx, yy, map.spatialReference)

//方法二

// var pt = new esri.geometry.geographicToWebMercator(new esri.geometry.Point({

//"x": 118.0605760000,

//"y": 36.8424320000,

//"spatialReference": { "wkid": 102113 }

//}))

//设置标注显示的图标

//var symbol = new esri.symbol.SimpleMarkerSymbol()

var symbol1 = new esri.symbol.PictureMarkerSymbol("images/iconA_32.png", 25, 25)

//要在模版中显示的参数

var attr = { "address": "山东省淄博市张店区" }

//创建模版

var infoTemplate = new esri.InfoTemplate("标题", "地址:${address}")

//创建图像

var graphic = new esri.Graphic(pt, symbol1, attr, infoTemplate)

//把图像添加到刚才创建的图层上

graphicLayer.add(graphic)

setMapCenter(xx, yy , 1)

}

function setMapCenter(xx, yy , level) {

var point = new esri.geometry.Point(xx, yy, map.spatialReference)

map.centerAndZoom(point, level)

}

//添加标注

function mapAddOverLay(xx, yy, id, labelname) {

var point = new BMap.Point(xx, yy)

var marker = new BMap.Marker(point)

map.addOverlay(marker)//添加标注

allMarkers.push(marker)//记录覆盖物句柄

if (labelname != "") {

var label = new BMap.Label(labelname, { offset: new BMap.Size(20, -10) })

marker.setLabel(label)//添加Label

}

//添加标注回调

addOverlayCallback(marker, xx, yy, id)

}

</script>

</head>

<body>

<div id="map"></div>

<!--<div id="controls">

<div>Click the map.</div>

<input type="checkbox" id="geodesic">

<label for="geodesic">Geodesic?</label>

</div>-->

</body>

</html>

1、首先加载一个点图层。

2、然后,在“内容列表”点图层位置处单击图层下的点。

3、出现修改点图层标记的对话框,ArcGIS为我们准备了许多点的表示方法,可以任意选择。还可以根据需求改变点的颜色和大小。

4、如果都不满足要求,也可以通过“编辑符号”命令来对其进行自主编辑。

5、打开“符号属性编辑器”对话框。

6、根据需求,对话框中目前的内容是“简单标记符号”,根据对话框中的内容对符号进行编辑。

7、当然也可以选择“图片标记符号”,自动d出图片选择对话框,我们选中一个图片点击确定。

8、设置好图片大小,在“符号选择器”对话框中,保存该符号类型。

9、然后适当修改图片大小,就可以发现点已经被标注成功了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11602600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存