Php 使用纬度和经度值绘制用户位置记录

Php 使用纬度和经度值绘制用户位置记录,php,jquery,postgresql,google-maps-api-3,Php,Jquery,Postgresql,Google Maps Api 3,我正在开发一个移动应用程序,允许用户记录一些关于他们最喜欢的纪念碑的数据。现在,当用户为他们的纪念碑拍照时,lat和long值会立即被记录下来。给我两个不同的值 然后,用户将此数据与我的PostGreSQL数据库同步。我想在我的网站服务上处理这些数据 我想要的只是一个简单的地图插件,它将获取与用户(纪念碑名称、纬度和经度)相关的每个记录(就像foreach循环),并将其显示在带有图标标记的地图上 例如,你可以在加的夫有一座最受欢迎的纪念碑,在伦敦有一座。您的帐户地图上会显示两个标记,当您单击它们

我正在开发一个移动应用程序,允许用户记录一些关于他们最喜欢的纪念碑的数据。现在,当用户为他们的纪念碑拍照时,lat和long值会立即被记录下来。给我两个不同的值

然后,用户将此数据与我的PostGreSQL数据库同步。我想在我的网站服务上处理这些数据

我想要的只是一个简单的地图插件,它将获取与用户(纪念碑名称、纬度和经度)相关的每个记录(就像foreach循环),并将其显示在带有图标标记的地图上

例如,你可以在加的夫有一座最受欢迎的纪念碑,在伦敦有一座。您的帐户地图上会显示两个标记,当您单击它们时,会弹出“加的夫博物馆”和“伦敦眼”

我在谷歌上尝试了多次搜索,但都没有用


有人实现过类似的东西吗?我擅长PHP或JQuery,或者两者都擅长

此代码可能对您有所帮助。你可以在这里看到它的工作演示()


