【发布时间】:2013-05-29 09:48:55
【问题描述】:
我收到了calculate distance between 2 coordinates 的脚本,这里:
(function() {
window.onload = function() {
var map;
//Parameter Google maps
var options = {
zoom: 10, //level zoom
//posisi tengah peta
center: new google.maps.LatLng(-7.695001, 113.996544),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Buat peta di menu MAP
var map = new google.maps.Map(document.getElementById('peta'), options);
var locations = [
<?php while($rs = mysql_fetch_array($a_peta, MYSQL_ASSOC)) { ?>
['<?php echo $rs['nama'] ?>', <?php echo $rs['latitude'] ?>, <?php echo $rs['longitude'] ?>],
<?php } ?>
];
var infowindow = new google.maps.InfoWindow();
var marker, i;
/* kode untuk menampilkan banyak marker */
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
fmap: fmap,
icon: 'pics/ico.jpg'
});
var circle = new google.maps.Circle({
map: map,
radius: 10000,
fillColor: '#AA0000'
});
circle.bindTo('center', marker, 'position');
/* menambahkan event clik untuk menampikan
infowindows dengan isi sesuai dengan
marker yang di klik */
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
};
})();
您可以看到代码是 php 和 javascript 的混合体。我想把它移到一个完整的 javascipt 文件中,但不知道该怎么做。
这是关于“$a_peta”的脚本:
<?php
include 'connect.php';
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
$db = mysql_select_db($dbname);
if($db){
$sql="select id, nama, latitude, longitude from jarak order by id";
$a_peta = mysql_query($sql);
}
else {
print "Database NOT Found ";
mysql_close($conn);
}
?>
【问题讨论】:
-
window.onload?你没有使用任何 JS 库吗? -
这是一个令人讨厌的情况。在我看来,解决这个问题的唯一方法是重写 JS,使其使用 AJAX 调用来获取坐标。
-
为什么不使用 xml 文件来加载所有位置?因此,您可以在 xml 文件中使用 php 查询并将其加载到您的 javascript 中。
-
@Hikmah Az 您可以创建一个包含有关 long、lat 和 name 信息的 json 文件,并通过分离 php 和 js 来解析它以获得您想要的结果
-
这是我的应用程序中包含的一些 JS 库: jQuery Mobile v1.0a3 jQuery JavaScript Library v1.5 jQuery Mobile v1.0a3 它适用于执行地图,但我需要显示超过 1 个在我的 index.html 中映射。我使用 jquery mobile 构建了一个 android 应用程序,并希望在导航栏中的每个菜单中显示地图。
标签: php javascript android database google-maps-android-api-2