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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)