v\:*{
行为:url(#默认值#VML);
}
谷歌地图纬度,经度弹出窗口
谷歌地图纬度,经度弹出窗口
只需单击地图上的某个位置,它就会在详图索引窗口中为您提供纬度和经度。
*坐标:
*拉丁美洲: *朗:

*Flickr标签:


*RoboGEO标签:

*
*

地址查找已被删除,因为它违反了谷歌地图的ToS

基于和中的代码。
所有其他错误都是由编写的代码引起的。
// 0 ? unescape(r).split(','):“”) } 函数getCoordForAddress(响应){ 如果(!response | | response.Status.code!=200){ 警报(“抱歉,我们无法对该地址进行地理编码\n\n抱歉,数据地址最好为blijkbaar niet!”); }否则{ 地点=响应。地点标记[0]; setLat=位置点坐标[1]; setLon=位置点坐标[0]; setLat=setLat.toFixed(6); setLon=setLon.toFixed(6); document.getElementById(“frmLat”).value=setLat; document.getElementById(“frmLon”).value=setLon; } 定位标记(setLat、setLon) } 功能定位标记(setLat、setLon){ var message=“geotaged geo:lat=“+setLat+”geo:lon=“+setLon+”; document.getElementById(“地理编码”).value=message; var messageRoboGEO=setLat+”;“+setLon+”; document.getElementById(“geocodeRoboGEO”).value=messageRoboGEO; document.getElementById(“地理代码”).focus(); document.getElementById(“地理编码”).select(); document.getElementById(“maplink”).href=baseLink+“?lat=“+setLat+”&lon=“+setLon; document.getElementById(“multimap”).href=multimapBaseLink+“&lat=“+setLat+”&lon=“+setLon; document.getElementById(“frmLat”).value=setLat; document.getElementById(“frmLon”).value=setLon; VarMap=新的GMap(document.getElementById(“map”); addControl(新的gsmallmappcontrol());//已添加 map.addControl(新的GMapTypeControl());//已添加 地图中心和缩放(新的GPoint(setLon,setLat),12); var点=新的GPoint(setLon,setLat); var标记=新的GMarker(点); 添加覆盖图(标记); addListener(映射,'click',函数(覆盖,点){ 如果(覆盖){ 地图。移除覆盖(覆盖); }否则,如果(点){ 地图。重新居中或平移(点); var标记=新的GMarker(点); 添加覆盖图(标记); var matchll=/\([-.\d]*),([-.\d]*)/.exec(点); if(matchll){ var lat=parseFloat(matchll[1]); var lon=parseFloat(matchll[2]); lat=lat.toFixed(6); lon=lon.toFixed(6); var message=“geotaged geo:lat=“+lat+”geo:lon=“+lon+”; var messageRoboGEO=lat+“;“+lon+”; }否则{ var message=“从“+point+”提取信息时出错”; var messagRoboGEO=消息; } marker.openInfoWindowHtml(消息); document.getElementById(“地理编码”).value=message; document.getElementById(“geocodeRoboGEO”).value=messageRoboGEO; document.getElementById(“地理代码”).focus(); document.getElementById(“地理编码”).select(); document.getElementById(“maplink”).href=baseLink+“?lat=“+lat+”&lon=“+lon; document.getElementById(“multimap”).href=multimapBaseLink+“&lat=“+lat+”&lon=“+lon; document.getElementById(“frmLat”).value=lat; document.getElementById(“frmLon”).value=lon; } }); } 函数findAddress(){ myAddress=document.getElementById(“地址”).value; geocoder.getLocations(我的地址,getCoordForAddress); } 如果(argItems(“lat”)=''|| argItems(“lon”)=''){ 定位标记(刚毛、刚毛); }否则{ var setLat=parseFloat(argItems(“lat”)); var setLon=parseFloat(argItems(“lon”)); setLat=setLat.toFixed(6); setLon=setLon.toFixed(6); 定位标记(刚毛、刚毛); } //]]>
此代码可能会对您有所帮助。您可以在此处看到它的工作演示()


<!-- Original script taken from: http://conversationswithmyself.com/googleMapDemo.html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
    <head>
        <style type="text/css">
        <!--
        h1 {
            font-family:sans-serif;
            color:blue;
            text-align: center;
            font-size:120%;
        }

        .tekst {
            font-family:sans-serif;
            color:blue;
            font-size:100%;
        }

        .smalltekst {
            font-family:sans-serif;
            color:black;
            font-size:80%;
        }
        --> 
        </style>
        <style type="text/css">
        v\:* {
            behavior:url(#default#VML);
        }
        </style>
        <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAF4PVqw0p5l92pEmE39k0MRQWxhPw7-SAnMb84NfHs4vQ3HTp4BTb-yeL6fQg7Up9d9idBGy5naXydw" type="text/javascript"></script>
        <title>Google Maps Latitude, Longitude Popup</title>
    </head>
    <body>
        <h1>Google Maps Latitude, Longitude Popup</h1>
        <div style="width: 600px;" class="tekst"><b>Simply click  on the map on a location and it will provide you with the latitude and longitude in the callout window.</b></div>
        <div id="map" style="width: 600px; height: 400px"></div>
        <div id="geo" style="width: 300px;position: absolute;left: 620px;top: 100px;" class="tekst">
        <form name="setLatLon" action="googleMapLocation.php">
            <b>* Coordinates:</b><br />
            <table>
                <tr><td>* Lat:</td><td><input type='text' name='lat' id="frmLat"></td></tr>
                <tr><td>* Lon:</td><td><input type='text' name='lon' id="frmLon"></td></tr>
            </table>
            <input type="submit" name="setLatLon" value="Set"><br />
        </form><br />
        <b>* Flickr tags:</b><br />
        <textarea id="geocode" cols="30" rows="2"></textarea><br />
        <br />
        <b>* RoboGEO tags:</b><br />
        <textarea id="geocodeRoboGEO" cols="30" rows="2"></textarea><br />
        * <a href="#" target="_blank" id="multimap">Show location on Multimap</a><br />
        * <a href="#" id="maplink">Permanent Link</a><br /><br />
        <script type="text/javascript">
        <!--
        google_ad_client = "pub-1588116269263536";
        google_alternate_color = "FFFFFF";
        google_ad_width = 234;
        google_ad_height = 60;
        google_ad_format = "234x60_as";
        google_ad_type = "text";
        //2006-09-30: Map
        google_ad_channel ="0993881556";
        google_color_border = "DDDDDD";
        google_color_bg = "DDDDDD";
        google_color_link = "0000FF";
        google_color_text = "333333";
        google_color_url = "333333";
        //-->
        </script>
        <script type="text/javascript"  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    </div>
    <div style="width: 600px;" class="smalltekst">

            <p><i>Address lookup has been removed because it violated the ToS of Google Maps.</i></p>

        Based on code taken from <a href="http://conversationswithmyself.com/googleMapDemo.html">this website</a> and <a href="http://www.evolt.org/article/Javascript_to_Parse_URLs_in_the_Browser/17/14435/?format=print">this website</a>.<br />
All other errors are caused by code written by <a href="http://www.gorissen.info/Pierre/">Pierre Gorissen</a>.<br />
    </div>
    <script type="text/javascript">
    //<![CDATA[

    var baseLink = "http://www.gorissen.info/Pierre/maps/googleMapLocation.php";
    var multimapBaseLink = "http://www.multimap.com/map/browse.cgi?scale=10000&icon=x";
    var geocoder = new GClientGeocoder();
    var setLat = 51.618017;
    var setLon = 2.48291;   

    // argItems code taken from 
    // http://www.evolt.org/article/Javascript_to_Parse_URLs_in_the_Browser/17/14435/?format=print
    function argItems (theArgName) {
        sArgs = location.search.slice(1).split('&');
            r = '';
            for (var i = 0; i < sArgs.length; i++) {
                if (sArgs[i].slice(0,sArgs[i].indexOf('=')) == theArgName) {
                        r = sArgs[i].slice(sArgs[i].indexOf('=')+1);
                        break;
                }
            }
        return (r.length > 0 ? unescape(r).split(',') : '')
    }


    function getCoordForAddress(response) {

        if (!response || response.Status.code != 200) {
            alert("Sorry, we were unable to geocode that address\n\n Sorry, dat adres bestaat blijkbaar niet!");
        } else {
            place = response.Placemark[0];
            setLat = place.Point.coordinates[1];
            setLon = place.Point.coordinates[0];
            setLat = setLat.toFixed(6);
            setLon = setLon.toFixed(6);
            document.getElementById("frmLat").value = setLat;
            document.getElementById("frmLon").value = setLon;
        }
        placeMarker(setLat, setLon)
    }


    function placeMarker(setLat, setLon) {

        var message = "geotagged geo:lat=" + setLat + " geo:lon=" + setLon + " "; 
        document.getElementById("geocode").value = message;
        var messageRoboGEO = setLat + ";" + setLon + ""; 
        document.getElementById("geocodeRoboGEO").value = messageRoboGEO;

        document.getElementById("geocode").focus();
        document.getElementById("geocode").select();

        document.getElementById("maplink").href = baseLink + "?lat=" + setLat + "&lon=" + setLon ;
        document.getElementById("multimap").href = multimapBaseLink + "&lat=" + setLat + "&lon=" + setLon ;
        document.getElementById("frmLat").value = setLat;
        document.getElementById("frmLon").value = setLon;

        var map = new GMap(document.getElementById("map"));

        map.addControl(new GSmallMapControl()); // added
        map.addControl(new GMapTypeControl()); // added
        map.centerAndZoom(new GPoint(setLon, setLat), 12);

        var point = new GPoint(setLon, setLat);
        var marker = new GMarker(point);
        map.addOverlay(marker);

        GEvent.addListener(map, 'click', function(overlay, point) {
            if (overlay) {
                map.removeOverlay(overlay);
            } else if (point) {
                map.recenterOrPanToLatLng(point);
                var marker = new GMarker(point);
                map.addOverlay(marker);
                var matchll = /\(([-.\d]*), ([-.\d]*)/.exec( point );
                if ( matchll ) { 
                    var lat = parseFloat( matchll[1] );
                    var lon = parseFloat( matchll[2] );
                    lat = lat.toFixed(6);
                    lon = lon.toFixed(6);
                    var message = "geotagged geo:lat=" + lat + " geo:lon=" + lon + " "; 
                    var messageRoboGEO = lat + ";" + lon + ""; 
                } else { 
                    var message = "<b>Error extracting info from</b>:" + point + ""; 
                    var messagRoboGEO = message;
                }

                marker.openInfoWindowHtml(message);
                document.getElementById("geocode").value = message;
                document.getElementById("geocodeRoboGEO").value = messageRoboGEO;
                document.getElementById("geocode").focus();
                document.getElementById("geocode").select();

                document.getElementById("maplink").href = baseLink + "?lat=" + lat + "&lon=" + lon ;
                document.getElementById("multimap").href = multimapBaseLink + "&lat=" + lat + "&lon=" + lon ;
                document.getElementById("frmLat").value = lat;
                document.getElementById("frmLon").value = lon;

            }
        });
    }

    function findAddress() {
        myAddress = document.getElementById("address").value;
        geocoder.getLocations(myAddress, getCoordForAddress);

    }


    if (argItems("lat") == '' || argItems("lon") == '') {
        placeMarker(setLat, setLon);
    } else {
        var setLat = parseFloat( argItems("lat") );
        var setLon = parseFloat( argItems("lon") );
        setLat = setLat.toFixed(6);
        setLon = setLon.toFixed(6);
        placeMarker(setLat, setLon);
    }

    //]]>
    </script>
<!-- Start twatch code -->
<script type="text/javascript"><!--
//<![CDATA[
document.write('<scr'+'ipt type="text/javascript" src="/Pierre/twatch/jslogger.php?ref='+( document["referrer"]==null?'':escape(document.referrer))+'&pg='+escape(window.location)+'&cparams=true"></scr'+'ipt>');
//]]>
//--></script>
<!-- End twatch code -->
  </body>
</html>
   t.push('Location Name 1');
    x.push(33.84659); // you can write like x.push(<?php echo $userloc[0]['lat']?>)
    y.push(-84.35686);
    h.push('<p><strong>Location Name 1</strong><br/>Address 1</p>');
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { initialize(); });

    function initialize() {
        var map_options = {
            center: new google.maps.LatLng(33.84659,-84.35686),
            zoom: 14,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var google_map = new google.maps.Map(document.getElementById("map_canvas"), map_options);

        var info_window = new google.maps.InfoWindow({
            content: 'loading'
        });

        var t = [];
        var x = [];
        var y = [];
        var h = [];

        t.push('Location Name 1');
        x.push(33.84659);
        y.push(-84.35686);
        h.push('<p><strong>Location Name 1</strong><br/>Address 1</p>');

        t.push('Location Name 2');
        x.push(33.846253);
        y.push(-84.362125);
        h.push('<p><strong>Location Name 2</strong><br/>Address 2</p>');

        var i = 0;
        for ( item in t ) {
            var m = new google.maps.Marker({
                map:       google_map,
                animation: google.maps.Animation.DROP,
                title:     t[i],
                position:  new google.maps.LatLng(x[i],y[i]),
                html:      h[i]
            });

            google.maps.event.addListener(m, 'click', function() {
                info_window.setContent(this.html);
                info_window.open(google_map, this);
            });
            i++;
        }
    }
</script> 
<div id="map_canvas" style="width:400px;height:400px;">Google Map</div>