如何向Map中添加数据

如何向Map中添加数据,第1张

向Map中添加数据的步骤如下:

1.首先使用insert方式插入三组数据到map容器中,然后遍历打印容器中存放的数据。

2.从输出的结果看,三组数据成功存放到map容器。

3.接下来仍然使用insert方式,但是插入的是value_type的数据。

4.从输出结果看,采用插入value_type数据显示现象与前一种方式是相同。这样就解决了向Map中添加数据的问题了。

先回答后一个问题,好像现在LatLng不再提供distanceFrom方法了。

不过这个可以自己用公式算出来:

d=111.12cos{1/[sinΦAsinΦB十cosΦAcosΦBcos(λB—λA)]}

其中A点经度,纬度分别为λA和ΦA,B点的经度、纬度分别为λB和ΦB,d为距离。

前一个问题:

根据文档,要创建自定义叠加层,请执行以下 *** 作:

将自定义对象的 prototype 设置为 google.maps.OverlayView() 的新实例。这可以有效地实现叠加层类的“子类化”。

为自定义叠加层创建构造函数,并将该构造函数中的所有初始化参数都设置为自定义属性。

在原型中实现 onAdd() 方法,以将叠加层附加到地图上。当地图准备好附加叠加层后,系统将会调用 OverlayView.onAdd()。

在原型中实现 draw() 方法,以处理对象的视觉显示。同样,在对象首次显示后,系统将会调用 OverlayView.draw()。

您还应当实现 onRemove() 方法,以清理在叠加层中添加的所有元素。

具体例子(我写的,加了点注释):

NameOverlay.prototype = new google.maps.OverlayView()// 扩展OverlayView

function initialize() {

...

var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions)

var nameView = new NameOverlay(point, name, map) // 新建一个NameOverlay图层并加入当前map,同时传入参数point与name。

}

function NameOverlay(point, name, map) {

// 初始化,记下所有参数(point, name, map)

this.point_ = point

this.name_ = name

this.map_ = map

this.div_ = null// 定义一个div,在onAdd中将插入当前页面中。

this.setMap(map)// 这里估计与原来的addOverlay类似

}

NameOverlay.prototype.onAdd = function() {

// 创建图层的DIV

var div = document.createElement('DIV')

div.style.borderStyle = "none"

div.style.borderWidth = "0px"

div.style.position = "absolute"

// 这里是真正的内容,例子中仅仅设置一个span元素,显示name文字

var text = document.createElement("span")

text.nodeValue = name_

div.appendChild(text)

this.div_ = div

// 加到当前map中

var panes = this.getPanes()

panes.overlayImage.appendChild(div)

}

NameOverlay.prototype.draw = function() {

// 用projection将经纬度换算为xy坐标

var overlayProjection = this.getProjection()

var center = overlayProjection.fromLatLngToDivPixel(this.point_)

// 设置图层的大小与位置

var div = this.div_

div.style.left = center.x + 'px'

div.style.top = center.y + 'px'

div.style.width = '100px'

div.style.height = '10px'

}

NameOverlay.prototype.onRemove = function() {

this.div_.parentNode.removeChild(this.div_)

this.div_ = null

}

1、在对应的JavaScript文件中,定义一个Map数据结构变量m,并分别打印值和类型,如下图所示。

2、保存代码并运行,结果发现Map {}以及对象类型(Map是一种对象),如下图所示。

3、接着调用Map数据结构中的set方法,添加5个元素,其中有一个的key值重复了,如下图所示。

4、保存代码并运行,查看控制台打印结果,发现key-value值,如下图所示。

5、使用get()方法获取单个元素,传入的参数是key值。

6、最后保存代码并运行,可以查看到Map数据结构中的value值。


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

原文地址:https://54852.com/bake/11643331.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存