JavaScript 谷歌地图demo
来源:互联网 发布:淘宝高仿男鞋店铺 编辑:程序博客网 时间:2024/05/21 18:35
可以实现显示多个点的大头针, 点击显示/切换信息框, 自适应显示地图大小;
官方给的接口地址, 在大陆是不用指望的, 换成了ditu.google.cn; 这里坐标数据写死了, 取数据库数据测试, 有效;
参考官方文档样例写的小demo, 还要继续探索研究啊 : )
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <style> #map { height: 800px; width: 100%; } </style> </head> <body> <h3>My Google Maps Demo</h3> <div id="map"></div> <script src="http://ditu.google.cn/maps/api/js?&key=你的key"></script> <script type="text/javascript" src="./jquery-1.8.2.min.js"></script> <script> //1.获取所有点的坐标 //2.根据坐标确定地图边界,适应边界生成地图 //3.在地图显示坐标大头针marker //4.生成infowindow,绑定点击显示详细信息事件 //保存坐标数组 var poi_arr = new Array(); poi_arr[0] = {lat: 39.010695, lng: 88.151546 }; poi_arr[1] = {lat: 39.008236, lng: 88.145581 }; poi_arr[2] = {lat: 39.014379, lng: 88.137911 }; var marker = [], infowindows = [], brief_info = [], contentString = [], param_lat = [], param_lng = []; function initMap() { //多边形中心点 var bounds2 = new google.maps.LatLngBounds(); var polygonCoords = []; //遍历坐标确定中心和边界 for(var i=0;i<poi_arr.length;i++){ param_lat.push(poi_arr[i].lat); param_lng.push(poi_arr[i].lng); polygonCoords[i] = new google.maps.LatLng(poi_arr[i].lat, poi_arr[i].lng); } for (k = 0; k < polygonCoords.length; k++) { bounds2.extend(polygonCoords[k]); } //获得中心点坐标 var map_center = bounds2.getCenter(); //生成地图 var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: map_center, mapTypeId: 'satellite' }); var bounds = { north: Math.max.apply(Math, param_lat), south: Math.min.apply(Math, param_lat), east: Math.max.apply(Math, param_lng), west: Math.min.apply(Math, param_lng), }; // 适应边界显示地图 map.fitBounds(bounds); //详细信息 var cont_full = '<div id="content">'+ '<p>姓名: 小王</p>'+ '<p>坐标: 52.511467, 13.447179</p>'+ '<p>登录时间: 2017-11-15</p>'+ '<p>状态: 巡检中</p>'+ '<p>任务: 11区供电站巡检</p>'+ '</div>'; //遍历坐标,生成大头针,生成信息 for(var i=0;i<poi_arr.length;++i){ //生成信息框内容 contentString[i] = '<div id="content">'+ '<p>姓名: 小王'+ i +'</p>'+ '</div>'; //生成大头针 marker[i] = new google.maps.Marker({ position: poi_arr[i], map: map }); brief_info[i] = new google.maps.InfoWindow({ content: contentString[i], maxWidth: 200 }); infowindows[i] = new google.maps.InfoWindow({ content: cont_full, maxWidth: 200 }); //显示姓名信息框 brief_info[i].open(map, marker[i]); bind_click(i,marker[i]); } } function bind_click(i,ma){ //遍历所有坐标,绑定点击事件 ma.addListener('click', function() { brief_info[i].close(); infowindows[i].open(map, ma); }); } var start = new google.maps.event.addDomListener(window, 'load', initMap); </script> </body></html>
阅读全文
0 0
- JavaScript 谷歌地图demo
- 谷歌地图 DEMO
- 谷歌地图demo
- 百度地图javascript api之入门demo
- [js]谷歌地图api和百度地图api的demo..
- 使用谷歌地图 Javascript版
- 百度地图简单demo
- android 百度地图Demo
- 百度地图demo
- 百度地图二次开发Demo
- 百度地图定位demo
- 百度地图定位demo
- iOS百度地图 Demo
- 百度地图开发demo
- 百度地图个人demo
- 腾讯地图定位demo
- 百度地图官方Demo
- 百度地图demo
- myeclipse2017CI的SVNE170001错误
- 3D打印技术与应用
- ML--SVM学习小结(一)
- 一起Talk Android吧(第五十二回:Android中的Fragment交互续)
- 【java】--后台实现打印
- JavaScript 谷歌地图demo
- HDU1548A strange lift(BFS)
- C语言实现简易三子棋小游戏
- Ubuntu16.04安装ROS2
- NOIP2017普及组T1成绩
- 我的书单
- 关于指针的小知识
- 隐式Intent
- 基于51单片机的计算器(代码篇)