Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【1.5正式版 会员动态 google地图插件】

[复制链接]
wenjoy88 发表于 2009-6-20 17:46:54 | 显示全部楼层 |阅读模式
UCHome插件
语言编码: GBK简体 UTF8简体 BIG5繁体 
插件名称: 1.5正式版 会员动态 google地图插件
插件作者:
适用版本: UCHome 1.5
本帖最后由 wenjoy88 于 2009-6-20 18:04 编辑

看到有人需要这个功能
我就把我的整理下发给大家了

演示:www.gaoxing365.com

  下载 (56.1 KB)

2009-3-29 19:31

  下载 (58.28 KB)

2009-3-29 19:31

第1步
选取默认地图坐标:
首先打开Google地图
ditu.google.cn

在上面寻找一个地址,然后上下左右移动地图,让这个地址正好处于地图的正中心位置,当您想寻找坐标位置已经处于地图的中心位置的时候,拷贝并粘贴以下代码到你的浏览器地址栏:javascript:void(prompt('',gApplication.getMap().getCenter()));
复制代码然后回车一下。这时,你将得到一个弹出式的坐标,这个坐标就是你需要找的经度和纬度。

第2步
申请 google map 的 key
http://code.google.com/intl/zh-CN/apis/maps/signup.html

  下载 (28.52 KB)

2009-3-29 19:31

把下面代码里的 红色 换成你的 KEY 跟 坐标就行了
ABQIAAAACoypN5nK6k_TLuhZ3oZH_RSJq63ahCLp9LRODt47kTV4yYcmfRQsX1n-KWWIoMpHFCpMhScWA57t4A

28.189756655197957, 112.99678802490234

第3步
在uchome_spacefield表中添加三个字段,分别为:
lat       类型为 varchar  长度为20
lng      类型为 varchar  长度为20
zoom  类型为 char        长度为3
或SQL直接添加代码:ALTER TABLE `uchome_spacefield` ADD `lat` varchar(20) NOT NULL AFTER `feedfriend` ;

ALTER TABLE `uchome_spacefield` ADD `lng` varchar(20) NOT NULL AFTER `lat` ;

ALTER TABLE `uchome_spacefield` ADD `zoom` char(3) NOT NULL AFTER `lng` ;
复制代码第4步
在 template 中的 default 中找到 cp_profile.htm 或自己风格摸板
找到:<tr>

        <th>居住地</th>

        <td>

                <script type="text/javascript">

                <!--

                showprovince('resideprovince', 'residecity', '$space[resideprovince]');

                showcity('residecity', '$space[residecity]', 'resideprovince');

                //-->

                </script>

        </td>

</tr>
复制代码在下面添加:<tr>

        <td colspan="2">

        <input type="button" id="btn_addMarker" disabled value="快添加您在地图上的位置吧,认识更多的朋友" onclick="AddMarker()" class="button" />

        <div id="d_map" style="background-color:#FFF;border:solid 6px gray;width:481px;margin-top:3px;">

        <div style="width:480px; height:300px;background-color:#f3f3f3;" id="map_canvas"></div>

        </div>

        <input type="hidden" name="lng" id="lng" value="$space[lng]" />

        <input type="hidden" name="lat" id="lat" value="$space[lat]" />

        <input type="hidden" name="zoom" id="zoom" value="$space[zoom]" />

        <input type="hidden" name="sid" id="sid" value="$space[uid]" />

        </td>

</tr>
复制代码再找到:<!--{template footer}-->
复制代码在上面添加:<div class="f_status s_clear">

        <a href="javascript:;" onclick="window.scrollTo(0,0);" id="a_top" title="TOP">TOP</a>

</div>





<script src=http://ditu.google.com/maps?file=api&v=2&oe=gb2312&key=ABQIAAAACoypN5nK6k_TLuhZ3oZH_RSJq63ahCLp9LRODt47kTV4yYcmfRQsX1n-KWWIoMpHFCpMhScWA57t4A type="text/javascript"></script>



<script type="text/javascript">

var myMap;

var myMarker;

var geocoder = null;

