zoukankan      html  css  js  c++  java
  • google 定位 标记 地址解码 逆解码

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link id="page_favicon" href="favicon.ico" rel="icon" type="image/x-icon" />
    <title>地图</title>
    <?php include_once MvcReg::$_moduleName . '/views/layout/head.php'; ?>
    </head>
    
    <body class="bg_hs" style="padding-bottom: 0px">
    <div class="head">
        <div class="content">
            <h3>地图</h3>
        </div>
    </div>
    
    <div class="content">
        <div class="top_search">
            <a href="?md=index/search/search&search=me">依名称搜索</a>
            <a href="?md=index/search/regionSearch&search=region">依地图搜索</a>
        </div>
        <div class="search" style="display:none;">
            <form action="#" onsubmit="return false;" method="get" >
                <div class="box">            
                    <span>机器:</span>
                    <select id="machine" >
                      <option value="">请选择</option>
                      <option value="1">AAA</option>
                      <option value="2">BBB</option>
                    </select>            
                </div>
                <div class="box box2">
                    <input id="query" name="query" class="text" type="search" placeholder="输入关键字"/>
                    <input id="queryBtn" class="bnt" type="button"   />
                </div> 
            </form>       
        </div>
    </div>
        
    <div class="pop_bg" id="pop_wjmm">
        <div class="pop_bg_com">
            <div class="com" id="com"></div>
            <div class="bnt" id="bnt">
                
            </div>
        </div>
    </div>
    
    <div class="content map_bg" >
        <div id="map_pop" class="map_pop"></div>
        <div id="map_canvas" style="400px;height:650px"></div>
    </div>
    <?php include_once MvcReg::$_moduleName . '/views/layout/foot.php'; ?>
    <script src="https://maps.googleapis.com/maps/api/js?key=key"></script>
    <script>
        var map;
        var markers = [];
        var real_markers = [];
        var build_data = [];
        var real_data = [];
        var infowindow = new google.maps.InfoWindow();
        var real_infowindow = new google.maps.InfoWindow();
        var has_query = true;
        var moveing=false;
        var is_move=true;
    
        var $me='<?php echo $me;?>';
        var $hpID='<?php echo $hpid;?>';
    
        var $machine='<?php echo $machine;?>';
        var $region='<?php echo $region;?>';
        var $county='<?php echo $county;?>';
        var $county_id='<?php echo $county_id;?>';
    
        // 初始化
        function initMap(lat,lng) {
            // var lat = 25.041990;
            // var lng = 121.517215;
           // console.log(build_data)
            if (build_data.length > 0) {
               lat = build_data[0].latitude;
               lng = build_data[0].longitude;
                console.log(5566);
                console.log(lat);
                console.log(lng);
               //  let lat = 24.9954304
               // let lng = 121.4578688
                if($me && $hpID){
                    map = new google.maps.Map(document.getElementById('map_canvas'), {
                        maxZoom: 16,
                        minZoom: 14,
                        zoom: 8,  //縮放比
                        Center: {lat: parseFloat(lat), lng: parseFloat(lng)},    
                        mapTypeId: 'terrain'
                    });
                }
    
            // Adds a marker at the center of the map.
                addMarker(build_data); //地點
            }
    
        }
    
        // Adds a marker to the map and push to the array.
        function addMarker(data) {
            for (var i = 0; i < data.length; i++) {
                console.log(data[i]);
    
                if (parseFloat(data[i].latitude) > 0 && parseFloat(data[i].longitude) > 0) {
                    var location = {lat: parseFloat(data[i].latitude), lng: parseFloat(data[i].longitude)}; // 坐标对象
                    var iconUrl;
                    var content = '';
                    var qubie = data[i].qubie;
    
                    var address = "";
                    content = data[i].place + "<br>";
                    // 创建坐标点
                    var marker = new google.maps.Marker({
                        position: location,
                        map: map,
                        title: data[i].title,
                        // icon: iconUrl
                    });
                    makeInfoWindowEvent(map, infowindow, content, marker, i, "build", address);
                    markers[i] = marker;
                }
            }
    
        }
    
        function makeInfoWindowEvent(map, infowindow, contentString, marker, num, type, address) {
    
            google.maps.event.addListener(marker, 'click', function () {
                showPopup(num)
            });
        }
    
        function showPopup(num){
            var obj= build_data[num];
            var html='<div class="title">'+obj.place+'<span class="map_gb">×</span></div>
    ' +
                '        <div class="box">
    ' +
                '        	<ul>
    ' +
                '                <li><b>· 选择设备</b>'+obj.machine+'</li>
    ' ;
            if (obj.other) {
                html +=
                    '                <li><b>· 其他</b>' + obj.other + '</li>
    ';
            }
            html+=
                '                <li><b>· 服务时间</b>'+obj.service+'</li>
    ';
            if (obj.business) {
                html +=
                    '                <li><b>· 备注</b>' + obj.business + '</li>
    '
            }
            html+=
                '            </ul>
    ' +
                '            <p>lastest update於'+obj.updatedt+',电话确认。</p>
    ' +
                '        </div>
    ' +
                '        <div class="bottom">
    ' +
                '        	<a class="bnt1" href="Tel://'+obj.telephone+'">'+obj.telephone+'</a>
    ' +
                '            <a class="bnt2" href="https://www.google.com.tw/maps/place/'+obj.county+obj.area+obj.address+'">'+obj.county+obj.area+obj.address+'</a>
    ' +
                '            <a class="bnt3" href="javascript:;" onclick="addPlace('+obj.id+')">加入我们</a>
    ' +
                '            <p>这里是备注哦!</p>
    ' +
                '        </div>';
    
            $("#map_pop").html(html);
            $(".map_pop").addClass("hov");
            $(".map_gb").click(function(){
                $(".map_pop").removeClass("hov");
            });
        }
        function telephone(tel){
            $("#pop_wjmm").show();
            $('#com').html('确定'+tel+'');
    
            var a = '<a class="" href="Tel://'+tel+'">确定</a>'
                a +=  '<a class="zgzg_bnt_qx" href="javascript:void(0)">取消</a>';
            $('#bnt').html(a);
    
            $(".zgzg_bnt_qx").click(function(){
                $("#pop_wjmm").hide();
            })
    
        }
    
        function query(t,lat,lng) {
            markers = [];
            var machine=$("#machine").val();
            var query=$("#query").val();
            $(".map_pop").removeClass("hov");
            let data = '';
            if(t == 'location'){
                 data = { lat: lat,lng: lng,};
                 // data = { lat:24.9954304, lng:121.4578688};
            }else if(t == 'me'){
                data = { me: $me,hpid: $hpID};
            }else if(t == 'region'){
                data = {county_id: lng,machine:$machine};
            }else{
                 data = { machine: machine,query: query,};
            }
    
            $.ajax({
                url: "?md=index&cl=map&at=search",
                type: "post",
                data: data,
                async: true,
                dataType: "json",
                success: function (r) {
                    if (r.status==1){
                        popup(r.msg)
                    }else {
                        build_data = r.data;
                        initMap(lat,lng);
                    }
                }
            });
    
        }
    
        function addPlace(id) {
            $.ajax({
                url: "?md=index&cl=map&at=addplace",//路径
                type: "post",//提交方式
                data: {
                    id: id,
                },//请求参数
                async: true,//
                dataType: "json",
                success: function (r) {
                    if (r.status==2){
                        window.location.href='?md=index&cl=land&at=land&redirect='+encodeURIComponent('?md=index&cl=map&at=map&hov=2');
                    }else {
                        popup(r.msg)
                    }
                }
            });
        }
    
        $( document ).ready(function() {
            var boyd_h = $(window).height();
            $("#map_canvas").height(boyd_h-105);
            map = new google.maps.Map(document.getElementById('map_canvas'), {
                maxZoom: 16,
                minZoom: 14,
                zoom: 16,  //縮放比
                mapTypeId: 'terrain'
            });
    
    // 条件判断 是否自动定位 / 条件定位
    if($me && $hpID){ console.log($me) console.log($hpID) query('me',$hpID,''); return false; } else if($region == 'region' && $county){ let address = $county; geocoder = new google.maps.Geocoder(); geocoder.geocode({ address: address }, (results, status) => { if (status === "OK") { map.setCenter(results[0].geometry.location); new google.maps.Marker({ map: map, position: results[0].geometry.location, icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png' }); query('region',results[0].geometry.location,$county_id); } else { alert("Geocode was not successful for the following reason: " + status); } }); return false; } // // // // // // // 定位当前 // // // // // // // geocoder = new google.maps.Geocoder(); infoWindow = new google.maps.InfoWindow(); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( (position) => { const pos = { lat: position.coords.latitude, lng: position.coords.longitude, }; codeLatLng(pos.lat,pos.lng) }, () => { handleLocationError(true, infoWindow, map.getCenter()); } ); } else { // Browser doesn't support Geolocation handleLocationError(false, infoWindow, map.getCenter()); } function handleLocationError(browserHasGeolocation, infoWindow, pos) { infoWindow.setPosition(pos); infoWindow.setContent( browserHasGeolocation ? "Error: The Geolocation service failed." : "Error: Your browser doesn't support geolocation." ); infoWindow.open(map); } function codeLatLng(lat,lng) { var infowindow = new google.maps.InfoWindow(); var latlng = new google.maps.LatLng(lat, lng); // var latlng = new google.maps.LatLng(24.9954304, 121.4578688); geocoder.geocode({'latLng': latlng}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[1]) { // 定位当前位置 map.setZoom(16); marker = new google.maps.Marker({ position: latlng, map: map, icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png' }); map.setCenter(latlng); // 设置中心位置 infowindow.setContent(results[1].formatted_address); // 设置内容 infowindow.open(map, marker); // 创建视图窗口 query('location',lat,lng); // 自定义方法筛选数据 } } else { alert("Geocoder failed due to: " + status); } }); } }); // 定位城市中心点 function geocodeAddress() { // location包含经过地理编码的纬度,经度值。请注意,我们将此位置作为LatLng对象而不是格式化字符串返回。 let address = '六安市'; geocoder = new google.maps.Geocoder(); geocoder.geocode({ address: address }, (results, status) => { if (status === "OK") { map.setCenter(results[0].geometry.location); new google.maps.Marker({ map: map, position: results[0].geometry.location, icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png' }); } else { alert("Geocode was not successful for the following reason: " + status); } }); } // geocodeAddress(); </script> </body> </html>

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link id="page_favicon" href="favicon.ico" rel="icon" type="image/x-icon" />
    <title>地图</title>
    <?php include_once MvcReg::$_moduleName . '/views/layout/head.php'; ?>
    </head>

    <body class="bg_hs" style="padding-bottom: 0px">
    <div class="head">
        <div class="content">
            <h3>地图</h3>
        </div>
    </div>

    <div class="content">
        <div class="top_search">
            <a href="?md=index/search/search&search=me">依名称搜索</a>
            <a href="?md=index/search/regionSearch&search=region">依地图搜索</a>
        </div>
        <div class="search" style="display:none;">
            <form action="#" onsubmit="return false;" method="get" >
                <div class="box">            
                    <span>机器:</span>
                    <select id="machine" >
                      <option value="">请选择</option>
                      <option value="1">AAA</option>
                      <option value="2">BBB</option>
                    </select>            
                </div>
                <div class="box box2">
                    <input id="query" name="query" class="text" type="search" placeholder="输入关键字"/>
                    <input id="queryBtn" class="bnt" type="button"   />
                </div>
            </form>       
        </div>
    </div>
        
    <div class="pop_bg" id="pop_wjmm">
        <div class="pop_bg_com">
            <div class="com" id="com"></div>
            <div class="bnt" id="bnt">
                
            </div>
        </div>
    </div>

    <div class="content map_bg" >
        <div id="map_pop" class="map_pop"></div>
        <div id="map_canvas" style="400px;height:650px"></div>
    </div>
    <?php include_once MvcReg::$_moduleName . '/views/layout/foot.php'; ?>
    <script src="https://maps.googleapis.com/maps/api/js?key=key"></script>
    <script>
        var map;
        var markers = [];
        var real_markers = [];
        var build_data = [];
        var real_data = [];
        var infowindow = new google.maps.InfoWindow();
        var real_infowindow = new google.maps.InfoWindow();
        var has_query = true;
        var moveing=false;
        var is_move=true;

        var $me='<?php echo $me;?>';
        var $hpID='<?php echo $hpid;?>';

        var $machine='<?php echo $machine;?>';
        var $region='<?php echo $region;?>';
        var $county='<?php echo $county;?>';
        var $county_id='<?php echo $county_id;?>';

        // 初始化
        function initMap(lat,lng) {
            // var lat = 25.041990;
            // var lng = 121.517215;
           // console.log(build_data)
            if (build_data.length > 0) {
               lat = build_data[0].latitude;
               lng = build_data[0].longitude;
                console.log(5566);
                console.log(lat);
                console.log(lng);
               //  let lat = 24.9954304
               // let lng = 121.4578688
                if($me && $hpID){
                    map = new google.maps.Map(document.getElementById('map_canvas'), {
                        maxZoom: 16,
                        minZoom: 14,
                        zoom: 8,  //縮放比
                        Center: {lat: parseFloat(lat), lng: parseFloat(lng)},    
                        mapTypeId: 'terrain'
                    });
                }

            // Adds a marker at the center of the map.
                addMarker(build_data); //地點
            }

        }

        // Adds a marker to the map and push to the array.
        function addMarker(data) {
            for (var i = 0; i < data.length; i++) {
                console.log(data[i]);

                if (parseFloat(data[i].latitude) > 0 && parseFloat(data[i].longitude) > 0) {
                    var location = {lat: parseFloat(data[i].latitude), lng: parseFloat(data[i].longitude)}; // 坐标对象
                    var iconUrl;
                    var content = '';
                    var qubie = data[i].qubie;

                    var address = "";
                    content = data[i].place + "<br>";
                    // 创建坐标点
                    var marker = new google.maps.Marker({
                        position: location,
                        map: map,
                        title: data[i].title,
                        // icon: iconUrl
                    });
                    makeInfoWindowEvent(map, infowindow, content, marker, i, "build", address);
                    markers[i] = marker;
                }
            }

        }

        function makeInfoWindowEvent(map, infowindow, contentString, marker, num, type, address) {

            google.maps.event.addListener(marker, 'click', function () {
                showPopup(num)
            });
        }

        function showPopup(num){
            var obj= build_data[num];
            var html='<div class="title">'+obj.place+'<span class="map_gb">×</span></div> ' +
                '        <div class="box"> ' +
                '        <ul> ' +
                '                <li><b>· 选择设备</b>'+obj.machine+'</li> ' ;
            if (obj.other) {
                html +=
                    '                <li><b>· 其他</b>' + obj.other + '</li> ';
            }
            html+=
                '                <li><b>· 服务时间</b>'+obj.service+'</li> ';
            if (obj.business) {
                html +=
                    '                <li><b>· 备注</b>' + obj.business + '</li> '
            }
            html+=
                '            </ul> ' +
                '            <p>lastest update於'+obj.updatedt+',电话确认。</p> ' +
                '        </div> ' +
                '        <div class="bottom"> ' +
                '        <a class="bnt1" href="Tel://'+obj.telephone+'">'+obj.telephone+'</a> ' +
                '            <a class="bnt2" href="https://www.google.com.tw/maps/place/'+obj.county+obj.area+obj.address+'">'+obj.county+obj.area+obj.address+'</a> ' +
                '            <a class="bnt3" href="javascript:;" onclick="addPlace('+obj.id+')">加入我们</a> ' +
                '            <p>这里是备注哦!</p> ' +
                '        </div>';

            $("#map_pop").html(html);
            $(".map_pop").addClass("hov");
            $(".map_gb").click(function(){
                $(".map_pop").removeClass("hov");
            });
        }
        function telephone(tel){
            $("#pop_wjmm").show();
            $('#com').html('确定'+tel+'?');

            var a = '<a class="" href="Tel://'+tel+'">确定</a>'
                a +=  '<a class="zgzg_bnt_qx" href="javascript:void(0)">取消</a>';
            $('#bnt').html(a);

            $(".zgzg_bnt_qx").click(function(){
                $("#pop_wjmm").hide();
            })

        }

        function query(t,lat,lng) {
            markers = [];
            var machine=$("#machine").val();
            var query=$("#query").val();
            $(".map_pop").removeClass("hov");
            let data = '';
            if(t == 'location'){
                 data = { lat: lat,lng: lng,};
                 // data = { lat:24.9954304, lng:121.4578688};
            }else if(t == 'me'){
                data = { me: $me,hpid: $hpID};
            }else if(t == 'region'){
                data = {county_id: lng,machine:$machine};
            }else{
                 data = { machine: machine,query: query,};
            }

            $.ajax({
                url: "?md=index&cl=map&at=search",
                type: "post",
                data: data,
                async: true,
                dataType: "json",
                success: function (r) {
                    if (r.status==1){
                        popup(r.msg)
                    }else {
                        build_data = r.data;
                        initMap(lat,lng);
                    }
                }
            });

        }

        function addPlace(id) {
            $.ajax({
                url: "?md=index&cl=map&at=addplace",//路径
                type: "post",//提交方式
                data: {
                    id: id,
                },//请求参数
                async: true,//
                dataType: "json",
                success: function (r) {
                    if (r.status==2){
                        window.location.href='?md=index&cl=land&at=land&redirect='+encodeURIComponent('?md=index&cl=map&at=map&hov=2');
                    }else {
                        popup(r.msg)
                    }
                }
            });
        }

        $( document ).ready(function() {
            var boyd_h = $(window).height();
            $("#map_canvas").height(boyd_h-105);
            map = new google.maps.Map(document.getElementById('map_canvas'), {
                maxZoom: 16,
                minZoom: 14,
                zoom: 16,  //縮放比
                mapTypeId: 'terrain'
            });

            if($me && $hpID){
                console.log($me)
                console.log($hpID)
                query('me',$hpID,'');
                return false;
            }
            else if($region == 'region' && $county){
                let address = $county;
                geocoder = new google.maps.Geocoder();
                geocoder.geocode({ address: address }, (results, status) => {
                    if (status === "OK") {
                        map.setCenter(results[0].geometry.location);
                        new google.maps.Marker({
                            map: map,
                            position: results[0].geometry.location,
                            icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
                        });
                        query('region',results[0].geometry.location,$county_id);

                    } else {
                        alert("Geocode was not successful for the following reason: " + status);
                    }
                });
                return false;
            }

            // // // // // // // 定位  // // // // // // //

            geocoder = new google.maps.Geocoder();
            infoWindow = new google.maps.InfoWindow();
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(
                    (position) => {
                        const pos = {
                            lat: position.coords.latitude,
                            lng: position.coords.longitude,
                        };
                        codeLatLng(pos.lat,pos.lng)
                    },
                    () => {
                        handleLocationError(true, infoWindow, map.getCenter());
                    }
                );
            } else {
                // Browser doesn't support Geolocation
                handleLocationError(false, infoWindow, map.getCenter());
            }

            function handleLocationError(browserHasGeolocation, infoWindow, pos) {
                infoWindow.setPosition(pos);
                infoWindow.setContent(
                    browserHasGeolocation
                        ? "Error: The Geolocation service failed."
                        : "Error: Your browser doesn't support geolocation."
                );
                infoWindow.open(map);
            }

            function codeLatLng(lat,lng) {
                var infowindow = new google.maps.InfoWindow();
                var latlng = new google.maps.LatLng(lat, lng);
                // var latlng = new google.maps.LatLng(24.9954304, 121.4578688);
                geocoder.geocode({'latLng': latlng}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[1]) {            // 定位当前位置
                            map.setZoom(16);
                            marker = new google.maps.Marker({
                                position: latlng,
                                map: map,
                                icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
                            });
                            map.setCenter(latlng);    // 设置中心位置
                            infowindow.setContent(results[1].formatted_address); // 设置内容
                            infowindow.open(map, marker);    // 创建视图窗口
                            query('location',lat,lng);    // 自定义方法筛选数据
                        }
                    } else {
                        alert("Geocoder failed due to: " + status);
                    }
                });
            }

        });




        // 定位城市中心点
        function geocodeAddress() {
            // location包含经过地理编码的纬度,经度值。请注意,我们将此位置作为LatLng对象而不是格式化字符串返回。
            let address = '六安市';
            geocoder = new google.maps.Geocoder();
            geocoder.geocode({ address: address }, (results, status) => {
                if (status === "OK") {
                    map.setCenter(results[0].geometry.location);
                    new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location,
                        icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
                    });
                } else {
                    alert("Geocode was not successful for the following reason: " + status);
                }
            });
        }

        // geocodeAddress();


    </script>
    </body>
    </html>

  • 相关阅读:
    TensorFlow 使用预训练好的卷积神经网络和循环神经网络(lstm)模型处理图片转文字(im2txt)
    45度做人,90度做事,180度为人,360度处事
    SQL Server 和 Oracle 数据类型对应关系
    SQL Server 创建数据库
    SQL Server 2012 忘记sa用户处理方法
    剑指offer50:数组中重复的数字
    剑指offer49:把字符串转换成整数
    剑指offer48:不用加减乘除做加法
    剑指offer47:位运算+递归。求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
    剑指offer46:圆圈中最后剩下的数字(链表,递归)
  • 原文地址:https://www.cnblogs.com/G921123/p/13985921.html
Copyright © 2011-2022 走看看