如何在地图上添加标注

html-css012

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

标注地图的方法如下:

一、环境介绍

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

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

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

二、操作步骤

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、注册登陆,完善个人信息:直接访问http://lbc.baidu.com/注册百度账号,激活并完善个人信息;或通过百度地图主页右上角点击“商户免费标注”完成注册登陆。

2、能查到店铺,可以直接认领:请在地图上方的框中输入您的店铺,如果能够查到您的店铺,请直接认领,认领时需要上传您的证照资质。如果无法查到,请先标注其所在的位置,再进行认领。

3、查不到店铺,先标注,再认领点击“我要标注”,填写商户名称和精确的地址位置,精确到门牌号。点击“标注商户位置”,双击地图,放大地图比例。地图比例越大,标注的准确度越高。需要放到最大层级,即双击鼠标地图不再放大,地图能够清楚显示你所在位置的周边环境为止。参照你周边的地标性建筑,拖拽地图中的红点,标注到你认为最准确的位置,点击确定提交后,在进行认领。

4、提交申请后,需要5-7天的审核期,请耐心等待。

详情请参见网址:http://lbc.baidu.com/static/cms/

打开地图,点击工具箱,选择城市标记。

具体的操作方法如下:

1、打开地图APP。

2、选择地图功能区中的工具箱,选择标记功能。

3、点击弹出的工具箱中的标记标志,选择想要进行标记的地点。

4、标记想要的地点后,输入标记地点的名称并点击保存。

地图标注不仅仅只是一个显示位置。它可以显示我们的店铺信息,产品介绍,营业的时间段,有无停车场,店铺收费方式等等。既避免出现接到客户电话询问找不到店铺的问题,还可以节省我们的人工成本,更有效解决出现的问题。