window.onload = function() {

if (GBrowserIsCompatible()) {

myMap = new GMap2(document.getElementById("map_canvas"));

var center = new GLatLng(28.189756655197957, 112.99678802490234); //这个地方就是调整默认显示哪里的,至于里面的经纬度已经再上面给处了获取方法。

myMap.addControl(new GLargeMapControl());

myMap.addControl(new GScaleControl());

myMap.enableScrollWheelZoom();

geocoder = new GClientGeocoder();



if (document.getElementById("lat").value == ""){

myMap.setCenter(center, 16);     //这个地方就是可以修改到显示多少级别的,如果想显示到街道级别,把11改为16就差不多了,可以自己//改改看

document.getElementById("btn_addMarker").disabled = false;

}

else{

var _lat = document.getElementById("lat").value;

var _lng = document.getElementById("lng").value;

var _zoom = document.getElementById("zoom").value;

var _center = new GLatLng(_lat,_lng);

myMap.setCenter(_center,parseInt(_zoom));

document.getElementById("btn_addMarker").disabled = true;



Mark(_lat,_lng);

}

}

}



function Mark(lat,lng){



myMarker = new GMarker(new GLatLng(lat,lng), {draggable: true});



GEvent.addListener(myMarker, "click", function() {

myMarker.openInfoWindowHtml("<b>把气球拖动到你要标记的地方</b><p>拖动左边的比例尺可以缩放地图</p><a href='javascript:void(0);' onclick='DeleteMarker()'>删除标记</a>");

});

GEvent.addListener(myMarker, "dragstart", function() {

myMarker.closeInfoWindow();

});

GEvent.addListener(myMarker, "dragend", function() {

var gll = myMarker.getLatLng();

document.getElementById("lat").value = gll.lat();

document.getElementById("lng").value = gll.lng();

document.getElementById("zoom").value = myMap.getZoom();

myMarker.openInfoWindowHtml("<b>把气球拖动到你要标记的地方</b><p>拖动左边的比例尺可以缩放地图</p><a href='javascript:void(0);' onclick='DeleteMarker()'>删除标记</a>");

});

myMap.addOverlay(myMarker);



myMarker.openInfoWindowHtml("<b>把气球拖动到你要标记的地方</b><p>拖动左边的比例尺可以缩放地图</p><a href='javascript:void(0);' onclick='DeleteMarker()'>删除标记</a>");

}



function AddMarker(){

document.getElementById("btn_addMarker").disabled = true;



var ll = myMap.getCenter();

document.getElementById("lat").value = ll.lat();

document.getElementById("lng").value = ll.lng();

document.getElementById("zoom").value = myMap.getZoom();

Mark(ll.lat(),ll.lng());

}



document.getElementById("residecity").onchange=function AutoMarker(){

var tmpprovince=document.getElementById("resideprovince").value;

var tmpcity=document.getElementById("residecity").value;

var tmpAddress;

tmpAddress=tmpprovince + tmpcity;

if (geocoder) {

geocoder = new GClientGeocoder();

        geocoder.getLatLng(

          tmpAddress,

          function(point) {

            if (!point) {

              alert("iii,Google居然找不到:" + tmpAddress);

            } else {

document.getElementById("btn_addMarker").disabled = true;

myMap.clearOverlays()

Mark(point.y,point.x);

              

            }

          }

        );

      }

}



function DeleteMarker(){

document.getElementById("btn_addMarker").disabled = false;

myMap.removeOverlay(myMarker);

var gll = myMarker.getLatLng();

document.getElementById("lat").value = "";

document.getElementById("lng").value = "";

document.getElementById("zoom").value = "";

}



</script>
复制代码第5布
在 template 中的 default 中找到 space_index.htm 或自己风格摸板
找到:                        <!--{if $doinglist}-->

                        <h2>

                        <a href="space.php?uid=$space[uid]&do=doing&view=me" class="r_option">全部</a>

                        记录

                        </h2>
复制代码在上面添加:        <!--{if $space['showprofile']}-->

        <!--{if $space[lat]}-->

        <div id="space_location" class="box">

        <h3>现在位置</h3>

        <p><div style="width:198px;;height:170px;overflow:hidden;border:solid 1px #ccc;" id="map_canvas"></div></p>

        </div>

        <!--{/if}-->

        <!--{/if}-->
