zoukankan      html  css  js  c++  java
  • google API 点连线

    这个是模拟的数据,用于测试,为了方便学习 弹出框信息都是固定的,以及操作都不是写的循环,实际开发用 setInterval 或者for 以减少冗余。

    <!DOCTYPE html>
    <html>
    <head>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
        <meta charset="utf-8">
        <title>Simple Polylines</title>
        <style>
            html, body, #map-canvas
            {
                height: 100%;
                margin: 0px;
                padding: 0px;
            }
        </style>
        <script src="http://maps.google.com/maps/api/js?v=3.1&sensor=true" type="text/javascript"></script>
        <script>
            var flightPlanCoordinates;
            var map;
            var allMarker = [];
            function initialize() {
                var mapOptions = {
                    zoom: 3,
                    center: new google.maps.LatLng(0, -180),
                    mapTypeId: google.maps.MapTypeId.TERRAIN
                };
    
                map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    
                flightPlanCoordinates = [
                 new google.maps.LatLng(37.772323, -122.214897),
                 new google.maps.LatLng(21.291982, -157.821856),
                 new google.maps.LatLng(-18.142599, 178.431),
                 new google.maps.LatLng(-27.46758, 153.027892)
                 ];
    
                var flightPath = new google.maps.Polyline({
                    path: flightPlanCoordinates,
                    strokeColor: "#00FF33",
                    strokeOpacity: 1,
                    strokeWeight: 6
                });
                flightPath.setMap(map);
            }
    
    
            google.maps.event.addDomListener(window, 'load', initialize);
    
            var html = '<b>鲁B 897HE</b><br />2013-12-22 08:47:11<br />里程:0.00公里<br />纬度:36.10631,经度:120.36730<br />方向:正东,速度:16.00公里/小时<br />&nbsp;&nbsp;';
    
            setTimeout(function () {
                var oPolygon = {};
                oPolygon["1"] = new google.maps.Marker({
                    position: flightPlanCoordinates[0],
                    map: map
                });
                
    
                var infowindow2 = new google.maps.InfoWindow({ content: html });
                google.maps.event.addListener(oPolygon["1"], 'click', function () {
                    infowindow2.open(map, oPolygon["1"]);
                });
                infowindow2.open(map, oPolygon["1"]);
                window.addMarker = oPolygon;
            }, 2000);
    
    
    
            setTimeout(function () {
                var oPolygon = {};
                oPolygon["2"] = new google.maps.Marker({
                    position: flightPlanCoordinates[1],
                    map: map
                });
                
               
                clearMap(flightPlanCoordinates[1]);
                var infowindow2 = new google.maps.InfoWindow({ content: html });
                google.maps.event.addListener(oPolygon["2"], 'click', function () {
                    infowindow2.open(map, oPolygon["2"]);
                });
                infowindow2.open(map, oPolygon["2"]);
                window.addMarker = oPolygon;
            }, 4000);
    
    
            setTimeout(function () {
                var oPolygon = {};
                oPolygon["3"] = new google.maps.Marker({
                    position: flightPlanCoordinates[2],
                    map: map
                });
                clearMap(flightPlanCoordinates[2]);
    
                setView(flightPlanCoordinates[2]);
    
                var infowindow2 = new google.maps.InfoWindow({ content: html });
                google.maps.event.addListener(oPolygon["3"], 'click', function () {
                    infowindow2.open(map, oPolygon["3"]);
                });
                infowindow2.open(map, oPolygon["3"]);
                window.addMarker = oPolygon;
            }, 6000);
    
            setTimeout(function () {
                var oPolygon = {};
                oPolygon["4"] = new google.maps.Marker({
                    position: flightPlanCoordinates[3],
                    map: map
                });
                setView(flightPlanCoordinates[3]);
                clearMap(flightPlanCoordinates[3]);
                var infowindow2 = new google.maps.InfoWindow({ content: html });
                google.maps.event.addListener(oPolygon["4"], 'click', function () {
                    infowindow2.open(map, oPolygon["4"]);
                });
                infowindow2.open(map, oPolygon["4"]);
                window.addMarker = oPolygon;
            }, 8000);
    
            function setView(obj) {
                var LatLngBounds = map.getBounds();
                var isMap = LatLngBounds.contains(obj);
                if (!isMap) {
                    map.panTo(obj);
                }
            }
    
            function clearMap() {
                for (var i in window.addMarker) {
                    window.addMarker[i].setMap(null);
                }
            }
        </script>
    </head>
    <body>
        <div id="map-canvas">
        </div>
    </body>
    </html>

     改进和优化

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Simple Polylines</title>
    <style>
    html, body, #map-canvas
    {
    height: 100%;
    margin: 0px;
    padding: 0px;
    }
    </style>
    <script src="http://maps.google.com/maps/api/js?v=3.1&sensor=true" type="text/javascript"></script>
    <script>
    var flightPlanCoordinates;
    var map;
    var allMarker = [];
    function initialize() {
    var mapOptions = {
    zoom: 3,
    center: new google.maps.LatLng(0, -180),
    mapTypeId: google.maps.MapTypeId.TERRAIN
    };

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

    flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
    ];

    var flightPath = new google.maps.Polyline({
    path: flightPlanCoordinates,
    strokeColor: "#00FF33",
    strokeOpacity: 1,
    strokeWeight: 6
    });
    //flightPath.setMap(map);
    }


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

    var html = '<b>鲁B 897HE</b><br />2013-12-22 08:47:11<br />里程:0.00公里<br />纬度:36.10631,经度:120.36730<br />方向:正东,速度:16.00公里/小时<br />&nbsp;&nbsp;';

    var index = 0;
    var newMarkers = [], lastnewMarker = [], infoMsgList=[];
    var ss = setInterval(function () {
    if (index > flightPlanCoordinates.length - 1) {
    clearInterval(ss);
    return;
    }
    var newMarker = new google.maps.Marker({
    position: flightPlanCoordinates[index],
    map: map
    });
    var infoMsg = new google.maps.InfoWindow({ content: html });
    google.maps.event.addListener(newMarker, 'click', function () {
    infoMsg.open(map, newMarker);
    });
    infoMsg.open(map, newMarker);
    newMarkers.push(newMarker);
    infoMsgList.push(infoMsg);
    if (index > 0) {
    newMarkers[index - 1].setIcon("green_01.gif");
    infoMsgList[index - 1].close();
    }
    index++;
    }, 2000);

    function setView(obj) {
    var LatLngBounds = map.getBounds();
    var isMap = LatLngBounds.contains(obj);
    if (!isMap) {
    map.panTo(obj);
    }
    }

    function clearMap() {
    for (var i in window.addMarker) {
    window.addMarker[i].setMap(null);
    }
    }
    </script>
    </head>
    <body>

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

  • 相关阅读:
    hdu1430 魔板(康拓展开 bfs预处理)
    网络流EdmondsKarp算法模板理解
    poj3020 建信号塔(匈牙利算法 最小覆盖边集)
    bzoj 2465 小球
    bzoj 1822 冷冻波
    bzoj 1040 骑士
    Codeforces Round #460 (Div. 2)
    bzoj 1072 排列perm
    Codeforces Round #459 (Div. 2)
    bzoj 1087 互不侵犯King
  • 原文地址:https://www.cnblogs.com/y112102/p/3486917.html
Copyright © 2011-2022 走看看