Google Maps API - 将php变量设置为javascript变量

时间:2010-12-29 19:21:55

标签: php geolocation google-maps-api-3

我正在使用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的新用户。

谢谢! :)

3 个答案:

答案 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错误。我希望这对您和其他人有帮助。