复制代码再找到:<!--{template footer}-->
复制代码在上面添加:<script src=http://ditu.google.com/maps?file=api&v=2&oe=gb2312&key=ABQIAAAACoypN5nK6k_TLuhZ3oZH_RSJq63ahCLp9LRODt47kTV4yYcmfRQsX1n-KWWIoMpHFCpMhScWA57t4A type="text/javascript"></script>

<script type="text/javascript">

window.onload = function() {

if (GBrowserIsCompatible()) {

var map = new GMap2(document.getElementById("map_canvas"));

var center = new GLatLng($space[lat],$space[lng]);

map.setCenter(center, $space[zoom]);



var marker = new GMarker(center);

map.addOverlay(marker);

}

}

</script>
复制代码第6步
在 source 文件夹中找到 cp_profile.php 文件
找到:        //提交检查

        $setarr = array(

                'qq' => getstr($_POST['qq'], 20, 1, 1),

                'msn' => getstr($_POST['msn'], 80, 1, 1),
复制代码在下面添加:                'lat' => getstr($_POST['lat'], 20, 1, 1),

                'lng' => getstr($_POST['lng'], 20, 1, 1),

                'zoom' => getstr($_POST['zoom'], 3, 1, 1),
复制代码第7步
在 template 中的 default 中找到 index.htm 或自己风格摸板
在需要显示地图的地方加入下面代码<div id="div_map">

                                                   <script type="text/javascript">var tmap_u= [];</script>                     

                                               <div id="viewmap_index" style="width:520px;height:300px;border:1px solid #ccc;"></div>

                                                

                                </div>
复制代码在找到:<!--{template footer}-->
复制代码在后面添加:<div style="display:none;">



<!--{if $newfeed}-->

<!--{loop $newfeed $key $value}-->        

<script type="text/javascript">

tmap_u.push({ "name":"$value[username]","lat": $value[lat], "lng": $value[lng], "id": $value[uid],"zoom": $value[zoom]});</script>

                                                                        <div id="map_u_{$key}">

                                                                                <span style="float:right;"><a href="space.php?uid=$value[uid]" title="{$_SN[$value[uid]]}" target="_blank"><img src="<!--{avatar($value[uid],small)}-->" class="avatar" /></a></span>

                                                                                <p>$value[title_template]</p>

                                                                                <p><a href="javascript:map_zoom_in({$key});">放大地图</a> <a href="javascript:map_zoom_out();">还原地图</a> </p>

                                                                                <p><a href="space.php?uid=$value[uid]" title="{$_SN[$value[uid]]}" target="_blank">访问&nbsp;$_SN[$value[uid]]&nbsp;个人空间</a>

                                                                                </p></div>

                                                                <!--{/loop}-->

                                                <!--{/if}-->                        

                                        </div>



<script src="http://ditu.google.com/maps?file=api&v=2&key=ABQIAAAACoypN5nK6k_TLuhZ3oZH_RSJq63ahCLp9LRODt47kTV4yYcmfRQsX1n-KWWIoMpHFCpMhScWA57t4A" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">



// show shops on map

var mymap = 'viewmap_index';

var map = null;

var mapbounds = new GLatLngBounds(new GLatLng(-33.873801,151.206765), new GLatLng(0.335218,0.719604));

var markers = [];

var current_marker = null;



function map_show_info(i)

{

if(current_marker !== i)

{

markers[0].openInfoWindow(markers[1], {"maxWidth": 250});

current_marker = i;

}

}



function map_zoom_in(i)

{

map.setCenter(markers[0].getPoint(), 16);

}



function map_zoom_out()

{

if(current_marker !== null) { markers[current_marker][0].closeInfoWindow(); }

map.setCenter(mapbounds.getCenter(), Math.min(15, map.getBoundsZoomLevel(mapbounds)));

}

function map_set_marker(marker, i)

{

GEvent.addListener(marker, "click", function() { map_show_info(i); });

GEvent.addListener(marker, "infowindowclose", function() { current_marker = null; });



}                                

function map_auto_show()

{

var next_marker;

if(current_marker === null) next_marker = 0;

else next_marker = current_marker + 1;

if(next_marker === null || next_marker >= markers.length) { next_marker = 0; }

map_show_info(next_marker);

window.setTimeout(map_auto_show, 6000);

}



if (GBrowserIsCompatible())

{

map = new GMap2(document.getElementById('viewmap_index'));



map.addControl(new GSmallMapControl());

map.addControl(new GScaleControl());



        var center = new GLatLng(112.1817398071289,37.20989218842202);

        map.setCenter(center, 12);





for(var i = 0; i < tmap_u.length; i++)

{

var icon = new GIcon(G_DEFAULT_ICON, "http://msenlin.com/home/api/td.png");

G_DEFAULT_ICON.iconSize = new GSize(22, 22);

icon.iconSize = new GSize(22, 22);





var marker = new GMarker(new GLatLng( tmap_u.lat, tmap_u.lng ), {"icon": icon, "title": tmap_u.name+"@梦森林"});

map.addOverlay(marker);





markers.push([marker,document.getElementById("map_u_"+i).innerHTML, tmap_u.id]);

if(markers.length > 1)

{

mapbounds =

new GLatLngBounds(new GLatLng(Math.min(mapbounds.getSouthWest().lat(), tmap_u.lat),

Math.min(mapbounds.getSouthWest().lng(), tmap_u.lng)),

new GLatLng(Math.max(mapbounds.getNorthEast().lat(), tmap_u.lat),

Math.max(mapbounds.getNorthEast().lng(), tmap_u.lng)));

}

else

{

mapbounds = new GLatLngBounds(new GLatLng(tmap_u.lat, tmap_u.lng),

new GLatLng(tmap_u.lat, tmap_u.lng));

}

}



map_zoom_out();

window.setTimeout(map_auto_show, 3000);               



}



</script>
复制代码第8步
在 index.php 文件
找到://总会员

$spacecount = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('space')), 0);
复制代码在下面加上://大家的最新动态

