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">AAAoption>
                  <option value="2">BBBoption>
                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="width: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 + "
"; // 创建坐标点 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='
'+obj.place+'×
\n
' + '
\n' + ' \t
    \n' + '
  • · 选择设备'+obj.machine+'
  • \n
    ' ; if (obj.other) { html += '
  • · 其他' + obj.other + '
  • \n
    '; } html+= '
  • · 服务时间'+obj.service+'
  • \n
    '; if (obj.business) { html += '
  • · 备注' + obj.business + '
  • \n
    ' } html+= '
\n
' + '

lastest update於'+obj.updatedt+',电话确认。

\n
' + '
\n
' + ' '; $("#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 = ''+tel+'">确定
' 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>








地图
<?php include_once MvcReg::$_moduleName . '/views/layout/head.php'; ?>




   

        

地图


   




    
   

    

   

       

       

            
       

   




   

   


<?php include_once MvcReg::$_moduleName . '/views/layout/foot.php'; ?>