把地图挂在谷歌地球换图层怎么弄

把地图挂在谷歌地球换图层怎么弄,第1张

1、首先在右键菜单中选择“图层属性\面属性”可以显示属性设置对话框。

2、其次在属性修改对话框中,用户可以根据实际需要对边线颜色、边线不透明度等。

3、最后设置换图层即可。

首先,需要在奥维地图上打开所需的矢量图层和影像图层。然后,在奥维地图中添加谷歌地图的图层。可以使用WMS服务添加谷歌地图的图层。WMS服务是一种WebMapService,可以通过互联网提供地图数据。在奥维地图中,用户可以通过添加WMS图层,将谷歌地图的WMS服务提供地址添加进去,就能够叠加谷歌地图和影像图层了。添加WMS服务需要知道谷歌地图的WMS服务提供地址,可以在谷歌地图官网上查询到相关信息。添加完成后,就可以进行影像图和谷歌地图的叠加显示了。

先回答后一个问题,好像现在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

}


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

原文地址: https://outofmemory.cn/bake/11820352.html

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

发表评论

登录后才能评论

评论列表(0条)

保存