virtualbox下 共享目录权限导致:npm ERR! ETXTBSY, rename ‘/home/vagrant/.npm/….
解决办法:
npm config set cache /var/.npm
or
直接修改缓存目录
npm config edit
virtualbox下 共享目录权限导致:npm ERR! ETXTBSY, rename ‘/home/vagrant/.npm/….
解决办法:
npm config set cache /var/.npm
or
直接修改缓存目录
npm config edit
运行yum命令查看MongoDB的包信息
um info mongo-10gen
(提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件
vi /etc/yum.repos.d/10gen.repo,输入下面的语句:
[10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0
做好yum源的配置后,如果配置正确执行下面的命令便可以查询MongoDB相关的信息:
查看mongoDB的服务器包的信息
yum info mongo-10gen-server
安装MongoDB的服务器端和客户端工具
yum install mongo-10gen-server yum install mongo-10gen
centos6.4 默认源,163源都不给力
安装Atomic源
wget -q -O – http://www.atomicorp.com/installers/atomic | sh
地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。
首先假设我们将需要索引的整个地图分成16×16的方格,如下图(左下角为坐标0,0 右上角为坐标16,16):
单纯的[x,y]的数据是无法建立索引的,所以MongoDB在建立索引的时候,会根据相应字段的坐标计算一个可以用来做索引的hash值,这个值叫做geohash,下面我们以地图上坐标为[4,6]的点(图中红叉位置)为例。
我们第一步将整个地图分成等大小的四块,如下图:
划分成四块后我们可以定义这四块的值,如下(左下为00,左上为01,右下为10,右上为11):
01 | 11 |
00 | 10 |
这样[4,6]点的geohash值目前为 00
然后再将四个小块每一块进行切割,如下:
这时[4,6]点位于右上区域,右上的值为11,这样[4,6]点的geohash值变为:0011
继续往下做两次切分:
最终得到[4,6]点的geohash值为:00110100
这样我们用这个值来做索引,则地图上点相近的点就可以转化成有相同前缀的geohash值了。
我们可以看到,这个geohash值的精确度是与划分地图的次数成正比的,上例对地图划分了四次。而MongoDB默认是进行26次划分,这个值在建立索引时是可控的。具体建立二维地理位置索引的命令如下:
db.map.ensureIndex({point : "2d"}, {min : 0, max : 16, bits : 4})
其中的bits参数就是划分几次,默认为26次。
Bucardo 是一个用 Perl 语言编写的 PostgreSQL的多Master节点复制系统
它支持任意方式的同步,以下是同步到mongodb的说明
参考:http://blog.endpoint.com/2011/06/mongodb-replication-from-postgres-using.html
有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它做得很复杂以至于找不到明显的缺陷。
一个人,一定要想清楚自己五年后要做什么,不要只看着眼前。
http://developer.baidu.com/map/jsdemo.htm
基础应用
1.创建地图: var map = new BMap.Map(“divid”);
2.创建坐标点:var point = new BMap.Point(“经度”,”纬度”);
3.设置视图中心点:map.centerAndZoom(point,size);
4.激活滚轮调整大小功能:map.enableScrollWheelZoom();
5.添加控件:map.addControl(new BMap.Xxx());
6.添加覆盖物:map.addOverlay();
控件介绍
1.NavigationControl:缩放地图的控件,默认在左上角;
2.OverviewMapControl:地图的缩略图的控件,默认在右下方;
3.ScaleControl:地图显示比例的控件,默认在左下方;
4.MapTypeControl:地图类型控件,默认在右上方;
1.标注:Marker
(1)在point处添加标注:var marker = new BMap.Marker(point);
(2)添加覆盖物:map.addOverlay(marker);
(3)激活标注的拖拽功能:marker.enableDragging();
(4)为标注添加事件:marker.addEventListener(“名称”,function(){
//点击标注后的事件
});
(5)删除覆盖物:map.removeOverlay(marker);
(6)销毁标注:marker.dispose();
2.信息窗口:InfoWindow
(1)在某个特定的位置创建一个信息窗口:var infowindow = new BMap.InfoWindow(“内容”,{width:250,height:100,title:”hello”});
(2)在地图中央打开信息窗口:map.openInfoWindow(infoWindow,map.getCenter());
获取坐标:
http://developer.baidu.com/map/static/doc/Reference_of_Baidu_JavaScript_API_v1.4.pdf
http://developer.baidu.com/map/static/doc/Guide_for_Baidu_JavaScript_API_v1.4.pdf
http://api.map.baidu.com/lbsapi/getpoint/index.html
http://api.map.baidu.com/lbsapi/creatmap/index.html
test code:
function initialize() { var map = new BMap.Map('map'); var point = new BMap.Point(112.550864,37.890277); map.centerAndZoom(point, 12); /* * 缩放控制按钮 * BMAP_NAVIGATION_CONTROL_LARGE 表示显示完整的平移缩放控件。 * BMAP_NAVIGATION_CONTROL_SMALL 表示显示小型的平移缩放控件。 * BMAP_NAVIGATION_CONTROL_PAN 表示只显示控件的平移部分功能。 * BMAP_NAVIGATION_CONTROL_ZOOM 表示只显示控件的缩放部分功能。 * */ var opts = {type: BMAP_NAVIGATION_CONTROL_ZOOM} map.addControl(new BMap.NavigationControl(opts)); /* * 那个破尺子 可以调整它所在的位置 * */ //var opts = {offset: new BMap.Size(15, 5)} //map.addControl(new BMap.ScaleControl(opts)); /* * 此类表示缩略地图控件 就是右下角的那个小地图 */ map.addControl(new BMap.OverviewMapControl()); /* * 显示其它类型的地图 三维 卫星 */ //map.addControl(new BMap.MapTypeControl()); //map.setCurrentCity("北京"); /* map.addEventListener('click', function(e){ alert(e.point); });*/ /* * 从这里我们标注地图 */ var icon = new BMap.Icon('pin.png', new BMap.Size(20, 32), { anchor: new BMap.Size(10, 30) }); var infowindow = new BMap.InfoWindow("内容",{width:250,height:100,title:"hello"}); //map.openInfoWindow(infowindow,map.getCenter()); var myLabel = new BMap.Label("海辉房产 21000元", //为lable填写内容 {offset:new BMap.Size(-60,-60), //label的偏移量,为了让label的中心显示在点上 position:point}); //label的位置 myLabel.setTitle("我是文本标注label"); //为label添加鼠标提示 map.addOverlay(myLabel); //把label添加到地图上 var circle = new BMap.Circle(point,5000); map.addOverlay(circle); var mkr =new BMap.Marker(point, { //icon: icon, enableDragging: true, raiseOnDrag: true }); map.addOverlay(mkr); mkr.addEventListener('dragend', function(e){ //这里可以把获取到的经纬度存到数据库里去 console.log(e.point.lng +', '+e.point.lat); }) } function loadScript() { var script = document.createElement("script"); script.src = "http://api.map.baidu.com/api?v=1.4&callback=initialize"; document.body.appendChild(script); } window.onload = loadScript;
两种数据
{"北京":["西城","东城","崇文","宣武","朝阳","海淀","丰台","石景山","门头沟","房山","通州","顺义","大兴","昌平","平谷","怀柔","密云","延庆"],"天津":["青羊","河东","河西","南开","河北","红桥","塘沽","汉沽","大港","东丽","西青","北辰","津南","武清","宝坻","静海","宁河","蓟县","开发区"],"河北":["石家庄","秦皇岛","廊坊","保定","邯郸","唐山","邢台","衡水","张家口","承德","沧州","衡水"],"山西":["太原","大同","长治","晋中","阳泉","朔州","运城","临汾"],"内蒙古":["呼和浩特","赤峰","通辽","锡林郭勒","兴安"],"辽宁":["大连","沈阳","鞍山","抚顺","营口","锦州","丹东","朝阳","辽阳","阜新","铁岭","盘锦","本溪","葫芦岛"],"吉林":["长春","吉林","四平","辽源","通化","延吉","白城","辽源","松原","临江","珲春"],"黑龙江":["哈尔滨","齐齐哈尔","大庆","牡丹江","鹤岗","佳木斯","绥化"],"上海":["浦东","杨浦","徐汇","静安","卢湾","黄浦","普陀","闸北","虹口","长宁","宝山","闵行","嘉定","金山","松江","青浦","崇明","奉贤","南汇"],"江苏":["南京","苏州","无锡","常州","扬州","徐州","南通","镇江","泰州","淮安","连云港","宿迁","盐城","淮阴","沐阳","张家港"],"浙江":["杭州","金华","宁波","温州","嘉兴","绍兴","丽水","湖州","台州","舟山","衢州"],"安徽":["合肥","马鞍山","蚌埠","黄山","芜湖","淮南","铜陵","阜阳","宣城","安庆"],"福建":["福州","厦门","泉州","漳州","南平","龙岩","莆田","三明","宁德"],"江西":["南昌","景德镇","上饶","萍乡","九江","吉安","宜春","鹰潭","新余","赣州"],"山东":["青岛","济南","淄博","烟台","泰安","临沂","日照","德州","威海","东营","荷泽","济宁","潍坊","枣庄","聊城"],"河南":["郑州","洛阳","开封","平顶山","濮阳","安阳","许昌","南阳","信阳","周口","新乡","焦作","三门峡","商丘"],"湖北":["武汉","襄樊","孝感","十堰","荆州","黄石","宜昌","黄冈","恩施","鄂州","江汉","随枣","荆沙","咸宁"],"湖南":["长沙","湘潭","岳阳","株洲","怀化","永州","益阳","张家界","常德","衡阳","湘西","邵阳","娄底","郴州"],"广东":["广州","深圳","东莞","佛山","珠海","汕头","韶关","江门","梅州","揭阳","中山","河源","惠州","茂名","湛江","阳江","潮州","云浮","汕尾","潮阳","肇庆","顺德","清远"],"广西":["南宁","桂林","柳州","梧州","来宾","贵港","玉林","贺州"],"海南":["海口","三亚"],"重庆":["渝中","大渡口","江北","沙坪坝","九龙坡","南岸","北碚","万盛","双桥","渝北","巴南","万州","涪陵","黔江","长寿"],"四川":["成都","达州","南充","乐山","绵阳","德阳","内江","遂宁","宜宾","巴中","自贡","康定","攀枝花"],"贵州":["贵阳","遵义","安顺","黔西南","都匀"],"云南":["昆明","丽江","昭通","玉溪","临沧","文山","红河","楚雄","大理"],"西藏":["拉萨","林芝","日喀则","昌都"],"陕西":["西安","咸阳","延安","汉中","榆林","商南","略阳","宜君","麟游","白河"],"甘肃":["兰州","金昌","天水","武威","张掖","平凉","酒泉"],"青海":["黄南","海南","西宁","海东","海西","海北","果洛","玉树"],"宁夏":["银川","吴忠"],"新疆":["乌鲁木齐","哈密","喀什","巴音郭楞","昌吉","伊犁","阿勒泰","克拉玛依","博尔塔拉"],"香港":["中西区","湾仔区","东区","南区","九龙-油尖旺区","九龙-深水埗区","九龙-九龙城区","九龙-黄大仙区","九龙-观塘区","新界-北区","新界-大埔区","新界-沙田区","新界-西贡区","新界-荃湾区","新界-屯门区","新界-元朗区","新界-葵青区","新界-离岛区"],"澳门":["花地玛堂区","圣安多尼堂区","大堂区","望德堂区","风顺堂区","嘉模堂区","圣方济各堂区","路氹城"]}
#! /bin/sh
chmod 777 d/ -Rf
chmod 777 s/ -Rf
chmod 777 search/ -Rf
chmod 777 html/ -Rf
chmod 777 index.html -Rf
chmod 777 e/data/ -Rf
chmod 777 e/install/ -Rf
chmod 777 e/admin/ebak/bdata/ -Rf
chmod 777 e/admin/ebak/zip/ -Rf
chmod 777 e/class/config.php
chmod 777 e/class/user.php
chmod 777 e/member/iframe/index.php
chmod 777 e/member/login/loginjs.php
chmod 777 e/pl/more/index.php
chmod 777 e/sch/index.php
chmod 777 e/tool/feedback/temp/ -Rf
chmod 777 e/tool/gbook/index.php