百度地图和谷歌地图封装插件(一)
作者:秋了秋 发表时间:2016年06月17日
地图是个很强大的插件,据说ajax技术热门就是从地图产生那一刻开始,它给人们带来了极大的方便,很多网站上都少不了地图展示定位,尤其是品牌官网,地图无疑是展示一个企业位置最直观的工具。犹以百度地图和谷歌地图最为出色,先来看看百度地图的使用方法:
html结构:放一个div容器就OK,用css固定宽高,加个搜索框吧~
<input class="city-input"> <div id="qiuye-map"></div>
然后就是js代码了:废话不多说,一切语言尽在代码中
//百度地图
(function(){
//加载百度地图所需的css的api文件
var head = document.getElementsByTagName("head")[0];
var link = document.createElement("link");
link.rel="stylesheet";link.type="text/css"
link.href = "http://api.map.baidu.com/res/11/bmap.css";
head.appendChild(link);
var script = document.createElement("script");
script.src = "http://api.map.baidu.com/getscript?v=1.1&ak=&services=true&t=20130716024058";
head.appendChild(script);
var json={
pointX:114.037313,//坐标x
pointY:22.539607,//坐标y
icoWidth:56,//定位图标宽
icoHeight:56,//定位图标高
infoLeft:27,//定位信息框左偏移
infoTop:56,//定位信息框上偏移
icoURL:"point.png",//定位小图标
icoLeft:0,//定位图标左偏移
icoTop:0,//定位图标上偏移
txt1:"秋叶网络博客",//定位信息,同下
txt2:"广东省深圳市福田区车公庙",
txt3:"QQ:1183238717",
}
function createMap(){
var map = new BMap.Map("qiuye-map");//地图容器,地图要显示在网页的哪个位置
var point = new BMap.Point(json.pointX,json.pointY);
map.centerAndZoom(point,15);//15是初始缩放级别
window.map = map;
}
function setMapEvent(){
map.enableDragging();
map.enableScrollWheelZoom();
map.enableDoubleClickZoom();
map.enableKeyboard();
}
function addMapControl(){
//缩放控件
var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//加缩略图控件
var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});map.addControl(ctrl_ove);
//比例尺控件
var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});map.addControl(ctrl_sca);
}
function createIcon(){
var icon = new BMap.Icon(json.icoURL, new BMap.Size(json.icoWidth,json.icoHeight),
{
imageOffset: new BMap.Size(json.icoLeft,json.icoTop),
infoWindowOffset:new BMap.Size(json.infoLeft,json.infoTop),
offset:new BMap.Size(5,json.icoHeight)
}
)
var marker = new BMap.Marker(new BMap.Point(json.pointX,json.pointY),{icon:icon});
map.addOverlay(marker);
var content = "<table>";
content = content + "<tr><td>"+json.txt1+"</td></tr>";
content = content + "<tr><td>"+json.txt2+"</td></tr>";
content = content + "<tr><td>"+json.txt3+"</td></tr>";
content += "</table>";
var infowindow = new BMap.InfoWindow(content);
marker.addEventListener("click",function(){
this.openInfoWindow(infowindow);
});
}
function initMap(){
createMap();
setMapEvent();
addMapControl();
createIcon();
}
script.onload=function(){
initMap();
}
$(".city-input").keyup(function(e){//表单搜索位置
var e=e||window.event;
if(e.keyCode==13){
var address=$(".city-input").val();
var myGeo = new BMap.Geocoder();
myGeo.getPoint(address, function(point){
if (point) {
map.centerAndZoom(point, 14);
map.addOverlay(new BMap.Marker(point));
}
}, address);
}
});
})()
0
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/447.html