$newfeed = array();

$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('feed')." LEFT JOIN " . tname('spacefield') . " ON " .

        tname('feed') . ".uid =" . tname('spacefield') . ".uid WHERE " .tname('feed'). ".friend='0' and " .tname('spacefield'). ".lat != '' ORDER BY dateline DESC LIMIT 0,9");//显示最新动态

while ($value = $_SGLOBAL['db']->fetch_array($query)) {

        realname_set($value['uid'], $value['username']);

        

        $newfeed[] =mkfeed($value);

        /*foreach ($newfeed as $f_index => $tmpfeed) {

                $newfeed[$f_index]['title_template'] = str_replace('{actor}','',$newfeed[$f_index]['title_template']);

                $newfeed[$f_index]['title_template']=stripslashes($newfeed[$f_index]['title_template']);

                $newfeed[$f_index]['title_template'] = preg_replace('/"/','\"',$newfeed[$f_index]['title_template']);



        }*/

}
复制代码
meetcom 发表于 2009-6-21 00:27:46 | 显示全部楼层
楼主,没有下载地址啊.谢谢呢
回复

使用道具 举报

霸气十足也 发表于 2009-6-21 01:23:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

m5921 发表于 2009-6-21 01:39:14 | 显示全部楼层
这贴要顶

http://www.gugefc.cn
回复

使用道具 举报

pizi234 发表于 2009-6-21 08:47:14 | 显示全部楼层
改小点就好了!
回复

使用道具 举报

wenqing_guo 发表于 2009-6-21 09:53:43 | 显示全部楼层
只想说,楼主辛苦了!!

http://www.5enjoy.cn
回复

使用道具 举报

dongguahehe 发表于 2009-6-21 10:47:13 | 显示全部楼层
整理的有点乱了
回复

使用道具 举报

chunkuan 发表于 2009-6-21 11:03:24 | 显示全部楼层
回复

使用道具 举报

yfxz 发表于 2009-7-15 00:46:27 | 显示全部楼层
回复

使用道具 举报

chinahire 发表于 2009-8-4 13:31:35 | 显示全部楼层
赶紧收藏起来!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-10 16:19 , Processed in 0.032286 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表