在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 相关文章推荐
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
23个Javascript弹出窗口特效整理
Feb 25 Javascript
基于JQuery实现异步刷新的代码(转载)
Mar 29 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
浅析JS获取url中的参数实例代码
Jun 14 Javascript
jQuery源码分析之sizzle选择器详解
Feb 13 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
Feb 27 Javascript
微信小程序如何获取群聊的openGid以及名称详解
Jul 17 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
Python如何为图片添加水印
2016/11/25 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python生成数字图片代码分享
2017/10/31 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
python异常处理和日志处理方式
2019/12/24 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
大学生的自我鉴定范文
2014/01/21 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
教师工作总结范文2014
2014/11/10 职场文书
七年级话题作文之执着
2019/11/19 职场文书
Python基本知识点总结
2022/04/07 Python