【发布时间】:2015-12-11 10:10:17
【问题描述】:
我的网站上有一个用 codeigniter 创建的谷歌地图。现在我想用我的 sql 数据库中的数据移动标记。我的数据库中的数据将被更新。我可以通过 biostall 在地图上绘制标记。现在我想移动它们。
所以我加载所有标记并将它们传递给我的视图以使用 ajax/javascript 脚本绘制它们。我没有错误,但也没有标记。我不是 ajax 和 javascript 的专业人士,所以问题需要存在,但我无法解决它。这是我的代码。地图应每 3 秒更新一次。
我的控制器:
function render_maps() {
$userid = $this->uri->segment(3);
$userlevel = $this->user_model->get_user_level($userid);
if ($userlevel > 2) {
$this->load->library('googlemaps');
$this->googlemaps->initialize();
#$this->marks();
$config['zoom'] = 'auto';
$data['map'] = $this->googlemaps->create_map();
$data['markers'] = json_encode($this->user_model->get_marks());
$data['userdata'] = $this->session->userdata;
$this->load->view('header', $data);
$this->load->view('dashboard_maps', $data);
$this->load->view('wrapper', $data);
}
}
我的看法:
<head>
<?php echo $map['js']; ?>
<script type="text/javascript">
function refreshMarkers() {
$.ajax({
url: "<?php site_url('User/render_maps/'. $this->session->userdata('user_id')) ?>",
type: "POST",
data: ({value: $markers}),
dataType: "json", //retrieved Markers Lat/lng in Json, thus using this dataType
success: function(data){
//Removing already Added Markers//////////
for (var i = 0; i < $markers.length; i++) {
$markers[i].setMap(null);
}
$markers = new Array();
//////////////////////////////////////////
// Adding New Markers////////////////////
for (var i = 0, len = data.length; i < len; ++i) { // Iterating the Json Array
var d = data[i];
var lat = parseFloat(d.lat);
var lng = parseFloat(d.lng);
var myLatlng = new google.maps.LatLng(lat, lng);
var marker = {
map: map,
position: myLatlng // These are the minimal Options, you can add others too
};
createMarker(marker);
}
}
}
);
</script>
【问题讨论】:
标签: javascript php ajax codeigniter google-maps