我正在使用Google Maps API和W3C Standard来获取用户的地理位置。我将它设置为基础 - 使用[Google的文档] [1]中的代码。
现在我将它整合到我的网站中,需要将它归入我的mysql数据库。我想将PHP变量设置为JavaScript变量(基本上将PHP变量设置为纬度和经度)。但是我没有成功这样做。
编辑:
基本上我想$phpvar
= $jsvar
。制作一个php变量=我的javascript变量。
以下是代码:
var initialLocation;
var siberia = new google.maps.LatLng(60, 105);
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
var browserSupportFlag = new Boolean();
function initialize() {
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Try W3C Geolocation (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
// Try Google Gears Geolocation
} else if (google.gears) {
browserSupportFlag = true;
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeoLocation(browserSupportFlag);
});
// Browser doesn't support Geolocation
} else {
browserSupportFlag = false;
handleNoGeolocation(browserSupportFlag);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag == true) {
alert("Geolocation service failed.");
initialLocation = newyork;
} else {
alert("Your browser doesn't support geolocation. We've placed you in Siberia.");
initialLocation = siberia;
}
map.setCenter(initialLocation);
} }
任何帮助都会很棒!请具体说明,因为我是Google Map API的新用户。
谢谢! :)
答案 0 :(得分:1)
您可以将PHP变量存储为Javascript变量,如下所示:
<script type="text/javascript">
var geoloc = '<?php echo $geoloc; ?>';
</script>
然后,您可以根据需要使用此变量。如果您可以提供示例代码,我会尝试让您更准确地了解。
答案 1 :(得分:1)
“想要将PHP变量设置为Javascript变量”。这不太清楚?
如果您想使用PHP-&gt; Javascript,那么它很简单:
var myVar = <?php echo json_encode($some_php_var) ?>;
对于Javascript-&gt; PHP,它有点复杂。您必须执行一些DOM黑客操作才能将值插入到表单值/提交表单中,或者执行一些AJAX工作。
答案 2 :(得分:0)
这是我目前为Lat和Lng设置php变量,然后使用Javascript调用它们的方式:
function initMap() {
var geoLat = parseFloat("<?php echo h($location['lat']); ?>");
var geoLng = parseFloat("<?php echo h($location['lng']); ?>");
var theLocation = {lat: geoLat, lng: geoLng};
var map = new google.maps.Map(
document.getElementById('map'), {
zoom: 16,
center: theLocation
});
我正在使用parseFloat()函数 parseFloat
这有助于解决某些代码可能遇到的Lat / Lng Object Literal错误消息和VS Code中的markup / lint错误。我希望这对您和其他人有帮助。