westdc-zf1/application/default/views/scripts/data/advancesearch.phtml

211 lines
6.7 KiB
PHTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$this->headTitle($this->config->title->site);
$this->headTitle($this->config->title->data);
$this->headTitle('高级搜索');
if (!empty($this->codename)) $this->headTitle($this->codename);
$this->headTitle()->setSeparator(' - ');
$this->headLink()->appendStylesheet('/css/metadata.css');
$this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/data">'.$this->config->title->data.'</a>');
$this->breadcrumb('高级搜索');
$this->breadcrumb()->setSeparator(' > ');
$this->theme->AppendPlus($this,'google_map_v3');
$this->theme->AppendPlus($this,'google_map_keydragzone');
$this->theme->AppendPlus($this,'jquery_ui');
$this->theme->AppendPlus($this,'colorbox');
?>
<div>
<?= $this->partial('data/tools.phtml'); ?>
</div>
<?php if (!empty($this->metadata)) :
echo $this->page->getNavigation();?>
<hr />
<?php
foreach($this->metadata as $md) : ?>
<div class="mditem">
<div class="thumb"><img src="/service/thumb/id/<?php echo $md['id'];?>" /></div>
<h2><a href="/data/<?php echo $md['uuid'];?>"><?php echo $this->escape($md['title']);?></a>
</h2>
<span><?php echo mb_strlen($md['description'])>400?$this->escape(mb_substr($md['description'],0,400,'UTF-8').'...'):$this->escape($md['description']);?></span>
</div>
<?php endforeach; ?>
<?php echo $this->page->getNavigation();?>
<?php else: ?>
<div class="row">
<div class="span8" id="map_canvas" style="height:500px;"></div>
<div class="span4">
<form id="search" enctype="application/x-www-form-urlencoded" action="/data/advancesearch" method="post">
<fieldset><legend>时间范围</legend>
<label>
开始时间
<input name="start" type="text" id="start" />
</label>
<label>
结束时间
<input name="end" type="text" id="end" />
</label>
</fieldset>
<fieldset><legend>空间范围(按住shift键在地图上拉框)</legend>
<label>
<input name="e" id="e" type="text" /></label>
<label>
<input name="s" id="s" type="text" /></label>
<label>西
<input name="w" id="w" type="text" /></label>
<label>
<input name="n" id="n" type="text" /></label>
</fieldset>
<label>关键词
<input name="q" id="q" type="text" /></label>
<button id="search" class="btn btn-large btn-block btn-primary" type="submit" value="" onclick="dosubmit()" ><i class="icon-search"></i>搜索</button>
</form>
</div>
</div>
<script type="text/javascript">
$(function() {
//Google map (不启用预先加载)
google.maps.event.addDomListener(window, 'load', initialize);
//jquery ui datepicker
$("#start").datepicker({dateFormat:"yy-mm-dd"});
$("#end").datepicker({dateFormat:"yy-mm-dd"});
});
// Google Map Part
var map = null;
var mapElementID = "map_canvas";
var bounds = null;
var rectangle = null;
var input = {east:'#e',west:'#w',north:'#n',south:'#s'};
function initialize() {
//加载地图
var myLatlng = new google.maps.LatLng(35.656456,105.819946);
var myOptions = {
zoom: 3,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById(mapElementID), myOptions);
//Keydragzone
map.enableKeyDragZoom({
key: "shift",
boxStyle: {
border: "1px dashed black",
backgroundColor: "transparent",
opacity: 1.0
},
veilStyle: {
backgroundColor: "white",
opacity: 0.35,
cursor: "crosshair"
}
});
var dz = map.getDragZoomObject();
google.maps.event.addListener(dz, 'dragstart', function (latlng) {
RemoveRectangle();
//console.dir(latlng);
});
google.maps.event.addListener(dz, 'dragend', function (latlng) {
MapValueChange(latlng.fa.d,latlng.Z.d,latlng.fa.b,latlng.Z.b);
setRectangle(latlng.fa.d,latlng.fa.b,latlng.Z.b,latlng.Z.d);
//console.dir(latlng);
});
InputValueChange();
}
function setRectangle(east,west,south,north){
bounds = new google.maps.LatLngBounds(
new google.maps.LatLng(south,west),
new google.maps.LatLng(north,east)
);
rectangle = new google.maps.Rectangle({
bounds: bounds,
editable: true
});
rectangle.setMap(map);
google.maps.event.addListener(rectangle, 'bounds_changed', function () {
var latlng = rectangle.getBounds();
MapValueChange(latlng.fa.d,latlng.Z.d,latlng.fa.b,latlng.Z.b);
//console.dir(latlng);
});
}
function RemoveRectangle(){
if(rectangle != null)
{
rectangle.setMap(null);
rectangle = null;
}
}
function MapValueChange(east,north,west,south){
$(input.east).val(east);
$(input.north).val(north);
$(input.west).val(west);
$(input.south).val(south);
}
function InputValueChange(){
if(MapInputValueCheck() == true)
{
if(rectangle == null)
{
setRectangle($(input.east).val(),$(input.west).val(),$(input.south).val(),$(input.north).val());
}else{
var reSetBounds = new google.maps.LatLngBounds(
new google.maps.LatLng($(input.south).val(),$(input.west).val()),
new google.maps.LatLng($(input.north).val(),$(input.east).val())
);
rectangle.setBounds(reSetBounds);
}
}
}
function MapInputValueCheck()
{
if($(input.east).val() != "" && $(input.west).val() != "" && $(input.north).val() != "" && $(input.south).val() != "")
{
return true;
}else{
return false;
}
}
$(input.east).bind('blur',InputValueChange);
$(input.west).bind('blur',InputValueChange);
$(input.north).bind('blur',InputValueChange);
$(input.south).bind('blur',InputValueChange);
// Google map Part --End
function Alert(content){
$.colorbox({innerWidth:'40%',html:'<div style="line-height:30px;font-size:16px;">'+ content +'</div>'});
}
function dosubmit() {
theForm.action="/data/advancesearch";
}
</script>
<div id="help">
<fieldset><legend>搜索说明</legend><ul><li>关键词:您可以使用一个关键词,比如“沙漠”,也可以使用多个关键词,中间用空格分开。</li>
<li>空间范围这是以度为单位的十进制数字。比如东经125度30分可以输入为125.5。您也可以通过下面的在线地图工具直接在图上拉框选择一个范围,空间坐标会自动转换到文本框中。</li>
<li>时间范围指数据的时间范围从开始时间到结束时间若结束时间不填则是一个时间点。时间格式为YYYY-MM-DD。</li>
<li>还不清楚?您可以到<a href="http://forum.westgis.ac.cn/viewforum.php?f=30">论坛</a>提问。</li>
</ul></fieldset>
</div>
<?php endif; ?>