zoukankan      html  css  js  c++  java
  • 谷歌地图接口,实现点击标记获取经纬度等信息。

    Google map api
    
    Author chenbin
    Date 12/12
    Email bingoPureLife@gmail.com
    
    标记在地图上的位置 并且获取当前位置的经纬度
    
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <title>Google Maps Demo</title>
        <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
        <script src="{vifnn::STATICS}/jquery-1.4.2.min.js" type="text/javascript"></script>
        <script src="/tpl/static/artDialog/jquery.artDialog.js?skin=default"></script>
        <script src="/tpl/static/artDialog/plugins/iframeTools.js"></script>
        <script type="text/javascript">
            var infowindow,marker;
            var geocoder = new google.maps.Geocoder();
            function initialize() {
                //var point = new google.maps.LatLng(18.252847, 109.511909);
                var point; // 地图中心
                if(getLatLngFromParent() != ''){
                    point = getLatLngFromParent();
                    loadMap(point);
                }else{
                    if(navigator.geolocation) {
                        navigator.geolocation.getCurrentPosition(function(position) {
                            point = new google.maps.LatLng(
                                    position.coords.latitude,
                                    position.coords.longitude
                            );
                            loadMap(point);
                        });
                    } else {
                        // Browser doesn't support Geolocation
                        handleNoGeolocation();
                    }
                }
            }
            function loadMap(point){
                var myOptions = {
                    zoom: 15, // 缩放级别
                    center: point,
                    mapTypeId: google.maps.MapTypeId.ROADMAP, // 显示普通的街道地图
                    mapTypeControl: false, // 地图类型控件
                    overviewMapControl: false, // 总览图控件
                    scaleControl: false, // 比例控件
                    streetViewControl: false // 街景视图
                };
                var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
                //添加地图标记
                marker = new google.maps.Marker({
                    position: point,
                    map: map
                });
                marker.setDraggable(true); // 设置可拖拽
    
                //初始化信息窗口
                infowindow = new google.maps.InfoWindow({
                    content: "",
                    size: new google.maps.Size(50,50)
                });
    
                //添加拖动监听事件
                google.maps.event.addListener(marker, 'dragend', function(){
                    showAddress(map, marker);
                });
                //添加点击标记监听事件
                google.maps.event.addListener(marker, 'click', function(){
                    showAddress(map, marker);
                });
                //添加点击监听事件
    
                google.maps.event.addListener(map, 'click', function(e) {
                    clickMou(map,marker,e.latLng);
                });
                showAddress(map,marker);
            }
    
            function handleNoGeolocation() {
                    //长沙公司地址
                    point = new google.maps.LatLng(28.127907999999998, 112.98059999999998);
                    loadMap(point);
            }
            function showAddress(map, marker)
            {
                var latlng = marker.getPosition();
                geocoder = new google.maps.Geocoder();
    
                //根据经纬度获取地址信息
                geocoder.geocode({'latLng': latlng}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[1]) {
                            var address = results[1].formatted_address + "<br />";
                            address = results[0].formatted_address + "<br />";
                            address += "纬度:" + latlng.lat() + "<br />";
                            address += "经度:" + latlng.lng();
    
                            infowindow.setContent(address);
                            infowindow.open(map, marker);
                            transfer(latlng.lat(),latlng.lng());
                        }
                    } else {
                        alert("Geocoder failed due to: " + status);
                    }
                });
            }
    
            function clickMou(map, marker,location)
            {
                marker.setPosition(location)
    
                //根据经纬度获取地址信息
                geocoder.geocode({'latLng': location}, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[1]) {
                            var address = results[1].formatted_address + "<br />";
                            address = results[0].formatted_address + "<br />";
                            address += "纬度:" + location.lat() + "<br />";
                            address += "经度:" + location.lng();
                            infowindow.setContent(address);
                            infowindow.open(map, marker);
                            transfer(location.lat(),location.lng());
                        }
                    } else {
                        alert("Geocoder failed due to: " + status);
                    }
                });
    
            }
    
            function transfer(lat,lng){
                var origin = artDialog.open.origin;
                var longitudeinput = origin.document.getElementById('longitude');
                var latitudeinput = origin.document.getElementById('latitude');
                longitudeinput.value = lat;
                latitudeinput.value = lng;
                //art.dialog.close();
            }
            function getLatLngFromParent(){
                if (art.dialog.data('longitude')) {
                    point = new google.maps.LatLng(
                        art.dialog.data('longitude'),
                        art.dialog.data('latitude')
                    );
                    return point;
                };
            }
        </script>
    </head>
    
    <body onload="initialize()">
    <div id="map_canvas" style=" 600px; height: 400px"></div>
    </body>
    </html>
    

      

    积累知识,分享知识,学习知识。
  • 相关阅读:
    标准输入输出
    UNIX基础概念
    phpstrom设置php环境
    nginx+php+swoole安装记录
    MySQL索引
    生成器来解决大文件读取,大数据下载
    PHP调优
    PHP-FPM详解
    远程登录服务器配置
    HTTPS配置
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/4159209.html
Copyright © 2011-2022 走看看