-
POSIX是什么意思
2021-03-29 14:46:27POSIX表示可移植操作系统接口(Portable Operating System Interface,缩写为POSIX),POSIX...换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执POSIX表示可移植操作系统接口(Portable Operating System Interface,缩写为POSIX),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。POSIX并不局限于UNIX。许多其它的操作系统,例如DEC OpenVMS支持POSIX标准,尤其是IEEE Std.1003.1-1990(1995年修订)或POSIX.1,POSIX.1提供了源代码级别的C语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为ISO/IEC 9945-1:1990标准。
-
这是什么意思
2008-01-21 09:45:50Sun周三宣布,该公司已经同MySQL达成最终协议,将以10亿美元收购这家开放源代码软件厂商。 2008-1-17 Oracle公司宣布,该公司已经同BEA达成协议,将以85亿美元收购后者,而BEA公司董事会也一致通过接受这一新...2008-1-17Sun周三宣布,该公司已经同MySQL达成最终协议,将以10亿美元收购这家开放源代码软件厂商。2008-1-17Oracle公司宣布,该公司已经同BEA达成协议,将以85亿美元收购后者,而BEA公司董事会也一致通过接受这一新的报价。看着很糊涂……转载于:https://blog.51cto.com/shuanglu/60065
-
java jdbc驱动的四种类型请问具体都是什么意思
2009-02-18 11:05:25type 1:jdbc-odbc桥 type 2:本地api驱动 type 3:网络协议驱动 ... 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码.( 本地数据库驱动代码是指 由数据库厂商提供的...type 1:jdbc-odbc桥
type 2:本地api驱动
type 3:网络协议驱动
type 4:本地协议驱动
Type 1: jdbc-odbc桥
Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api. 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码.( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 件)
jdbc-odbc桥 | odbc | 厂商DB代码---------------数据库Server
只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的.
但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的.而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的.因为,你不可能要求所有客户都能找到odbc driver.
=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。
Type 2: 本地Api驱动
本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库.
这种方法需要本地 数据库驱动代码. 本地api驱动 | 厂商DB代码---------------数据库Server (图二) 这种驱动比起jdbc-odbc桥执行效率大大提高了.但是,它仍然需要在客户端加载数据库厂商 提供的代码库.这样就不适合基于internet的应用.并且,他的执行效率比起3,4型的jdbc驱动 还是不够高.
Type3:网络协议驱动 这种驱动实际上是根据我们熟悉的三层结构建立的. jdbc先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器.如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法. 网络协议驱动---------中间件服务器------------数据库Server
由于这种驱动是基于server的.所以,它不需要在客户端加载数据库厂商提供的代码库.而且 他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中. 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好.
Type4 本地协议驱动
这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可 以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性. 本地协议驱动---------数据库Server
由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器.所 以它的执行效率是非常高的.而且,它根本不需要在客户端或服务器端装载任何的软件或驱动. 这种驱动程序可以动态的被下载.但是对于不同的数据库需要下载不同的驱动程序.
以上对四种类型的jdbc驱动做了一个说明.那么它们适合那种类型的应用开发呢?
Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 者了解jdbc编程也较适用. 对于那些需要大数据量操作的应用程序则应该考虑2,3,4型驱动.在intranet方面的应用可以 考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 的趋势是使用纯java.所以3,4型驱动也可以作为考虑对象. 至于基于internet方面的应用就只有考虑3,4型驱动了. 因为3型驱动可以把多种数据库驱 动都配置在中间层服务器.所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用. 4型驱动则适合那些连接单一数据库的工作组应用。
现在是纯java 开发,所以一般都用type4的jdbc driver。 -
java安卓百度地图查找便利店_Android 百度地图POI搜索功能实例代码
2021-03-15 10:56:54在没介绍正文之前先给大家说下poi是什么意思。由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思。今天下班之前,又看到了POI这三个字母,决定...在没介绍正文之前先给大家说下poi是什么意思。
由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思。今天下班之前,又看到了POI这三个字母,决定认认真真的搜索一些POI具体的含义。
POI是英文的缩写,原来的单词是point of interest, 直译成中文就是兴趣点的意思。兴趣点这个词最早来自于导航地图厂商。地图厂商为了提供尽可能多的位置信息,花费了很大的精力去寻找诸如加油站,餐馆,酒店,景点等目的地,这些目的地其实都可以理解成一个一个的POI(兴趣点)。POI除了指这些目的地的本身的信息,如电话,点评之外记录了目的地的经纬度,并能在电子地图上加以显示。这就是POI,以实用谷歌地图为例,我们搜索北京天安门,会有一个别针样子的东西在地图上表示这天安门的位置,点击会看到更多信息。其实这就是一个兴趣点。
兴趣点为什么很重要?现在电子地图的普及率越来越高,没有千千万万个兴趣点,我们不能很方便的搜索到我们想去的地方。POI已成为现在电子商务以及O2O不可或缺的一环。
一、简介
POI(Point of Interest),中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。
Android 百度地图POI搜索功能实例代码
百度地图SDK提供三种类型的POI检索:周边检索、区域检索和城市内检索。
l 周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行POI检索;
l 区域检索:在指定矩形区域内、根据关键词进行POI检索;
l 城市内检索:在某一城市内,根据用户输入的关键字进行POI检索;
自v3.6.1开始,城市poi检索返回结果新增门址类列表数据。例如:在“北京”搜索“上地十街1号”,除返回包含“上地十街1号”的poi列表以外,还包括地址为“上地十街1号”的明确门址。
具体来说,即PoiSearch类的SearchInCity(PoiCitySearchOption) 发起检索时返回的结果增加门址类数据。PoiResult中新增了GetAllAddr()获取门址类列表,当isHasAddrInfo() 返回true时,除了原poi列表外,还包含门址结果。
Android 百度地图POI搜索功能实例代码
POI详情检索是指根据POI的ID信息,检索该兴趣点的详情。
Android 百度地图POI搜索功能实例代码
在线建议查询是指根据关键词查询在线建议词。为了帮助开发者实现检索出来的关键词快速定位到地图上,SDK自3.5.0版本起,开放了检索结果的经纬度信息及对应POI点的UID信息。
注意:
a. 在线建议检索的本质是根据部分关键是检索出来可能的完整关键词名称,如果需要这些关键词对应的POI的具体信息,请使用POI检索来完成;
b. 在线检索结果的第一条可能存在没有经纬度信息的情况,该条结果为文字联想出来的关键词结果,并不对应任何确切POI点。例如输入“肯”,第一条结果为“肯德基”,这条结果是一个泛指的名称,不会带有经纬度等信息。
二、运行截图
简介:介绍关键词查询、suggestion查询和查看餐饮类Place详情页功能
详述:
(1)点击某些关键词查询后的结果(如“餐厅”)可跳转到Place详情页;
(2)提供suggestion查询进行联想查询,例如输入“天安门”则会弹出联想查询的列表;
本示例运行截图如下:
三、设计步骤
1、添加demo12_poisearch.xml文件
在layout文件夹下添加该文件,然后将代码改为下面的内容:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="在" >
android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="北京" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="市内找" >
android:id="@+id/searchkey"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.88"
android:text="餐厅" />
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal" >
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="12"
android:background="@drawable/button_style"
android:padding="10dip"
android:text="开始" />
android:id="@+id/map_next_data"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="12"
android:background="@drawable/button_style"
android:padding="10dip"
android:text="下一组数据" />
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.baidu.mapapi.map.TextureMapFragment" />
2、添加OverlayManager.cs文件
新建一个SrcOverlayUtil文件夹,在该文件夹下添加该文件。
说明:SrcOverlayUtil文件夹下的文件用于自定义一些基于基础覆盖而组合而成的高级覆盖物,包括用于显示poi数据,规划路线,公交详情路线的覆盖物等。
using Com.Baidu.Mapapi.Map;
using Com.Baidu.Mapapi.Model;
using System.Collections.Generic;
namespace BdMapV371Demos.SrcOverlayUtil
{
///
/// 提供一个能够显示和管理多个Overlay的基类。
/// 将覆盖物点击事件传递给OverlayManager后,OverlayManager才能响应点击事件。
/// 在MarkerClick事件中处理Marker点击事件。
///
public abstract class OverlayManager : Java.Lang.Object, BaiduMap.IOnMarkerClickListener, BaiduMap.IOnPolylineClickListener
{
BaiduMap mBaiduMap = null;
private List mOverlayOptionList = null;
protected List mOverlayList = null;
public OverlayManager(BaiduMap baiduMap)
{
mBaiduMap = baiduMap;
mBaiduMap.SetOnMarkerClickListener(this);
if (mOverlayOptionList == null)
{
mOverlayOptionList = new List();
}
if (mOverlayList == null)
{
mOverlayList = new List();
}
}
///
/// 重写此方法设置要管理的Overlay列表
///
///
public abstract List GetOverlayOptions();
///
/// 将所有Overlay 添加到地图上
///
public void AddToMap()
{
if (mBaiduMap == null)
{
return;
}
RemoveFromMap();
List overlayOptions = GetOverlayOptions();
if (overlayOptions != null)
{
mOverlayOptionList.AddRange(GetOverlayOptions());
}
foreach (OverlayOptions option in mOverlayOptionList)
{
mOverlayList.Add(mBaiduMap.AddOverlay(option));
}
}
///
/// 将所有Overlay从地图上消除
///
public void RemoveFromMap()
{
if (mBaiduMap == null)
{
return;
}
foreach (Overlay marker in mOverlayList)
{
marker.Remove();
}
mOverlayOptionList.Clear();
mOverlayList.Clear();
}
///
/// 缩放地图,使所有Overlay都在合适的视野内
/// 注: 该方法只对Marker类型的overlay有效
///
public void ZoomToSpan()
{
if (mBaiduMap == null)
{
return;
}
if (mOverlayList.Count > 0)
{
LatLngBounds.Builder builder = new LatLngBounds.Builder();
foreach (Overlay overlay in mOverlayList)
{
// polyline 中的点可能太多,只按marker缩放
if (overlay is Marker)
{
builder.Include(((Marker)overlay).Position);
}
}
mBaiduMap.SetMapStatus(MapStatusUpdateFactory
.NewLatLngBounds(builder.Build()));
}
}
public virtual bool OnMarkerClick(Marker marker)
{
return false;
}
public virtual bool OnPolylineClick(Polyline polyline)
{
return false;
}
}
}
3、添加PoiOverlay.cs文件
在SrcOverlayUtil文件夹下添加该文件。
using Android.OS;
using Android.Widget;
using Com.Baidu.Mapapi;
using Com.Baidu.Mapapi.Map;
using Com.Baidu.Mapapi.Search.Poi;
using System.Collections.Generic;
namespace BdMapV371Demos.SrcOverlayUtil
{
///
/// 显示一条公交详情结果的Overlay,继承自该类的子类可显示其他类型的Overlay
///
public class PoiOverlay : OverlayManager
{
private static readonly int MaxPoiSize = 10;
private PoiResult mPoiResult = null;
public PoiOverlay(BaiduMap baiduMap) : base(baiduMap)
{
}
///
/// 设置POI数据
///
/// POI结果数据
public void SetData(PoiResult poiResult)
{
this.mPoiResult = poiResult;
}
public override List GetOverlayOptions()
{
if (mPoiResult == null || mPoiResult.AllPoi == null)
{
return null;
}
List markerList = new List();
int markerSize = 0;
for (int i = 0; i < mPoiResult.AllPoi.Count && markerSize < MaxPoiSize; i++)
{
if (mPoiResult.AllPoi[i].Location == null)
{
continue;
}
markerSize++;
Bundle bundle = new Bundle();
bundle.PutInt("index", i);
markerList.Add(new MarkerOptions()
.InvokeIcon(BitmapDescriptorFactory.FromAssetWithDpi("Icon_mark"
+ markerSize + ".png")).InvokeExtraInfo(bundle)
.InvokePosition(mPoiResult.AllPoi[i].Location));
}
return markerList;
}
///
/// 获取该 PoiOverlay 的 poi数据
///
public PoiResult GetPoiResult()
{
return mPoiResult;
}
///
/// 重写此方法可改变默认点击行为
///
/// 被点击的poi在PoiResult.AllPoi中的索引
///
public virtual bool OnPoiClick(int i)
{
if (mPoiResult.AllPoi != null && mPoiResult.AllPoi[i] != null)
{
Toast.MakeText(BMapManager.Context,
mPoiResult.AllPoi[i].Name, ToastLength.Long).Show();
}
return false;
}
public override bool OnMarkerClick(Marker marker)
{
if (!mOverlayList.Contains(marker))
{
return false;
}
if (marker.ExtraInfo != null)
{
return OnPoiClick(marker.ExtraInfo.GetInt("index"));
}
return false;
}
public override bool OnPolylineClick(Polyline polyline)
{
return false;
}
}
}
4、添加Demo12PoiSearch.cs文件
在SrcSdkDemos文件夹下添加该文件,然后将代码改为下面的内容:
using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Support.V4.App;
using Android.Widget;
using BdMapV371Demos.SrcOverlayUtil;
using Com.Baidu.Mapapi.Map;
using Com.Baidu.Mapapi.Search.Core;
using Com.Baidu.Mapapi.Search.Poi;
using Com.Baidu.Mapapi.Search.Sug;
namespace BdMapV371Demos.SrcSdkDemos
{
///
/// 演示poi搜索功能
///
[Activity(Label = "@string/demo_name_poi",
ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden,
ScreenOrientation = ScreenOrientation.Sensor)]
public class Demo12PoiSearch : FragmentActivity
{
private PoiSearch mPoiSearch = null;
private SuggestionSearch mSuggestionSearch = null;
private BaiduMap mBaiduMap = null;
// 搜索关键字输入窗口
private AutoCompleteTextView keyWorldsView = null;
private ArrayAdapter sugAdapter = null;
private int load_Index = 0;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.demo12_poisearch);
// 初始化搜索模块,注册搜索事件监听
mPoiSearch = PoiSearch.NewInstance();
mPoiSearch.GetPoiResult += (s, e) =>
{
var result = e.P0;
if (result == null
|| result.Error == SearchResult.ERRORNO.ResultNotFound)
{
return;
}
if (result.Error == SearchResult.ERRORNO.NoError)
{
mBaiduMap.Clear();
PoiOverlay overlay = new MyPoiOverlay(this, mBaiduMap);
mBaiduMap.SetOnMarkerClickListener(overlay);
overlay.SetData(result);
overlay.AddToMap();
overlay.ZoomToSpan();
return;
}
if (result.Error == SearchResult.ERRORNO.AmbiguousKeyword)
{
// 当输入关键字在本市没有找到,但在其他城市找到时,返回包含该关键字信息的城市列表
string strInfo = "在";
foreach (CityInfo cityInfo in result.SuggestCityList)
{
strInfo += cityInfo.City;
strInfo += ",";
}
strInfo += "找到结果";
Toast.MakeText(this, strInfo, ToastLength.Long)
.Show();
}
};
mPoiSearch.GetPoiDetailResult += (s, e) =>
{
var result = e.P0;
if (result.Error != SearchResult.ERRORNO.NoError)
{
Toast.MakeText(this, "抱歉,未找到结果", ToastLength.Short).Show();
}
else
{
Toast.MakeText(this, "成功,查看详情页面", ToastLength.Short).Show();
}
};
mSuggestionSearch = SuggestionSearch.NewInstance();
mSuggestionSearch.GetSuggestionResult += (s, e) =>
{
var res = e.P0;
if (res == null || res.AllSuggestions == null) return;
sugAdapter.Clear();
foreach (SuggestionResult.SuggestionInfo info in res.AllSuggestions)
{
if (info.Key != null) sugAdapter.Add(info.Key);
}
sugAdapter.NotifyDataSetChanged();
};
keyWorldsView = FindViewById(Resource.Id.searchkey);
sugAdapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleDropDownItem1Line);
keyWorldsView.Adapter = sugAdapter;
TextureMapFragment map1 = FragmentManager.FindFragmentById(Resource.Id.map);
mBaiduMap = map1.BaiduMap;
// 当输入关键字变化时,动态更新建议列表
keyWorldsView.AfterTextChanged += (sender, e) => { };
keyWorldsView.BeforeTextChanged += (sender, e) => { };
keyWorldsView.TextChanged += (sender, e) =>
{
string s = e.Text.ToString();
if (s.Length <= 0) return;
string city = (FindViewById(Resource.Id.city)).Text;
// 使用建议搜索服务获取建议列表,结果在onSuggestionResult()中更新
mSuggestionSearch.RequestSuggestion(
new SuggestionSearchOption().Keyword(s).City(city));
};
Button btnSearch = FindViewById(Resource.Id.search);
btnSearch.Click += delegate
{
SearchButtonProcess();
};
Button btnNext = FindViewById(Resource.Id.map_next_data);
btnNext.Click += delegate
{
load_Index++;
SearchButtonProcess();
};
}
protected override void OnPause()
{
base.OnPause();
}
protected override void OnResume()
{
base.OnResume();
}
protected override void OnDestroy()
{
mPoiSearch.Destroy();
mSuggestionSearch.Destroy();
base.OnDestroy();
}
protected override void OnSaveInstanceState(Bundle outState)
{
base.OnSaveInstanceState(outState);
}
protected override void OnRestoreInstanceState(Bundle savedInstanceState)
{
base.OnRestoreInstanceState(savedInstanceState);
}
public void SearchButtonProcess()
{
EditText editCity = FindViewById(Resource.Id.city);
EditText editSearchKey = FindViewById(Resource.Id.searchkey);
mPoiSearch.SearchInCity(new PoiCitySearchOption()
.City(editCity.Text)
.Keyword(editSearchKey.Text)
.PageNum(load_Index));
}
private class MyPoiOverlay : PoiOverlay
{
Demo12PoiSearch poiSearchDemo;
public MyPoiOverlay(Demo12PoiSearch poiSearchDemo, BaiduMap baiduMap) :
base(baiduMap)
{
this.poiSearchDemo = poiSearchDemo;
}
public override bool OnPoiClick(int index)
{
base.OnPoiClick(index);
PoiInfo poi = GetPoiResult().AllPoi[index];
if (poi.HasCaterDetails)
{
poiSearchDemo.mPoiSearch.SearchPoiDetail(
new PoiDetailSearchOption().PoiUid(poi.Uid));
}
return true;
}
}
}
}
5、修改MainActivity.cs
在MainActivity.cs文件的demos字段定义中,去掉【示例12】下面的注释。
-
-
面向对象的三大特征:封装、继承和多态的简单概述
2021-01-05 16:48:52比如:电视机,我们只需要连接制造厂商给我们留的接口,用遥控器来操作它就可以了,没必要去看电视机的内部结构是什么样子,这就是封装。 该露的露,该藏的藏 1.我们的程序设计要追求“高内聚,低耦合”。高内聚:... -
微软的一个ndis驱动程序例子
2008-10-07 08:40:19NDIS 是什么?有什么作用? NDIS 的全称是 Network Device Interface Specification,中文意思就是网络设备接口规范。 根据 OSI 七层模型,物理层定义了对网卡、线缆以及其它物理硬件设备进行配置的标准。... -
-
-
-
-
-
Linux操作系统基础教程
2013-04-08 21:34:26什么是Linux?.................................................................................................................2 二.安装Linux的好处?..................................................... -
源自新浪的TCP性能分析工具Tcpdive.zip
2019-07-19 05:02:24之所以起这个名字,是因为dive有深入研究的意思:) Tcpdive具有一些特性,实际上也是我们的设计目标: 对TCP协议的性能进行较为全面的刻画,有助于发现瓶颈。 如此一来,就能找到痛点,不用再盲目地进行... -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-