在Google 地图上实现做的标记相连接


Posted in Javascript onJanuary 05, 2015

这里仅仅是将谷歌地图API的使用方法告诉大家,算是抛砖引玉吧,由于某些原因,谷歌已经远离大家了。

<!DOCTYPE html>

<html>

<head>

<title>GeoLocation</title>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no">

<meta charset="utf-8">

<style>

    html, body, #map-canvas {

        margin: 0;

        padding: 0;

        height: 100%;

    }

</style>

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

<script>

    var map;

    var poly;

    function initialize() {

    var myLatlng = new google.maps.LatLng(31.1937077, 121.4158436);

    var locations = [

    ['test1, accuracy: 150m', 31.1937077, 121.4158436, 100],

    ['test2, accuracy: 150m', 31.2937077, 121.4158436, 100],

    ['test3, accuracy: 150m', 31.0937077, 121.2158436, 100],

    ['test4, accuracy: 150m', 31.3937077, 120.4158436, 100],

    ['test5, accuracy: 150m', 31.1637077, 120.4858436, 100],

    ['test6, accuracy: 150m', 31.1037077, 121.5158436, 100]

    ];

    var mapOptions = {

    zoom: 13,

    center: myLatlng,

    mapTypeId: google.maps.MapTypeId.ROADMAP

    };

    map = new google.maps.Map(document.getElementById('map-canvas'),

    mapOptions);

    // 线条设置

    var polyOptions = {

    strokeColor: '#00ff00',    // 颜色

    strokeOpacity: 1.0,    // 透明度

    strokeWeight: 4    // 宽度

    }

    poly = new google.maps.Polyline(polyOptions);

    poly.setMap(map);    // 装载

    /* 循环标出所有坐标 */

    /*for(var i=0; i<locations.length; i++){

    var loc = [];

    loc.push(locations[i][1]);

    loc.push(locations[i][2]);

        var path = poly.getPath();    //获取线条的坐标

        path.push(new google.maps.LatLng(loc[0], loc[1]));    //为线条添加标记坐标

    //生成标记图标

    marker = new google.maps.Marker({

        position: new google.maps.LatLng(loc[0], loc[1]),

        map: map

        // icon: "https://maps.gstatic.com/mapfiles/markers/marker_green.png"

    });

    }*/

    var marker, i, circle;

    var iwarray = [];

    var infoWindow;

    var latlngbounds = new google.maps.LatLngBounds();

    var iconYellow = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/icons/yellow-dot.png");

    for (i = 0; i < locations.length; i++) {

        var loc = [];

        loc.push(locations[i][1]);

        loc.push(locations[i][2]);

            var path = poly.getPath();    //获取线条的坐标

        path.push(new google.maps.LatLng(loc[0], loc[1]));

        var latlng = new google.maps.LatLng(locations[i][1], locations[i][2]);

        latlngbounds.extend(latlng);

    if (locations[i][0].indexOf("[Cached") == 0 || (locations[i][0].indexOf("[Multiple") == 0 && locations[i][0].indexOf("[Cached") >= 0 )) {

            marker = new google.maps.Marker({

                position: latlng,

                map: map,

                icon: iconYellow

            });

            var iw = '<div style="font-size: 12px;word-wrap:break-word;word-break:break-all;"><strong><font color="#FF0000">' + locations[i][0] + '<font></strong><div>';

        } else {

            marker = new google.maps.Marker({

                position: latlng,

                map: map

            });

            var iw = '<div style="font-size: 12px;word-wrap:break-word;word-break:break-all;"><strong><font color="#000000">' + locations[i][0] + '<font></strong><div>';

        }

        iwarray[i] = iw;

        google.maps.event.addListener(marker, 'mouseover', (function(marker,i){

                return function(){

                    infoWindow = new google.maps.InfoWindow({

                        content: iwarray[i],

                        maxWidth: 200,

                        pixelOffset: new google.maps.Size(0, 0)

                    });

                    infoWindow.open(map, marker);

                }

            })(marker,i));

        google.maps.event.addListener(marker, 'mouseout', function() {

            infoWindow.close();

        });

        circle = new google.maps.Circle({

            map: map,

            radius: locations[i][3],

            fillColor: '#0000AA',

            fillOpacity: 0.01,

            strokeWeight: 1,

            strokeColor: '#0000CC',

            strokeOpacity: 0.8

        });

        circle.bindTo('center', marker, 'position');

    }

    map.fitBounds(latlngbounds);

    var listener = google.maps.event.addListenerOnce(map, "idle", function()

        {

        var zoomLevel = parseInt(map.getZoom());

        if (zoomLevel > 13)

            map.setZoom(13);

        });

    }

    google.maps.event.addDomListener(window, 'load', initialize);

</script>

</head>

<body>

    <div id="map-canvas"></div>

</body>

</html>
Javascript 相关文章推荐
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
jQuery实现鼠标可拖动调整表格列宽度
May 26 Javascript
jquery实现文本框的禁用和启用
Dec 07 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 #Javascript
jQuery中attr()方法用法实例
Jan 05 #Javascript
jQuery实现自定义下拉列表
Jan 05 #Javascript
使用javascript实现监控视频播放并打印日志
Jan 05 #Javascript
jQuery圆形统计图开发实例
Jan 04 #Javascript
jQuery中:selected选择器用法实例
Jan 04 #Javascript
jQuery中:checked选择器用法实例
Jan 04 #Javascript
You might like
PHP新手上路(二)
2006/10/09 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
js类 from qq
2006/11/13 Javascript
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
python放大图片和画方格实现算法
2018/03/30 Python
python flask实现分页的示例代码
2018/08/02 Python
python中cPickle类使用方法详解
2018/08/27 Python
浅述python中深浅拷贝原理
2018/09/18 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python实现烟花小程序
2019/01/30 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
django 微信网页授权登陆的实现
2019/07/30 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
集团薪酬管理制度
2014/01/13 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
大班下学期幼儿评语
2014/12/30 职场文书