java - 动态谷歌地图/纬度经度vars/php/java/var/basic

标签 java php api google-maps latitude-longitude

问题:

<小时/>

嗨,

我想通过 IP 地址在我的网站中嵌入动态谷歌地图。我使用 IPlocation 工具获取了纬度/经度数据。我还无法将 IPlocation 的纬度/日志数据连接到谷歌地图 java 代码。我不确定如何在加载 map 功能中格式化/定义/放置纬度和经度。以下是我尝试过但尚未奏效的方法:

  • 我尝试过 JavaScript 代码,
  • 我还尝试手动输入 $latitude 和 $longitude 的值。
  • 我尝试直接将“ip2location_latitude()”和“ip2location_longitude()”放入java代码中。

最终我需要获取基于IP的位置历史记录并将位置数据记录到数据库中。

提前致谢

这是我的代码摘要:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <!-- Google map API v3 -->

<?php
$latitude = 'ip2location_latitude()'; //------------ IP latitude
$longitude = 'ip2location_longitude()'; //------------ IP latitude ip2location_longitude() 
?>

<!-- Start loading canvas google map -->

<script type="text/javascript">
function loadmap () { 
var latlng = new google.maps.LatLng($latitude,$longitude);
var option = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), option);
createMarker(latitude,logitude, 'lol');
downloadUrl("airport.xml", function(data) {
var xml = xmlParse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
document.getElementById("test").innerHTML = markers.length;
for (var i = 0; i < markers.length; i++) {
var info = markers[i].getAttribute("info");
var lat = parseFloat(markers[i].getAttribute("lat"));
var lon = parseFloat(markers[i].getAttribute("lng"));

createMarker(lat, lon, info);
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function createMarker(lat, lon, info){
var myLatlng = new google.maps.LatLng($latitude,$longitude);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"My location",
icon: "http://google-maps-icons.googlecode.com/files/airport.png"
});
}
</script>
<!-- End Geting map via latitude and longitude-->

<!-- Start calling load map function to load the map -->
<body onload="loadmap ()">
<div id="map_canvas" style="width:400px; height:300px"></div>
<div id="test" style="width:50%; height:50%"></div>
<!-- End calling load map function to load the map -->

最佳答案

您忘记使用 echo/print 来打印 PHP 变量的值。

在 createMarker 中,您应该引用提供的参数(lat,lon)而不是 $latitude/$longitude

修复版本:

<body onload="loadmap ()">
<script  src="http://maps.google.com/maps/api/js?sensor=false">
   </script>
<script src="http://www.iplocationtools.com/iplocationtools.js?key=YOURKEY">
   </script>
<?php
$latitude = 'ip2location_latitude()'; //------------ IP latitude
$longitude = 'ip2location_longitude()'; //------------ IP latitude ip2location_longitude() 
?>
<script type="text/javascript">
function loadmap () { 
  var latlng = new google.maps.LatLng(<?php echo $latitude;?>,<?php echo $longitude;?>);
  var option = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
               };
  map = new google.maps.Map(document.getElementById("map_canvas"), option);
  createMarker(<?php echo $latitude;?>,<?php echo $longitude;?>, 'lol');

}
function createMarker(lat, lon, info){
var myLatlng = new google.maps.LatLng(lat,lon);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"My location",
icon: "http://google-maps-icons.googlecode.com/files/airport.png"
});
}
</script>
<div id="map_canvas" style="width:400px; height:300px"></div>
<div id="test" style="width:50%; height:50%"></div>
</body> 

但是,这项服务不是很准确,对我来说它显示的位置距离我当前的位置 400 公里。我建议使用浏览器实现的地理定位。

关于java - 动态谷歌地图/纬度经度vars/php/java/var/basic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017502/

相关文章:

java - 重置 Weld 的廉价方法?

php - Mysql 就像非对象上的bind_param()

php - 如何在 Laravel 的 Controller 中添加过滤器参数?

javascript - 如何从background.js中的当前选项卡获取文档

java - Java SDK for REST API服务上的错误处理

api - 是否可以自定义 ServiceStack/元数据页面?

java - 如何使用 java Instrumentation 在运行时调用方法

Java - 为什么我们在构造函数中使用 "this"关键字?

java - 具有默认命名空间的 Xpath

php - 用于显示未分配到项目的员工的 MySQL 查询