Google map 给图元添加文字提示

问题描述:我在Googlemap上自己添加一个marker或者线之内的比如添加了一个marker是在南京中的一个酒店,这个标识的左边或者右边或者上面或者下面添加一个文字提... 问题描述:我在Google map上自己添加一个marker或者线之内的
比如添加了一个marker是在南京中的一个酒店,
这个标识的左边或者右边或者上面或者下面 添加一个文字提示'xx酒店'

各位大侠看下 我要的效果不是你们讲的 -。- 可以不可以在设置标识的时候直接就能设置文字提示
展开
 我来答
SkyerTu
推荐于2016-08-16 · TA获得超过1822个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:1187万
展开全部
由于google已经正式推出V3版本替代了原来的V2,所以就以V3来回答你的问题。

可以用overlayView来实现,如:
NameOverlay.prototype = new google.maps.OverlayView(); // 扩展OverlayView

function initialize() {
var mapCenter = new google.maps.LatLng(39.917, 116.397);
var mapOptions = {
zoom: 14,
center: mapCenter,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
// 显示地图

var marker1LatLng = new google.maps.LatLng(39.927, 116.387);
var marker1 = new google.maps.Marker({
position: marker1LatLng, map: map, title:"北海"
});

// 定义一个NameOverlay,显示在指定位置
var name1View = new NameOverlay(marker1LatLng, "北海", map);

var marker2LatLng = new google.maps.LatLng(39.937, 116.387);
var marker2 = new google.maps.Marker({
position: marker2LatLng, map: map, title:"北师大"
});

var name2View = new NameOverlay(marker2LatLng, "北师大", map);

}

// NameOverlay定义
function NameOverlay(point, name, map) {

// 初始化参数:坐标、文字、地图
this.point_ = point;
this.name_ = name;
this.map_ = map;

// 到onAdd时才需要创建div
this.div_ = null;

// 加入map
this.setMap(map);
}

NameOverlay.prototype.onAdd = function() {

// 创建一个div,其中包含了当前文字
var div = document.createElement('DIV');
div.style.borderStyle = "none";
div.style.borderWidth = "0px";
div.style.position = "absolute";

var span = document.createElement("span");
var text = document.createTextNode(this.name_);
span.appendChild(text);
div.appendChild(span);

// Set the overlay's div_ property to this DIV
this.div_ = div;

// We add an overlay to a map via one of the map's panes.
// We'll add this overlay to the overlayImage pane.
var panes = this.getPanes();
panes.overlayImage.appendChild(div);
}

NameOverlay.prototype.draw = function() {

// 利用projection获得当前视图的坐标
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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91f49c4
2010-09-30 · TA获得超过1176个赞
知道小有建树答主
回答量:1683
采纳率:0%
帮助的人:673万
展开全部
做到标记上直接加载标记,已经讲的很清楚了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaogangcoolba
2010-09-29 · 超过35用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:88.8万
展开全部
把文字提示'xx酒店'做到标记上直接加载标记就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式