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