在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 有趣而诡异的数组
Apr 06 Javascript
jquery中输入验证中一个不错的效果
Aug 21 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
Aug 09 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
Feb 18 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
JS面向对象的程序设计相关知识小结
May 26 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
Mar 13 Javascript
jQuery实现弹出层效果
Dec 10 jQuery
react组件基本用法示例小结
Apr 27 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数组循环操作详细介绍 附实例代码
2013/02/03 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
python:socket传输大文件示例
2017/01/18 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python实现动态创建类的方法分析
2019/06/25 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
基于python实现从尾到头打印链表
2019/11/02 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
英语道歉信范文
2014/01/09 职场文书
高中打架检讨书
2014/02/13 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
合同审查法律意见书
2015/06/04 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
mysql幻读详解实例以及解决办法
2022/06/16 MySQL