marker显示(openlayers+google)

本文详细介绍了如何使用JavaScript实现地图的初始化以及标记的添加过程,包括地图类型选择、地图缩放、地图中心点设定和地图控制组件的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function initMap(type) {
var lon = centerPoint.split(',')[0];
var lat = centerPoint.split(',')[1];
var point = new OpenLayers.LonLat(lon,lat)
.transform(new OpenLayers.Projection("EPSG:4326"),
new OpenLayers.Projection("EPSG:900913"));
map = new OpenLayers.Map('map');
var gmap = new OpenLayers.Layer.Google("街道地形",{numZoomLevels: 20,visibility: false});
var gphy = new OpenLayers.Layer.Google("自然地形",{type: google.maps.MapTypeId.TERRAIN});
var ghyb = new OpenLayers.Layer.Google("混合图层",{type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20});
var gsat = new OpenLayers.Layer.Google("卫星图层",{type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22});
map.addLayers([gmap, gphy, ghyb, gsat]);
map.setCenter(point, zoom);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition({element:$('location')}));
  map.addControl(new OpenLayers.Control.PanZoomBar());
  map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false}));
  map.addControl(new OpenLayers.Control.PanZoom());
  if(type=='manager'){
  map.div.oncontextmenu=function(){return false;}
map.events.register("contextmenu", null, addMarker);
}
markers=new OpenLayers.Layer.Markers("标注");
map.addLayer(markers);
}


function initMarker(point,n,type){
var size=new OpenLayers.Size(20,30);
var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};
var icon=new OpenLayers.Icon(url,size,null,calculateOffset);
marker=new OpenLayers.Marker(point,icon);
var feature=new OpenLayers.Feature(markers,point);
feature.popupClass=OpenLayers.Class(OpenLayers.Popup.AnchoredBubble,{autoSize:true});
var markerMove=function (e) {
feature.data.popupContentHTML="testMarkerMove";
feature.data.overflow="auto";
popup=feature.createPopup(false);
map.addPopup(popup);
OpenLayers.Event.stop(e);
}
var markerClick=function(e){
var feature2=new OpenLayers.Feature(markers,point);feature2.popupClass=OpenLayers.Class(OpenLayers.Popup.AnchoredBubble,{autoSize:true});
feature2.data.popupContentHTML="testMarkerClick";
feature2.data.overflow="auto";
popup2=feature2.createPopup(true);
map.addPopup(popup2);
map.removePopup(popup);
OpenLayers.Event.stop(e);
};
marker.events.register("mousemove", feature, markerMove);
marker.events.register("mouseout", feature, function markerOut(){map.removePopup(popup);});
marker.events.register("mousedown", null, markerClick);
markers.addMarker(marker);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值