zoukankan      html  css  js  c++  java
  • Google_Maps_API_V3离线版实现简单标注

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
            <style type="text/css">
            .labels
            {
                color: white;
                font-family:华文行楷;
                font-size: 15px;
                font-weight: bold;
                text-align: left;
                border: 1px solid green;
                white-space: nowrap;
            }
        </style>
        <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
        <script src="Scripts/mapapi.js" type="text/javascript"></script>
        <script src="Scripts/mapLable.js" type="text/javascript"></script>
        <script src="Scripts/infobox.js" type="text/javascript"></script>
        <script type="text/javascript">
    
            //初始化地图信息
            function GMapsMapTypeFactory() { }
            GMapsMapTypeFactory.createMapType = function () {
                //googlemap地图图片地址
                var mapTileUrl = "http://localhost:8090/maptile/googlemaps/roadmap/";
                var getTileUrl = function (coord, zoom) {
                    var numTiles = (1 << zoom);
                    if ((coord.x < 0) || (coord.x >= numTiles) || (coord.y < 0) || (coord.y >= numTiles)) {
                        return null;
                    }
                    return resultUrl = mapTileUrl + zoom + "/" + "m_" + zoom + "_" + coord.x + "_" + coord.y + ".png";
                };
                var imageMapTypeOptions = {
                    "name": "离线",
                    "alt": "Show street map",
                    "tileSize": new google.maps.Size(256, 256),
                    "maxZoom": 19,
                    "minZoom": 5,
                    "getTileUrl": getTileUrl,
                    "isPng": true,
                    "opacity": 1.0
                };
                return new google.maps.ImageMapType(imageMapTypeOptions);
            }
            //声明Map
            var map;
            //声明markerList集合
            var markerList = [];
            //页面加载完后初始化功能
            function initialize() {
                var hWindow = document.documentElement.clientHeight;
                $("#map_canvas").css("height", hWindow);
    
                var wWindow = document.documentElement.clientWidth;
                $("#map_canvas").css("width", wWindow);
                //创建map
                if (map == null) {
                    var myLatlng = new google.maps.LatLng(39.90581882361574, 116.43216133117676);
                    map = new google.maps.Map(document.getElementById("map_canvas"));
                    var gmapsMapTypeId = "localmap_roadmap";
                    map.mapTypes.set(gmapsMapTypeId, GMapsMapTypeFactory.createMapType());
                    map.streetViewControl = false;
                    map.scaleControl = true;
                    map.mapTypeControl = false;
                    map.mapTypeControlOptions = {
                        mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE, gmapsMapTypeId]
                    };
                    map.setMapTypeId(gmapsMapTypeId);
                    map.setCenter(myLatlng);
                    map.setZoom(1);
    
                    google.maps.event.addListener(map, 'click', function (event) {
                        addMarkerByClick(event.latLng);
                    });
    
                    addMarker(39.90581882361574, 126.43216133117676);
                    addMarker(39.90581882361574, 100.43216133117676);
                }
            }
            function addMarkerByClick(location) {
                //            marker = new google.maps.Marker({
                //                position: location,
                //                map: map
                //            });
            }
            function addMarker(y, x) {
                var imageUrl = "images/police128.png";
    
                var marker = new MarkerWithLabel({
                    icon: imageUrl,
                    position: new google.maps.LatLng(y, x),
                    draggable: true,
                    raiseOnDrag: false,
                    map: map,
                    labelContent: "部门:北京市公安局,海淀分局<br />所在地区:北京市海淀区",
                    labelVisible: true,
                    labelAnchor: new google.maps.Point(22, 0),
                    labelClass: "labels", // the CSS class for the label
                    labelStyle: { opacity: 1.0, background: "#008000" }
                });
    
                var boxText = document.createElement("div");
                boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: white; padding: 5px;font-size:12px;";
                boxText.innerHTML = "部门:北京市公安局<br />所在地区:北京市海淀区";
    
                var myOptions = {
                    content: boxText
    			            , disableAutoPan: false
    			            , maxWidth: 0
    			            , pixelOffset: new google.maps.Size(-140, 0)
    			            , zIndex: null
    			            , boxStyle: {
    			                background: "url('tipbox.gif') no-repeat"
    			              , opacity: 0.75
    			              ,  "230px"
    			            }
    			            , closeBoxMargin: "10px 2px 2px 2px"
    			            , closeBoxURL: ""
    			            , infoBoxClearance: new google.maps.Size(1, 1)
    			            , isHidden: false
    			            , pane: "floatPane"
    			            , enableEventPropagation: false
                };
                var infowindow = new InfoBox(myOptions);
                google.maps.event.addListener(marker, "mouseover", function (e) {
                    infowindow.open(map, marker);
                });
    
                google.maps.event.addListener(marker, "mouseout", function (e) {
                    infowindow.close();
                });
    
    
                markerList.push(marker);
            }
    
            function changeMarker() {
                for (var i = 0; i < markerList.length; i++) {
                    //显示Marker的详细信息
                    //alert("图片路径:" + markerList[i].icon + "\r\n" + "纬度:" + markerList[i].position.lat() + "\r\n" + "经度:" + markerList[i].position.lng() + "\r\n" + "标签内容:" + markerList[i].labelContent);
                    //改变经纬度改变其位置
                    //markerList[i].setPosition(new google.maps.LatLng(38.00581882361574, 101.43216133117676));
                    //改变图片
                    markerList[i].setIcon("images/120.png");
                    //修改LabelContetnt
                    markerList[i].labelContent = "车辆定位系统。";
                    //清除 Marker
                    //markerList[i].setMap(null);  
                }
            }
            function hiddenMarker() {
                for (var i = 0; i < markerList.length; i++) {
                    markerList[i].setVisible(false);
                }
            }
            function showMarker() {
                if (markerList) {
                    for (i in markerList) {
                        markerList[i].setVisible(true);
                    }
                }
            }
        </script>
    </head>
    <body onload="initialize()" style="margin: 0px; overflow: hidden;  100%; height: 100%;">
        <form runat="server" style=" 100%; height: 100%; overflow: hidden;">
        <input type="button" value="Add Marker" onclick="addMarker(39.90581882361574, 116.43216133117676);" />
        <input type="button" value="Show Marker" onclick="showMarker();" />
        <input type="button" value="Hidden Marker" onclick="hiddenMarker();" />
        <input type="button" value="Change Marker" onclick="changeMarker();" />
        <div id="map_canvas" style=" 100%; height: 100%;">
        </div>
        </form>
    </body>
    </html>
    

      

  • 相关阅读:
    影响历史进程的三只苹果
    C语言实现的RSA算法程序(使用GMP)
    C++实现的大整数分解Pollard's rho算法程序
    Java实现的大整数分解Pollard's rho算法程序
    素性测试算法
    素性测试AKS算法程序
    C++实现的Miller-Rabin素性测试程序
    为什么天朝互联网的三巨头是BAT
    KMP模式匹配算法程序(Python,C++,C)
    I00014 汉若塔问题的C++程序
  • 原文地址:https://www.cnblogs.com/sunyj/p/2935253.html
Copyright © 2011-2022 走看看