如果你的文章欄目的文章,是包含不同的地理位置信息,那么你是否有考慮過根據文章的地理位置信息(字段值)自動顯示所在位置呢?
下面我們就用百度地圖為例子,實現根據字段值直接顯示地圖。
一、使用百度地圖API(反地址解釋)
新版網址: http://developer.baidu.com/map/jsdemo-mobile.htm#i7_2
因為新版要申請API,下面就直接用舊版來實現
二、在模板中引用的部分包括:
1、API文件調用
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
2、代碼應用
<script type="text/javascript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
// 創建地址解析器實例
var myGeo = new BMap.Geocoder();
// 將地址解析結果顯示在地圖上,并調整地圖視野
myGeo.getPoint("你希望顯示的位置", function(point){
if (point) {
map.centerAndZoom(point, 16);
map.addOverlay(new BMap.Marker(point));
}
}, "北京市");
</script>
三、修改應用代碼
例如你的k2字段的名稱是“地址”,別名是dizhi
那么在模板中引用的可以使用php語句
<?php echo $this->item->extraFields->dizhi->value ; ?>
然后我們可以加入地圖代碼
<script type="text/javascript">
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
// 創建地址解析器實例
var myGeo = new BMap.Geocoder();
// 將地址解析結果顯示在地圖上,并調整地圖視野
myGeo.getPoint("<?php echo $this->item->extraFields->dizhi->value ; ?>", function(point){
if (point) {
map.centerAndZoom(point, 16);
map.addOverlay(new BMap.Marker(point));
}
}, "北京市");
</script>
這樣地圖就會自動根據“地址”的值來顯示當前的地圖。
以上代碼中的Point(116.331398,39.897445) 和 "北京市" 都是范圍值,可以根據你的實際情況指定,獲取的反地址解釋會更精準





