谷歌地图
来源:互联网 发布:可以编程的手机软件 编辑:程序博客网 时间:2024/05/18 02:00
<script src="../../../js/json2.js" type="text/javascript"></script> <!--google离线api使用的是展示页面的当前路径,配置时只能放在当前文件夹--> <script src="mapfiles/mapapi.js" type="text/javascript"></script>
<script src="../../../js/jquery.js" type="text/javascript"></script>
<!-- 地图展示相关js封装 --> <script type="text/javascript"> //类工厂,返回一个可以 创建实例时自动执行initialize的类型 var MyClass = { create: function() { return function() { this.initialize.apply(this, arguments); } } }; //创建本地地图类型 function LocalMapType(){ this.tileSize = new google.maps.Size(256, 256); this.maxZoom = <%=SupplyResourceMapZoom %>-1; //地图显示最大级别,正常级别-1 this.minZoom = 3; //地图显示最小级别 this.name = "电子地图"; this.alt = "显示电子地图数据"; this.getTile = function(coord, zoom, ownerDocument) { var curSize = Math.pow(2,zoom); var y = tlen(5,coord.y% curSize); var x = tlen(5,coord.x% curSize); var vzoom = tlen(1,zoom+1); //需要配置在配置文件中 var mapPicDir = '<%=SupplyResourceMapURL %>'; var strURL = mapPicDir+"L" + vzoom + "/"+(coord.y+1)+"/" + y + "-" + x + ".jpg"; var img = ownerDocument.createElement("img"); img.style.width = this.tileSize.width + "px"; img.style.height = this.tileSize.height + "px"; img.src = strURL; return img; //不足位补0 function tlen(len, mystr){ mystr = String(mystr); var num = len - mystr.length; for (var i = 0; i <= num; i++) { mystr = "0" + mystr; } return mystr; } }; } var GoogleMap=MyClass.create(); GoogleMap.prototype={ //类构造函数 //domId 窗口id属性 //centerX 中心点纬度 //centerY 中心点经度 initialize:function(domId,centerX,centerY,zoom){ //定义地图的中心点 var myLatlng = new google.maps.LatLng(centerX, centerY); var localMapType=new LocalMapType(); var mapOptions = { zoom: zoom, center: myLatlng, mapTypeControlOptions: { mapTypeIds: [ /*google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN,*/ 'localMap' ] //定义地图类型 }, panControl: true, zoomControl: true, mapTypeControl: true, scaleControl: true, streetViewControl: true, overviewMapControl: true }; //创建map实例 this.map = new google.maps.Map(document.getElementById(domId), mapOptions); this.map.mapTypes.set('localMap', localMapType); //绑定本地地图类型 this.map.setMapTypeId('localMap'); //指定显示本地地图 this.map.setOptions({draggable: true}); this.infoWindowArray=[]; this.LatLngArray=[]; }, //添加标注(地图上创建一个点,点击后弹出窗口) //x 纬度 //y 经度 //htmlCon 窗口显示的html内容 createMarker:function(x,y,htmlCon,title){ var infowindow = new google.maps.InfoWindow({ content: htmlCon }); //defined icons var image = 'images/user.png'; x=parseFloat(x); y=parseFloat(y); //是否存在相同的坐标 while(this.isExistLatLng(x,y)){ x=x+0.01; y=y+0.01; } //创建一个点 var myLatLng = new google.maps.LatLng(x,y); var marker = new google.maps.Marker({ position: myLatLng, map: this.map, title: title, icon: image }); this.LatLngArray.push([x,y]); this.infoWindowArray.push(infowindow); var mapObj=this; //给点关联点击窗口 google.maps.event.addListener(marker, 'click', function() { mapObj.colseAllInfoWindow() infowindow.open(this.map,marker); }); }, createPoint:function(x,y){ //创建一个跳动的点 var parliament = new google.maps.LatLng(x,y); var marker = new google.maps.Marker({ map:this.map, draggable:false, animation: google.maps.Animation.DROP, position: parliament }); google.maps.event.addListener(marker, 'click', toggleBounce); function toggleBounce() { if (marker.getAnimation() != null) { marker.setAnimation(null); } else { marker.setAnimation(google.maps.Animation.BOUNCE); } } }, colseAllInfoWindow:function(){ //关闭所有的窗口 for(var i=0;i<this.infoWindowArray.length;i++){ this.infoWindowArray[i].close(); } }, isExistLatLng:function(lat,lng){ for(var i=0;i<this.LatLngArray.length;i++){ if(this.LatLngArray[i][0]==lat&&this.LatLngArray[i][1]==lng){ return true; } } return false; } }; </script>
//地图实体 var mapEty=null; //初始化地图 function InitialMap(data){ InitialMapHeight(); var log=data.Log; var lat=data.Lat; var zoom=data.Zoom; if(log==""){ log="113.140"; lat="23.080"; zoom="5"; } mapEty=new GoogleMap("map_canvas",parseFloat(lat),parseFloat(log),parseFloat(zoom)); //mapResults=data; var mapResult=data.rows; for(var i=0;i<mapResult.length;i++){ var htmlStr=SupplyMsg(mapResult[i]); mapEty.createMarker(mapResult[i].LAT,mapResult[i].LOG,htmlStr,mapResult[i].ITEMNAME); } } //点击显示信息 function SupplyMsg(obj){ var htmlStr="材料名称:"+obj.ITEMNAME+"<br />"; htmlStr+="资源名称:"+obj.RESOURCENAME+"<br />"; htmlStr+="联系人:"+obj.CONTACTPERSON+"<br />"; htmlStr+="联系电话:"+obj.TEL+"<br />"; htmlStr+="邮箱:"+obj.MAIL+"<br />"; return htmlStr; } //ajax获取地图信息 function ajaxGetMapInfo(){ var submitData = getFormSubmitValue($(".tb_input")); if (objPropertyCount(submitData) < 1) return; $.post("TechResourceToQuery.ashx",{ action:"QueryMapData",paraData:JSON.stringify(submitData) },function(data){ if(data){ var json=JSON.parse(data); InitialMap(json); } }); } function InitialMapHeight(){ var windowHeight=$(window).height(); if(windowHeight<300){ windowHeight=300; }else{ windowHeight=windowHeight-4; } $("#map_canvas").css("height",windowHeight+"px"); }
0 0
- IOS 地图导航(其中包括苹果地图、百度地图、高德地图、谷歌地图)
- 谷歌地图、百度地图偏移解决方法
- 谷歌地图发布海底街景地图
- 谷歌地图的离线地图下载
- 调用谷歌地图js显示地图
- 谷歌地图高清卫星地图
- 谷歌地图开发:地图对象操作
- 谷歌地图高清地图功能分析
- 谷歌卫星地图
- 谷歌地图API
- 谷歌地图API
- 谷歌地图API
- googleMap 谷歌地图
- js谷歌地图
- 谷歌地图
- 谷歌地图
- 关于谷歌地图
- 谷歌地图坐标
- 【原创】【OpenJudge】8782:乘积最大
- binutils编译
- Spark算子:RDD基本转换操作(1)–map、flagMap、distinct
- poj 2109 Power of Cryptography
- [转]Python使用struct处理二进制(pack和unpack用法)
- 谷歌地图
- 局域网打印机共享无法改变最大连接数量的时候可以使用下边的bat来不断刷新电脑连接-核心指令net session
- 大端和小端
- ReactNative小鹏学习1 环境搭建
- Android Socket 封装,支持 TCP/UDP 客户端和服务端,支持自定义粘包处理、验证处理、解析处理。
- logback logback.xml常用配置详解(三) <filter>
- Android TextView中显示图片的4种方式
- Spark算子:RDD行动Action操作(7)–saveAsNewAPIHadoopFile、saveAsNewAPIHadoopDataset
- 纯红——五色配色篇