KR20060059167A - 위치 인지 모바일 디바이스 소프트웨어 개발 - Google Patents

위치 인지 모바일 디바이스 소프트웨어 개발 Download PDF

Info

Publication number
KR20060059167A
KR20060059167A KR1020050094256A KR20050094256A KR20060059167A KR 20060059167 A KR20060059167 A KR 20060059167A KR 1020050094256 A KR1020050094256 A KR 1020050094256A KR 20050094256 A KR20050094256 A KR 20050094256A KR 20060059167 A KR20060059167 A KR 20060059167A
Authority
KR
South Korea
Prior art keywords
map
location
interest
region
item
Prior art date
Application number
KR1020050094256A
Other languages
English (en)
Inventor
프랭크 만테크
이보 더블유. 살름레
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060059167A publication Critical patent/KR20060059167A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)
  • Traffic Control Systems (AREA)
  • Stored Programmes (AREA)

Abstract

개발 환경은 위치 인지 소프트웨어 어플리케이션을 개발하고 사용하는 것을 보다 용이하게 한다. 현재 개별적이고 복잡한 위치 정보 수집, 분석 및 표시 작업을 결합하여, 비전문가가 어플리케이션 내에 위치 서비스를 만들 수 있도록, 이들을 통합하는 것은 풍부한 위치 인지 소프트웨어 어플리케이션을 기록하는 개발자의 능력을 향상시킨다. 상위 레벨의 프로그래밍 모델은 프로그래머가 위치 정보를 가공하지 않은 위치 데이터라기 보다는 오히려 논리 엔티티로서 사용하도록 한다. 위치 데이터 스토어 및 지도 데이터 스토어는 디바이스상의 다른 위치 인지 어플리케이션에 의해 액세스될 수 있다. 자체의 데이터 스토어에 의존하는 각 위치 어플리케이션 대신에, 어플리케이션은 그들의 관련 정보를 공유할 수 있다.
어플리케이션, 데이터 스토어, 프로그래밍, 위치 정보

Description

위치 인지 모바일 디바이스 소프트웨어 개발{LOCATION AWARE MOBILE-DEVICE SOFTWARE DEVELOPMENT}
도 1 및 도 2는 본 발명의 예시적 실시예에 사용될 수 있는 예시적 컴퓨팅 디바이스이다.
도 3은 위치 인지 시스템이다.
도 4는 위치 인지 어플리케이션의 개발의 상호작용에 대한 상태도이다.
도 5는 예시적 관심 영역을 정의하는 것을 도시한다.
도 6은 위치 인지 어플리케이션에 의해 사용될 수 있는 예시적 지도를 나타낸다.
도 7은 위치 인지 어플리케이션에 대한 예시적 시뮬레이션 스크린샷이다.
도 8은 본 발명의 태양에 따른 위치 인지 개발 시스템을 일반적으로 나타내는 기능 블럭도이다.
<도면의 주요 부분에 대한 부호의 설명>
102: 프로세싱 유닛
104: 시스템 메모리
105: 운영 체제
106: 어플리케이션
107: 프로그램 데이터
109: 분리형 스토리지
110: 비분리형 스토리지
112: 입력 디바이스
114: 출력 디바이스
지난 몇 년 동안, 위치 정보를 이용하는 점점 더 많은 어플리케이션이 개발되었다. 이들 위치 어플리케이션의 중 몇몇은 지도 프로그램, 비행 추적 프로그램 및 네비게이션 프로그램을 포함한다. 이들 어플리케이션의 대부분은 모바일 컴퓨팅 디바이스용으로 개발되고 있다. 예를 들어, 사용자가 도시를 돌아다니는 것을 돕기 위해 차량 장착 내비게이션 시스템이 개발되었다. 또한, 몇몇 셀룰러 폰은 GPS 기반 네비게이션 프로그램을 포함한다. 그러나, 이들 어플리케이션을 개발하는 것은 매우 어렵다. 위치 지정 시스템은 전형적으로 위도 및 경도와 같은 위치 데이터만을 제공하며, 애플리케이션이 이러한 정보를 처리하고 해석할 것을 요구한다.
본 발명의 실시예들은 위치 인지 소프트웨어 애플리케이션을 개발하고 이용하는 것을 보다 용이하게 하는 시스템 및 방법에 관한 것이다. 현재 개별적이고 복잡한, 위치 정보 수집, 분석 및 표시 작업들을 결합하고, 비전문가들도 그들의 어플리케이션 내에 위치 및 맵핑 서비스를 만들 수 있도록 상기 작업들이 통합되도록 하는 것은 많은 위치 인지 소프트웨어 어플리케이션을 작성하는 개발자의 능력을 향상시킨다.
본 발명의 일 태양에 따르면, 위치 인지 어플리케이션을 만들기 위한 어플리케이션 프로그래밍 인터페이스(application programming interface)가 사용된다. 이러한 상위 레벨 프로그래밍 모델은 프로그래머가 단지 위도 및 경도와 같은 가공되지 않은 위치 데이터(raw location data)보다는 논리 엔티티(logical entity)와 같은 위치 정보를 사용하도록 하고자 한다. 위치 정보는 관심 영역으로 발췌된다. 또한 개발자는 그들 자신의 지도 렌더링 소프트웨어를 제작하는데 관심을 가질 필요가 없으며, 제3자에 의해 개발된 렌더링 엔진(rendering engine)을 사용할 수 있다.
본 발명의 다른 태양에 따르면, 이벤트 구동 프로그래밍 모델은 위치 인지 어플리케이션을 제작하는 데 사용된다. 이벤트는 관심 영역과 관련된 아이템의 위치에 응답하여 생성될 수 있다. 예를 들어, 프로그래머는 디바이스가 제1 관심 영역에 입장하는 경우 실행되는 하나의 루틴과, 디바이스가 제2 관심 영역에서 퇴장하는 경우 실행되는 다른 루틴을 지명할 수 있다.
본 발명의 또 다른 태양에 의하면, 위치 데이터 스토어는 다른 위치 인지 어플리케이션에 의해 액세스될 수 있다. 자체의 데이터 스토어에 의존하는 각 위치 어플리케이션 대신에, 어플리케이션은 그들의 위치 관련 정보를 공유할 수 있다.
본 발명의 다른 태양에 의하면, 공유된 지도는 다른 위치 인지 어플리케이션에 의해 액세스될 수 있다. 그 자체의 지도 스토어 및 지도 랜더링 기술에 의존하는 각 위치 어플리케이션 대신에, 어플리케이션은 지도 데이터 및 지도 렌더링 엔진의 공유된 저장소와 함께 작동할 수 있다.
일반적으로, 본 발명은 위치 인지 소프트웨어 어플리케이션을 개발하고 사용하는 것을 보다 용이하게 하는 방법 및 시스템을 제공하고자 하는 것이다. 현재 개별적이고 복잡한 위치 정보 수집, 분석 및 표시 작업을 결합하는 것과, 비전문가가 그들의 어플리케이션 내에 위치 서비스를 만들 수 있도록 그 작업들이 통합되게 하는 것은 많은 위치 인지 소프트웨어 어플리케이션을 작성하는 개발자의 능력을 향상시킨다.
위치 인지 개발 시스템의 예
도 3은 본 발명의 태양에 따른 위치 인지 시스템을 나타낸다. 위치 시스템(300)은 위치 관리자(320), 위치 인지 어플리케이션(330) 및 지도 관리자(340)를 포함한다. 위치 매니저는 위치 소스(3251-325N)에 결합된다. 지도 관리자는 지도 스토어(342), 지도 생성기(344) 및 지도 웹 서비스(346)에 결합된다.
위치 관리자(320)는 온 또는 오프 디바이스 위치 소스(3251-325N)로부터 위치 정보를 수신하고, 위치 인지 어플리케이션(330)에 제공되는 위치 이벤트 내에 위치 정보를 발췌한다. 위치 소스는 아이템에 관한 위치 정보를 제공할 수 있는 어떤 것일 수 있다. 예를 들어, 위치 소스는 GPS 수신기일 수 있다. 이와 달리, 위치 소스는 아이템의 위치를 나타내는 사용자 입력일 수 있다. 예를 들어, 사용자는 디바이스상의 사용자 입력을 통해 그들이 어떤 위치에 있다는 것을 나타낼 수 있다. 사용자는 키패드, 터치 스크린, 음성 인식 등을 사용하여 그들의 디바이스 내에 위치를 입력할 수 있다. 다른 위치 소스는 시뮬레이트 위치 소스일 수 있다. 어플리케이션(330)을 테스트하기 위해 필드 내에 있어야 하는 개발자 대신에, 그들은 시뮬레이트 위치 데이터를 사용할 수 있다. 다른 위치 소스는 RFID 태그일 수 있다. 각 위치 소스는 위치 데이터의 상이한 분석을 제공할 수 있다. 예를 들어, 몇몇 위치 소스는 매우 정확할 수 있지만, 다른 위치 소스는 주변, 도로 위 등에 대해서만 정확할 수 있다.
위치 소스는 가까운 또는 먼 위치 소스에 대응할 수 있다. 가까운 위치 소스(proximate location source)는, GPS 수신기 또는 네트워크 정보로부터 그 위치를 얻는 모바일 디바이스 자체를 포함하는 위치 생성 하드웨어에 대응할 수 있으며, 이에 한정되는 것은 아니다. 먼 위치 소스(distant location source)는 원격 네트워크 소스로부터 푸쉬(push)되거나 풀(pull)되는 위치 정보(예를 들어, 내 친구의 차의 위치와 함께 도착한 푸쉬된 SMS 메세지, 또는 웹 요청을 통해 반환된(풀 된)위치 정보)에 대응한다. 가까운 또는 먼 위치 소스 모두는 발췌 논리 엔티티(abstract logical entities)로서 취급된다. 이는 많은 상이한 종류의 위치 정보에 대해 유사한 프로그래밍 모델을 만든다.
일단 위치 데이가 수신되면, 위치 관리자(320)는 어플리케이션(330)과 관련 된 어떤 위치 이벤트가 트리거(trigger)되는지를 판정한다. 위치 소스(330)로부터 어플리케이션(330)에 단지 가공되지 않은 위치 데이터(raw location data)를 제공할 수 있는 것 대신에, 위치 관리자(320)는 관심 영역에 입장하거나 퇴장하는 것과 같이, 관심 영역과의 몇몇 논리 관계를 갖는 아이템의 발생 시, 위치 이벤트를 제공한다.
일반적으로, 관심 영역은 위치 데이터의 발췌(도 5 및 관련 논의 참고)를 제공한다. 관심 영역은 임의의 영역과 연관될 수 있고, 실내 또는 실외일 수 있다. 예를 들어, 내부 위치는 고정 자산(가령, 회의실) 및/또는 유동 자산(가령, 사람, 사무실 장비, 재고품)의 위치를 나타내는데 사용될 수 있다.
외부 관심 영역은 도시 블럭, 빌딩 주변 영역 또는 몇몇 다른 지표이거나, 몇몇 다른 사전정의된 영역일 수 있다. 또한, 외부 관심 영역은 유동 자산(자동차 또는 사람)일 수 있다.
가공되지 않은 위치 데이터를 해석해야 하는 어플리케이션 대신, 어플리케이션(330)은 관심 영역에 대한 아이템의 관련성에 기초하여 위치 이벤트에 대해 등록한다. 소정의 위치 이벤트의 발생 시, 위치 관리자(320)는 어플리케이션에 통지한다. 그 시점에, 어플리케이션(330)은 위치 이벤트를 조정하기 위해 개발된 이벤트 구동 코드 루틴을 실행한다.
위치 인지 어플리케이션(340)은 일반적인 위치 이벤트에 대응한다. 위치 이벤트의 발생 시, 위치 인지 어플리케이션(330)은 가중 기준의 세트를 지도 관리자(340)에 제공한다. 예를 들어, 가중 기준은 어플리케이션이 그린 지도상에 표시할 수 있 수는 객체의 세트와 함께 제시된 지도 해상도를 포함할 수 있다. 또한, 어플리케이션은, 현재 지도의 상위에 있기를 원하는 객체를 제공할 수 있다. 지도의 이벤트 구동 렌더링에 대응하는 어플리케이션 외에도, 어플리케이션은 자기 구동될 수도 있다. 예를 들어, 어플리케이션은 주기적으로 정보를 "풀"하여 새로운 지도가 되게 하는 타이머를 구비할 수 있다. 이벤트 구동 응답을 "푸시"하는 것 외에도, 어플리케이션은 데이터를 "풀"할 수 있고, 동작(action)을 취할 수 있다
지도 관리자(340)는, 지도 및 위치 정보를 조정하는 방법에 관하여 상세히 알 필요가 없도록, 어플리케이션으로부터 지도 정보를 발췌할 수 있다. 복잡한 지도 렌더링 코드를 포함해야 하는 어플리케이션 대신에, 어플리케이션은 지도 관리자(340)에게 표시되는 지도의 이름 및 유형을 제공한다. 지도 생성기(344)는 어떤 하나의 어플리케이션, 또는 렌더링 엔진에 얽매이지 않는다. 예를 들어, 하나의 렌더링 엔진은 벡터 기반일 수 있지만, 다른 렌더링 엔진은 비트맵 기반일 수 있다. 위치 인지 어플리케이션(330)에는 지도 생성기(344)와 상호작용하기 위한 인터페이스가 제공된다.
지도 관리자(340)는, 지도 코드를 실행하는 방법의 세부를 알아야 하는 어플리케이션(330) 없이, 위치 인지 어플리케이션에 많은 특징의 세트를 제공한다. 예를 들어, 어플리케이션(330)이 사용자로 하여금 지도상의 영역을 지적하도록 허용하고, 다음으로 그 데이터가 위도 및 경도, 또는 내부 맵의 경우 내부 좌표 시스템으로 전환되기를 원하는 경우를 가정할 수 있다. 지도 관리자(340)는 그 정보를 어플리케이션(330)에 제공한다. 지도 관리자(340)는 어플리케이션(330)과 지도 렌 더링 기술 사이에 브로커로서 동작하며, 어플리케이션에 기능을 제공한다. 기능 중 몇몇은 디바이스 상의 X/Y 스크린 좌표를 지도상에 위도/경도/고도 지도 좌표로 맵핑하는 것을 포함한다. 예를 들어, 사용자는 그들의 위치를 입력하기 위해 현재 지도를 나타내는 스크린을 클릭할 수 있다. 사용자 입력에 응답하여, 지도 관리자는 X/Y 스크린 위치를 위도/경도/고도 지도 위치에 맵핑할 수 있다. 유사하게, 지도 관리자(340)는 위도/경도/고도 지도 데이터를, 어플리케이션이 현재 표시된 지도의 상부에 동적으로 존재하도록 하는 X/Y 스크린 위치에 맵핑할 수 있다. 스키 영역 지도와 같은, 몇몇 지도 렌더링에서의 고도는 X/Y 위치에 상당히 영향을 미칠 수 있다. X/Y 좌표를 위도/경도/고도 좌표로 변환하는 많은 방법이 존재할 수 있다. 일반적으로, 지도 관리자는 X/Y 스크린 좌표를 수신하고, 좌표를 지도에 매칭하며, 다음으로, 지도의 축적에 기초하여, 투영 기술 및 지도 경계가 위도/경도/고도 좌표를 제공한다. 어플리케이션은 지도 자체가 렌더링되는 방법 또는 어떤 "투영 기술"이 사용되는지를 이해할 필요가 없다. 메르카토르(Mercator) 투영, 원통(Cylindrical) 투영, 극(Polar) 투영, 그리드(Grid) 투영 및 주문형 투영 기술(스키 영역 지도, 스타디움 좌석 지도 등)과 같은 고전적인 지도 투영 기술을 포함하는 많은 상이한 지도 투영 기술이 가능하며, 이에 한정되지 않는다. 어플리케이션은 이음매 없이 상이한 투영 기술 사이를 이동할 수 있다.
또한, 지도 관리자(340)는 이용가능한 지도의 세트에 관한 상위 레벨 이벤트를 어플리케이션(330)에 제공한다. 이들 이벤트는, 가령 어플리케이션에 의해 요구되는 기준에 맞는, 이용가능한 몇몇 지도가 존재할 경우, 어플리케이션 중요 정 보를 제공한다. 어플리케이션(330)은 표시를 위해 하나의 지도를 사용하는 것에 한정되지 않는다. 예를 들어, 하나의 어플리케이션은 하나의 시간 주기동안 거리 지도를 사용할 수 있고, 다음으로 다른 시간 동안 지하철 지도(예를 들어, 버스 경로, 지하철 터널 등을 나타냄)를 사용할 수 있다. 지도 관리자(340)는 적합성의 순서에 따라 지도를 분류한다. 어플리케이션(330)에 의해 제공된 기준에 맞는, 이용가능한 지도가 없지만, 지도 관리자(340)가 기준 중 몇몇에 맞는 지도를 둘 수 있는 경우에는, 이들 지도가 제공될 수 있다.
또한, 지도 관리자(340)는 디바이스상에 새로운 지도의 동적 제공을 허용한다. 지도는 언제든지 디바이스에 다운로드될 수 있다. 예를 들어, 새로운 지도는, 새로운 통행 경로가 추가된 경우, 공공 전송 어플리케이션을 위해 다운로드될 수 있다. 일 실시예에 따르면, 이들 지도는 두 개의 파일을 사용하여 나타나지는데, 하나는 지도 관리자에 대해 이진(binary)이고 불투명(opaque)한 것이고 하나는 지도 관리자가 이해하는 것이다. 일 실시예에 따르면, 지도는 XML 파일을 사용하여 표현된다. 지도 관리자는 XML 파일을 판독할 수 있고 지도를 디바이스상 로컬 데이터 스토어에 부가하는데 필요한 정보를 얻을 수 있다. 또한, 지도는 개발자에 의해 또는 다른 소스를 통해 지도 스토어에 부가될 수 있다.
다음은 예시적 XML 표현이다.
Figure 112005056736129-PAT00001
MapProjection은 지도를 표시하는데 사용되는 기술을 나타낸다. 이 특정 예에서, 지도 투영 유형은 단순한 격자형이다. MeterPerPixel은 지도의 평균 해상도와 관련된다. MapInfoClass는 이 지도에 관한 질문에 응답할 필요가 있는 고객 클래스가 존재하는지에 관한 것이다. 이 필드는 개발자로 하여금 고객 클래스를, 이 지도가 표시되는 때에 호출될 수 있는 프로그래밍 환경 내에 포함하도록 한다. 유사하게, CustomMapRender는 고객 렌더링 엔진이 지도를 그릴 필요가 있는지에 관한 것이다. MapFileName 필드는 지도 렌더링 엔진이 지도를 그리기 위해 사용되는 정보를 포함하는 이진 파일명에 관한 것이다. SimpleLatLongRectangle은 필드는 위도 및 경도 좌표에 의해 정의된 직사각형인 지도를 식별한다.
다음 예는 사용되는 고객 필드를 나타낸다.
Figure 112005056736129-PAT00002
지도 관리자(340)는 어플리케이션(30)에 의해 사용될 수 있는 지도 스토어(342) 내에 디바이스상에서 이용가능한 다수의 지도를 구비할 수 있다. 지도 관리자(340)는 지도 스토어(342) 내에 디바이스상에서 이용가능한 지도의 세트를 검색하여 사용될 최상의 지도를 찾는다. 선택된 후, 최적의 지도가 선택되고 렌더링된다.
도 4는 본 발명의 태양에 따른, 위치 인지 어플리케이션의 개발을 위한 상호작용의 상태도를 나타낸다.
상태(410)에서 시작하여, 지리학적 관심 영역이 정의된다. 관심 영역의 선택은 위치 인지 어플리케이션이 배치되기 전 또는 후에 발생할 수 있다. 또한, 이 정보는 언제든지 디바이스로 송출될 수 있다. 관심 영역은 지도와 관련된 소정의 영역이다. 관심 영역은 정의가능한 임의의 크기일 수 있다. 예를 들어, 관심 영역은 크기가 평방미터이거나 국가 전체일 수 있다. 관심 영역은 위치 인지 어플리케이션의 필요성에 기초하여 정의된다. 예를 들어, 개발된 위치 인지 어플리케이션이 어린이가 학교를 떠나서 집에 돌아갈 때를 결정한다고 가정해 보자. 이 특별한 예에서, 관심 영역은 학교 및 아이의 집을 포함하여 다른 관심 영역일 수 있다. 몇몇 관심 영역은 개발자에 의해 선택될 수 있지만, 다른 관심 영역은 사용자에 의해 선택될 수 있다. 예를 들어, 상술한 예와 같은, 많은 어플리케이션은 어플리케이션이 사용자에게 제공된 후에 구성된다. 상술한 예에서, 부모는 관심 영역을 선택할 수 있다.
상태 420은 지도 및 지도 서버의 선택을 나타낸다. 개발자는 시스템 내에서 이용가능한 지도들 사이에서 선택할 수 있거나, 그들 자신의 지도를 생성할 수 있다. 본 발명의 일 실시예에 따라서, 이용가능한 지도는, 상이한 위치 인지 어플리케이션이 동일한 지도를 사용할 수 있도록 위치 어플리케이션들 끼리 공유될 수 있다. 이러한 방식으로, 각각의 위치 인지 어플리케이션은 그들 자신의 지도를 개발할 필요가 없다. 대부분의 경우, 지도 렌더링의 상세 특성은 위치 인지 어플리케이션의 개발자로부터 감추어진다. 상태 440에서, 개발자가 그들 자신의 렌더링 소프트웨어를 포함하기를 원한다면, 그들은 그들의 렌더링 소프트웨어를 환경 내에 통합할 수 있다.
또한 상태 440에서, 개발자는 렌더링에 대한 그들의 선호도를 설정할 수 있다. 예를 들어, 개발자는 어플리케이션의 일 부분에 대해 벡터 기반 렌더링 엔진을 사용하고, 어플리케이션의 다른 부분에 대해 비트맵 기반 시스템을 사용하고자 할 수 있다. 지도 엔진은 많은 상이한 소스에 의해 제공될 수 있다. 엔진을 만들기 원하는 개발자는 프로그래밍 인터페이스에 맞는 지도 엔진을 제공할 수 있다. 각 지도 엔진은 개발 시스템 내에 플러그인(plug-in)된다.
단계 430에서, 개발자는 관심 영역과 관련된 이벤트에 대응하여 실행되는 이벤트 기반 위치 코드를 그들의 어플리케이션 내에 프로그램한다. 이러한 이벤트 기반 코드는 개발되는 위치 인지 어플리케이션의 유형에 의존하며 상이한 유형의 데이터를 포함할 수 있다. 예를 들어, 프로그램은, 사용자가 소정의 위치에 이르렀을 때, 동작을 수행한다. 상기 어린이를 추적하는 예에서, 예시적 경로는 그 특정 시간에 어린이의 위치에 기초하여, 집 또는 학교를 조명하도록 프로그램될 수 있다. 또한, 개발자는 이벤트에 응답하여 아이템을 지도상에 위치시킬 수 있다.
단계 450에서, 위치 인지 어플리케이션은 실제 및/또는 시뮬레이션 위치 소스를 이용하여 테스트될 수 있다. 시스템은, 어플리케이션이 필드 내에서 우리 앞에 놓여지기 전에 테스트될 수 있도록 위치 소스의 시뮬레이터를 제공한다. 시뮬레이트된 데이터 소스는 개발자 이벤트 기반 위치 코드가 위치 이벤트를 발생할 때 테스트되도록 한다. 시뮬레이트된 위치 소스 데이터의 다른 사용은 이전에 기록된 실세계 위치 데이터(real-world location data)를 "재생(playback)"하는 것이다. 이는 어플리케이션 개발, 테스팅 및 디버깅(debugging)에 유용하다.
도 5는 본 발명의 태양에 따라, 관심 영역을 정의하는 것을 예시적으로 나타낸다. 도 5에 도시된 바와 같이, 두 개의 관심 영역이 정의되어 있다. 관심 영역 #1은 타원형 경계 영역에 의해 정의되고, 관심 영역 #2는 직사각형 경계에 의해 정의된다. 관심 영역이 소정의 기하학적 형상을 이용하여 정의되었지만, 관심 영역은 영역을 정의하는 어떤 다른 방법에 의해 더 많이 정의될 수 있다. 예를 들어, 관심 영역은 주변, 지역, 어떤 길 사이의 영역 등으로서 정의될 수 있다. 본 발명의 일 실시예에 따르면, 개발자는 관심 영역을 나타내기 위해 소정 형상의 세트를 사용한다. 또한, 사용자는 지도상의 지점을 선택하여 그 지점으로부터 관심 영역까지 확장하는 반경을 제공할 수 있다. 또한, 관심 영역은 위도 및 경도 좌표를 사용하여 설정될 수 있다.
도 5에 도시된 지도는 도로를 포함하는 도시 지도를 나타내지만, 지도는 어떤 유형의 지도일 수 있다. 예를 들어, 지도는 스키 지도, 산림, 공원, 골프 코스 및 빌딩 층 개요의 지도, 스타디움 좌석 지도 등일 수 있다. 상술한 바와 같이, 관심 영역이 정의되었을 때, 이벤트는 영역에 입장하거나 영역에서 퇴장하는 것에 기초하여 트리거링될 수 있다.
도시되지는 않았지만, 관심 영역은 소정 유형의 위치일 수 있다. 예를 들어, 위치 인지 어플리케이션은 커피숍 또는 영화 극장에 인접할 때를 아는 것에 관심이 있을 수 있다. 이러한 특정 예에서, 시스템에 의해 공지된 각각의 커피숍 또는 영화 극장이 관심 영역일 수 있다. 보다 많은 커피숍이 이용가능하게 됨에 따라, 그들의 위치는, 어플리케이션이 그들을 인지하도록, 어플리케이션에 동적으로 추가될 수 있다. 다른 위치 인지 어플리케이션은 관심 영역을 특정 가게, 스프츠 경기장, 버스 정류소, 사무용 빌딩 등으로서 정의할 수 있다.
도 6은 본 발명의 태양에 따라, 위치 인지 어플리케이션에 의해 사용될 수 있는 예시적 지도를 나타낸다. 도시된 바와 같이, 이들 지도는 위도 및 경도에 의해 정의된 간단한 직사각형으로 정의된다. 4개의 지도의 각각은 상부 좌측 위도 및 경도와 하부 우측 위도 및 경도를 포함한다. 도 3에 관하여 상술한 바와 같이, 지도는 많은 다른 방법으로 정의될 수 있다. 어떠한 위치 인지 어플리케이션도 적절한 때에 표시를 위해 이들 지도를 이용할 수 있다.
도 7은 본 발명의 태양에 따른 예시적인 위치 인지 어플리케이션용 시뮬레이션 스크린샷을 나타낸다. 시뮬레이터 내에서, 작고 보다 섬세한 뷰(view)와 광범위하고 전체적인 뷰를 포함하는 2개의 지도 뷰가 표시된다. 원형 영역 및 정사각형 영역에 의해 표시되는 소정의 관심 영역이 지도상에 도시된다. 시뮬레이트된 이동이 영역에 입장하거나 퇴장할 때, 개발자는 그들이 개발한 적절한 코드가 적절하게 동작하는 지를 판정할 수 있다.
동작 환경의 예
도 1을 참조하면, 본 발명의 실시하기 위한 하나의 예시적인 시스템은 컴퓨팅 디바이스(100)와 같은 디바이스를 포함한다. 매우 기본적인 구성으로서, 컴퓨팅 디바이스(100)는 전형적으로 적어도 하나의 처리부(102) 및 시스템 메모리(104)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 유형에 따르면, 시스템 메모리(104)는 휘발성(예를 들어, RAM), 비휘발성(예를 들어, ROM, 플래시 메모리 등) 또는 그 둘의 조합일 수 있다. 시스템 메모리(104)는 전형적으로 운영 체제(105), 하나 이상의 어플리케이션(106)을 포함하며, 프로그램 데이터(107)를 포함할 수 있다. 일 실시예에서, 어플리케이션(106)은 모바일 디바이스용 위치 인지 시스템을 만들 때 사용되는 위치 인지 프로그래밍 인터페이스(120)를 포함할 수 있다. 이 위치 인지 프로그래밍 인터페이스는 지도 선택, 관리 및 렌더링 인터페이스와 함께 통합된다. 이러한 기본적 구성은 파선 내의 이들 구성 요소에 의해 도 1에 도시되어 있다.
컴퓨팅 디바이스(100)는 부가적인 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(100)는 가령, 자기 디스크, 광 디스크 또는 테이프와 같은 추가 데이터 스토리지 디바이스(분리형 및/또는 비분리형)도 포함할 수 있다. 그러한 추가 스토리지는 도 1에서 분리형 스토리지(109) 및 비분리형 스토리지(110)로 나타나 있다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보 저장을 위한 어떤 방법이나 기술로 실시될 수 있는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 시스템 메모리(104), 분리형 스토리지(109) 및 비분리형 스토리지(110)는 모두 컴퓨터 스토리지 매체의 예이다. 컴퓨터 스토리지 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 원하는 정보를 저장하고 컴퓨팅 디바이스(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하며, 이에 한정되지 않는다. 그러한 임의의 컴퓨팅 스토리지 매체는 디바이스(100)의 일부일 수 있다. 또한, 컴퓨팅 디바이스(100)는 키보드, 마우스, 음성 입력 디바이스, 터치 입력 디바이스 등과 같은 입력 디바이스(112)일 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(114)도 포함될 수 있다.
또한, 컴퓨팅 디바이스(100)는 상기 디바이스가 가령, 네트워크를 통해, 다른 컴퓨팅 디바이스(118)와 통신하도록 하는 통신 접속(116)을 포함한다. 통신 접속(116)은 통신 매체의 일례이다. 전형적으로 통신 매체는 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메카니즘와 같은 변조 데이터 신호 내의 다른 데이터에 의해 구현되며, 어떤 정보 전송 매체를 포함한다. "변조 데이터 신호"라는 용어는 정보를 신호로 인코딩하는 것과 같이 설정 또는 변화된 하나 이상의 특성을 갖는 신호를 의미한다. 예에 의하면, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체와, 음파, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하며, 이에 한정되는 것은 아니다. 본 명세서에서 사용되는 컴퓨터 판독 매체는 스토리지 매체 및 통신 매체 모두를 포함한다.
도 2는 본 발명의 일 예시적 실시예에 사용될 수 있는 모바일 컴퓨팅 디바이스를 나타낸다. 도 2를 참조하면, 본 발명을 실시하기 위한 하나의 예시적 시스템은 모바일 컴퓨팅 디바이스(200)와 같은 모바일 컴퓨팅 디바이스를 포함한다. 모바일 컴퓨팅 디바이스(200)는 프로세서(260), 메모리(262), 디스플레이(228) 및 키패드(232)를 포함한다. 일반적으로 메모리(262)는 휘발성(예를 들어, RAM) 및 비휘발성(예를 들어, ROM, 플래시 메모리 등)을 포함한다. 모바일 컴퓨팅 디바이스(200)는 마이크로소프트사로부터의 Windows CE 운영 체제, 또는 다른 운영 체제와 같은 운영 체제(264)를 포함하는데, 이는 메모리(262) 내에 상주하며 프로세서(260)을 실행한다. 키패드(232)는 (전형적인 전화기상의 것과 같은) 누름형 버튼 숫자 다이얼링 패드, (통상의 키보드와 같은) 다중 키 키보드일 수 있다. 디스플레이(228)는 LCD(liquid crystal display), 또는 모바일 컴퓨팅 디바이스 내에 통상 사용되는 어떤 다른 유형의 디스플레이일 수 있다. 디스플레이(228)는 터치감지형일 수 있으며, 입력 디바이스로서도 동작할 것이다.
위치 어플리케이션(266)과 같은 하나 이상의 어플리케이션 프로그램이 메모리(262) 내에 로딩되고 운영 시스템(264) 상에서 구동된다. 하나 이상의 위치 인지 어플리케이션(266)은 모바일 컴퓨팅 디바이스(200)상에 상주하며, 위치 기반 어플리케이션과 관련된 인스트럭션을 수행하기 위해 프로그램된다. 위치 인지 어플리케이션은 디바이스의 하드웨어 또는 소프트웨어 내에 상주한다. 또한, 모바일 컴퓨팅 디바이스(200)는 메모리(262) 내에 휘발성 및 비휘발성 스토리지를 포함한다. 또한 메모리(262)는 위치 기반 정보를 저장하기 위해 사용되는 위치 데이터 스토어(268)와 지도 기반 정보를 맵핑하는데 사용되는 지도 스토어(269)를 포함한다. 위치 스토어(268)는 디바이스상의 모든 위치 인지 어프리케이션(266)에 의해 사용될 수 있는 위치를 저장하기 위한 전역적 설비이다. 또한, 지도 스토어(269)는 디바이스 상의 모든 위치 인지 어플리케이션(266)에 의해 사용될 수 있는 지도 정보를 저장하기 위한 전역적 설비이다. 일 실시예에 따르면, 리포지토리(repository)(268)는 위치 및 지도 정보의 디바이스상 캐쉬이다. 모바일 디바이스(200)상에는 하나 이상의 위치 스토어가 존재할 수 있다. 예를 들어, 비밀 및 공개 위치 데이터 스토어가 존재할 수 있다.
모바일 컴퓨팅 디바이스(200)는 하나 이상의 배터리로 구현될 수 있는 전원(270)을 포함한다. 전원(270)은 AC 아답터 또는 배터리를 보충하고 재충전하는 전력 도킹 크레이들(powered docking cradle)과 같은 외부 전력 소스를 더 포함할 수 있다.
모바일 컴퓨팅 디바이스(220)는 두 유형의 선택적 외부 통지 메카니즘, 즉, LED(240) 및 오디오 인터페이스(274)로 도시되어 있다. 이들 디바이스는 전원(270)에 직접적으로 연결되어, 활성화될 경우, 프로세서(260) 및 다른 컴포넌트가 배터리 전력을 보존하기 위해 폐쇄되더라도 통지 메카니즘에 의해 지시되는 주기 동안 잔존한다. 오디오 인터페이스(274)는 사용자에 가청 신호를 제공하고, 사용자로부터 가청 신호를 수신하는데 사용된다. 예를 들어, 오디오 인터페이스(274) 는 전화 대화를 용이하게 하기 위해서와 같이, 가청 출력을 제공하는 스피커와 가청 신호를 수신하는 마이크에 연결될 수 있다.
또한, 모바일 컴퓨팅 디바이스(200)는 무선 인터페이스층과 같이, 통신을 송신 및 수신하는 기능을 수행하는 통신 접속을 포함한다. 통신 접속(272)은 모바일 컴퓨팅 디바이스(200)와 외부 세계 사이의 무선 접속성을 용이하게 한다. 일 실시예에 따라, 통신 접속(272)으로의 송신 및 통신 접속으로부터의 송신은 운영 체제(264)의 제어 하에서 수행된다.
도 8은 본 발명의 태양에 따른, 일반적인 위치 인지 개발 시스템(800)을 나타내는 기능 블럭도이다. 서버(810) 및 컴퓨팅 디바이스(830)는 도 1과 관련하여 상술된 바와 같은 컴퓨팅 디바이스이며, 모바일 디바이스(820)는 도 2와 관련하여 상술한 바와 같은 모바일 컴퓨팅 디바이스다.
전형적으로, 사용자는 컴퓨팅 디바이스(830)와 같은 컴퓨팅 디바이스를 이용하여 위치 인지 시스템을 개발한다. 그러나 위치 인지 어플리케이션은 모바일 디바이스(820)와 같은 모바일 디바이스를 사용하여 개발될 수 있다. 위치 인지 프로그래밍 환경(832)은, 위치 인지 어플리케이션을 개발하기 위해, 개발자에게 프로그래밍 인터페이스의 세트를 제공하도록 구성된다. 어플리케이션(832)은 서버(810)과 통신하도록 구성된다. 일 실시예에 따르면, 서버(810)는 컴퓨팅 디바이스(830)에 위치 스토어(812)로부터의 위치 정보 및 지도 스토어(813)로부터의 지도 정보를 제공하도록 구성된다. 또한, 서버(810)는 또는 모바일 디바이스는, 위치 인지 어플리케이션을 개발하는 동안 위치 소스를 시뮬레이션하도록 구성된다. 예를 들어, 시뮬레이트된 위치 소스는 모바일 디바이스상에서 구동될 수 있고, GPS 소스 등의 입력을 시뮬레이션할 수 있다. 컴퓨팅 디바이스는 몇몇 클라이언트 서버 프로토콜 중 어느 하나를 이용하여 통신할 수 있다.
모바일 디바이스(820)는 위치 인지 프로그래밍 환경(832)을 이용하여 개발된 위치 인지 어플리케이션(822)을 포함한다. 하나 이상의 위치 인지 어플리케이션은 디바이스(820)상에 포함될 수 있다. 모바일 디바이스(822)에 N개의 위치 소스(8211-821N)가 부착된다. 상술한 바와 같이 온 및 오프 디바이스인 이들 위치 소스는 위치 데이터를 위치 어플리케이션(822)에 제공한다. 위치 스토어(824)는 디바이스(820)상에 모든 위치 인지 어플리케이션에 의해 액세스될 수 있는 위치 정보를 포함한다. 지도 스토어(825)는 디바이스(820)상에 모든 위치 인지 어플리케이션에 의해 액세스될 수 있는 지도 정보를 포함한다. 예를 들어, 위치 스토어(824) 및 지도 스토어(825)는 지도, 렌더링 엔진, 및 어플리케이션을 통해 공유될 수 있는 어떤 다른 정보를 포함할 수 있다.
셀룰러/페이저 네트워크(850)는 무선 디바이스에 메세지를 전송하고 무선 디바이스로부터 메세지를 수신하는 것을 책임지는 네트워크이다. 셀룰러/페이저 네트워크(850)는 무선 및 유선 구성 요소 모두를 포함할 수 있다. 예를 들어, 셀룰러/페이저 네트워크는 유선 전화네트워크에 링크된 셀룰러 타워를 포함할 수 있다. 전형적으로, 셀룰러 타워는 셀폰, 장거리 통신 링크 등에 또는 그들로부터 통신을 한다. 또한, 무선 디바이스는 모바일 디바이스에 점점 더 유용한 Wi-Fi 카드를 사 용하여 WAN, LAN 등에 직접 접속할 수 있다.
게이트웨이(860)는 셀룰러/페이저 네트워크(850)와 WAN/LAN(840) 사이에 메세지를 라우팅한다. 예를 들어, 컴퓨터 사용자는 셀룰러 폰에 어드레싱되는 메세지를 전송할 수 있다. 게이트웨이(860)는 WAN/LAN(840)으로부터 셀룰러/페이저 네트워크(850)로 메세지를 전송하는 수단을 제공한다. 반대로, 셀룰러 네트워크에 접속된 디바이스를 가진 사용자는 웹을 브라우징할 수 있다. 게이트웨이(860)는 하이퍼링크 텍스트 프로토콜(HTTP) 메세지가 WAN/LAN(840) 및 셀룰러/페이저 네트워크(850) 사이에 전송되도록 할 수 있다.
상기 상세한 설명, 예 및 데이터는 본 발명의 제조 및 구성의 사용에 대한 완전한 설명을 제공한다. 본 발명의 많은 실시예는 본 발명의 사상 및 범주로부터 벗어남이 없이 이루어질 수 있으며, 본 발명은 이하 첨부된 청구범위에 존재한다.
본 발명에 의하면, 현재 분리되고 복잡한 위치 정보 수집, 분석 및 디스플레이 작업을 결합하는 것과, 비전문가가 그들의 어플리케이션 내에 위치 서비스를 만들 수 있도록 그 작업들이 통합되게 함으로써, 비싼 위치 인지 소프트웨어 어플리케이션을 기록하는 개발자의 능력이 향상된다.

Claims (31)

  1. 위치 인지 어플리케이션을 위한 시스템에 있어서,
    디바이스상의 다른 위치 인지 어플리케이션에 의해 공유될 수 있는 지도 정보(map information) 및 위치 정보(location information)를 포함하는 데이터 스토어(a data store)와,
    아이템의 위치를 포함하는 적어도 하나의 위치 소스(location source)로부터 위치 정보를 수신하고, 관심 영역(an area of interest)과 관련된 상기 아이템의 위치에 응답하여, 위치 이벤트(a location event)를 생성하도록 구성된 위치 관리자(a location manager)와,
    상기 데이터 스토어에 연결되고, 상기 지도 정보를 발췌하고 지도 표시를 포함하는 지도 동작(map operations)을 관리하도록 구성된 지도 관리자(a map manager) - 상기 지도 관리자는 하나 이상의 지도 렌더링 엔진(a map rendering engine)을 이용할 수 있음 - 와,
    상기 위치 관리자 및 상기 지도 관리자에 연결되고, 상기 위치 이벤트에 응답하여 이벤트 구동 코드(event driven code)를 실행하며 상기 발췌된 지도 정보와 상호작용하도록 구성된 위치 인지 어플리케이션(a location aware application)
    을 포함하는 시스템.
  2. 제1항에 있어서,
    상기 데이터 스토어는 위치 스토어 및 지도 스토어를 포함하고,
    상기 위치 스토어는 지도에 관한 정보를 포함하고, 상기 위치 스토어는 관심 영역에 관한 정보를 포함하는 시스템.
  3. 제1항에 있어서,
    상기 적어도 하나의 위치 소스는 가까운 위치 소스와 먼 위치 소스 중 적어도 하나를 포함하는 시스템.
  4. 제3항에 있어서,
    상기 적어도 하나의 위치 소스는 GPS 수신기, 사용자 입력, 전화 시스템, RFID 태그 및 네트워크상의 디바이스로 푸쉬(push)되거나 상기 디바이스에 의해 풀(pull)되는 위치 데이터를 포함하는 그룹으로부터 선택되는 시스템.
  5. 제3항에 있어서,
    상기 위치 관리자는 1 내지 N 아이템에 대한 위치 정보를 관리하도록 더 구성되는 시스템.
  6. 제1항에 있어서,
    상기 위치 이벤트의 생성은, 상기 아이템의 위치가 상기 관심 영역에 입장했는지에 대한 판정, 상기 아이템의 위치가 상기 관심 영역에서 퇴장했는지에 대한 판정 및 상기 위치 소스가 상기 관심 영역 내로 이동했는지에 대한 판정을 포함하는 이벤트 중 적어도 하나에 응답하여 위치 이벤트 생성을 포함하는 시스템.
  7. 제1항에 있어서,
    상기 위치 인지 어플리케이션은 상기 지도 관리자에게 제시된 지도 해상도(a suggested map resolution)를 제공하도록 더 구성된 시스템.
  8. 제1항에 있어서,
    상기 지도 관리자는 사용자 입력을 수신하고, 상기 사용자 입력을 지도상의 위치로 변환하도록 더 구성된 시스템.
  9. 제7항에 있어서,
    상기 위치 인지 어플리케이션은 상기 지도 관리자에게 적어도 하나의 객체를 제공하여 지도상에 표시하도록 구성된 시스템.
  10. 제9항에 있어서,
    상기 지도 관리자는 상기 위치 인지 어플리케이션에 지도의 세트를 제공하고,
    상기 위치 인지 어플리케이션은 가중 기준(weighted criteria)에 기초하여 상기 제공된 지도의 세트로부터 표시하기 위해 상기 지도를 결정하는 시스템.
  11. 제1항에 있어서,
    상기 데이터 스토어는 동적으로 제공되도록 더 구성된 시스템.
  12. 제11항에 있어서,
    상기 지도 정보는 XML 리프리젠테이션(representation)을 사용하는, 각 지도의 디스크립션(description)을 포함하는 시스템.
  13. 제11항에 있어서,
    상기 디스크립션은 지도 투영, 해상도, 상기 지도 및 상기 지도가 포함하는 영역을 표시하기 위해 사용되는 상기 지도 렌더링 엔진의 지시(indication)를 포함하는 시스템.
  14. 위치 인지 어플리케이션을 위한 컴퓨터 실행 방법에 있어서,
    아이템이 관심 영역 내에 입장, 퇴장 및 이동하는 때를 판정하는 단계와,
    상기 판정에 응답하여 위치 이벤트를 생성하는 단계와,
    상기 이벤트에 응답하여, 위치 인지 어플리케이션에 의해 제공된 이벤트 구동 코드(event driven code)를 실행하는 단계와,
    다른 위치 인지 어플리케이션에 의해 공유될 수 있는 지도를 지도 스토어로부터 선택하는 단계와,
    적어도 두 개의 지도 렌더링 엔진으로부터 선택된 지도 렌더링 엔진을 사용하여 상기 지도를 표시하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    지도상에서 사전정의된 영역인 관심 영역을 정의하는 단계를 더 포함하는 방법.
  16. 제15항에 있어서,
    상기 아이템이 관심 영역에 입장 및 퇴장하는 때를 판정하는 단계는,
    적어도 하나의 위치 소스로부터 위치 정보를 취득하는 단계와,
    상기 아이템이 상기 관심 영역 내에 존재하는 지를 판정하는 단계
    를 더 포함하는 방법.
  17. 제15항에 있어서,
    상기 위치 이벤트를 생성하는 단계는, 상기 아이템위 위치가 상기 관심 영역 내에 입장했는지에 대한 판정, 상기 아이템의 위치가 상기 관심 영역에서 퇴장했는지에 대한 결정 및 상기 아이템의 위치가 상기 관심 영역 내의 특정 거리만큼 이동했는지에 대한 판정과 같은 이벤트 중 적어도 하나에 응답하여 위치 이벤트를 생성하는 단계를 포함하는 방법.
  18. 제15항에 있어서,
    상기 지도상에 중첩되도록 상기 지도 렌더링 엔진에 적어도 하나의 객체를 제공하는 단계를 더 포함하는 방법.
  19. 제15항에 있어서,
    상기 지도 스토어를 동적으로 제공하는 단계를 더 포함하는 방법.
  20. 제15항에 있어서,
    상기 지도는 XML 리프리젠테이션을 사용하는 상기 지도의 디스크립션을 포함하는 방법.
  21. 제20항에 있어서,
    상기 디스크립션은 지도 투영, 해상도, 상기 지도 및 상기 지도가 포함하는 영역을 표시하는데 사용되는 상기 지도 렌더링 엔진의 지시를 포함하는 방법.
  22. 위치 인지 어플리케이션을 위한 컴퓨터 판독가능 인스트럭션을 구비한 컴퓨터 판독가능 매체에 있어서, 상기 인스트럭션은,
    관심 영역을 정의하는 단계와,
    위치 소스로부터 아이템의 위치를 취득하고, 다른 위치 인지 어플리케이션에 의해 공유될 수 있는 위치 스토어 내에 상기 위치를 저장하는 단계와,
    상기 아이템이 상기 관심 영역 중 하나 내에 존재하는 때를 판정하는 단계와,
    상기 아이템이 상기 관심 영역 중 하나 내에 존재한다는 것이 판정된 때, 위치 이벤트를 생성하는 단계와,
    상기 위치 이벤트에 응답하여, 위치 인지 어플리케이션과 관련된 이벤트 구동 코드를 실행하는 단계와,
    다른 위치 인지 어플리케이션에 의해 공유될 수 있는 지도를 지도 스토어로부터 선택하는 단계와,
    적어도 두 개의 지도 렌더링 엔진으로부터 선택된 지도 렌더링 엔진을 사용하여 상기 지도를 표시하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  23. 제22항에 있어서,
    상기 위치 인지 어플리케이션이 배치된 후, 상기 관심 영역을 정의하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  24. 제23항에 있어서,
    상기 아이템이 상기 관심 영역 외부에 존재하는 때를 판정하고, 상기 아이템이 외부에 존재하는 것에 응답하여, 상기 위치 이벤트를 생성하는 단계를 더 포함 하는 컴퓨터 판독가능 매체.
  25. 제22항에 있어서,
    상기 지도상에 중첩되도록 상기 지도 렌더링 엔진에 적어도 하나의 객체를 제공하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  26. 제22항에 있어서,
    상기 지도 스토어를 동적으로 제공하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  27. 제22항에 있어서,
    상기 지도는 XML 리프리젠테이션을 사용하는 상기 지도의 디스크립션을 포함하는 컴퓨터 판독가능 매체.
  28. 제27항에 있어서,
    상기 디스크립션은 지도 투영, 해상도, 상기 지도 및 상기 지도가 포함하는 영역을 표시하는데 사용되는 상기 지도 렌더링 엔진의 표시를 포함하는 컴퓨터 판독가능 매체.
  29. 제22항에 있어서,
    상기 지도 스토어로부터 상기 지도를 선택하는 단계는, 상기 위치 인지 어플리케이션으로부터 수신한 가중 기준에 응답하여 최적의 지도를 판정하는 단계를 포함하는 컴퓨터 판독가능 매체.
  30. 제22항에 있어서,
    상기 지도 렌더링 엔진을 사용하여 상기 지도를 표시하는 단계는, 렌더링된 지도의 유형에 따라 지도 렌더링 엔진들 사이에서 스위칭하는 단계를 포함하는 컴퓨터 판독가능 매체.
  31. 제30항에 있어서,
    상기 지도 렌더링 엔진을 사용하여 지도를 표시하는 단계는, 상기 렌더링되는 지도의 유형에 따라, 투영 기술을 선택하는 단계 - 상기 투영 기술은 메르카토르(Mercator), 폴라(Polar), 그리드(Grid) 및 코스톰(Custom) 중 적어도 두 개의 투영 기술로부터 선택됨 - 를 포함하는 컴퓨터 판독가능 매체.
KR1020050094256A 2004-11-26 2005-10-07 위치 인지 모바일 디바이스 소프트웨어 개발 KR20060059167A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/998,081 US7627425B2 (en) 2004-11-26 2004-11-26 Location aware mobile-device software development
US10/998,081 2004-11-26

Publications (1)

Publication Number Publication Date
KR20060059167A true KR20060059167A (ko) 2006-06-01

Family

ID=35844842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050094256A KR20060059167A (ko) 2004-11-26 2005-10-07 위치 인지 모바일 디바이스 소프트웨어 개발

Country Status (5)

Country Link
US (3) US7627425B2 (ko)
EP (1) EP1662407A3 (ko)
JP (1) JP4938284B2 (ko)
KR (1) KR20060059167A (ko)
CN (1) CN1779682B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434961B1 (ko) * 2014-04-25 2014-09-01 (주)엔디씨에스 위치 기반 어플리케이션을 개발하는 방법 및 장치

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627425B2 (en) * 2004-11-26 2009-12-01 Microsoft Corporation Location aware mobile-device software development
US7739038B2 (en) 2004-12-17 2010-06-15 Information Patterns Llc Methods and apparatus for geo-collaboration
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
US7519470B2 (en) * 2006-03-15 2009-04-14 Microsoft Corporation Location-based caching for mobile devices
CN100423597C (zh) * 2006-06-08 2008-10-01 ***通信集团公司 嵌入移动终端的地图引擎及移动终端地图平台
US20080129487A1 (en) * 2006-11-30 2008-06-05 Crucs Holdings, Llc System and method for managing characteristics of a domain occupied by individuals
US20080133653A1 (en) * 2006-12-05 2008-06-05 Qualcomm Incorporated Apparatus and methods of providing and presenting representations of communication events on a map
US8364293B2 (en) * 2007-02-07 2013-01-29 Skyhawke Technologies, Llc Situation-neutral golf metrics systems and methods
JP4513833B2 (ja) * 2007-07-17 2010-07-28 株式会社デンソー 車両用衝突検知装置
US8583079B2 (en) 2007-08-14 2013-11-12 Mpanion, Inc. Rich presence status based on location, activity, availability and transit status of a user
US8489111B2 (en) 2007-08-14 2013-07-16 Mpanion, Inc. Real-time location and presence using a push-location client and server
US8050690B2 (en) * 2007-08-14 2011-11-01 Mpanion, Inc. Location based presence and privacy management
US8433296B2 (en) 2009-05-01 2013-04-30 Ryan Hardin Exclusive delivery of content within geographic areas
US20100311401A1 (en) * 2009-06-09 2010-12-09 Sprint Communications Company L.P. Communication session transfer from one communication device to another based on location correlated to time
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US20110191662A1 (en) * 2010-01-29 2011-08-04 Poteet Ii David Crawford Travel guides formed by aggregation of location-aware content from multiple publishers through a unified interface
US8239840B1 (en) * 2010-03-10 2012-08-07 Google Inc. Sensor simulation for mobile device applications
JP5520651B2 (ja) * 2010-03-24 2014-06-11 株式会社ナビタイムジャパン 経路案内システム、経路探索サーバ、端末装置および経路案内方法ならびにナビゲーション装置
JP5870603B2 (ja) * 2011-10-12 2016-03-01 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
CN103079163B (zh) * 2011-10-25 2016-08-03 高德软件有限公司 基于位置的信息分享方法、装置及***
JP5613721B2 (ja) * 2012-05-18 2014-10-29 株式会社日立製作所 テスト支援システム、テスト支援方法、及びプログラム
US20140067477A1 (en) * 2012-08-28 2014-03-06 Ebay, Inc. Systems and Methods for Shopping Trend Alert
US20140171116A1 (en) * 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
US9471693B2 (en) * 2013-05-29 2016-10-18 Microsoft Technology Licensing, Llc Location awareness using local semantic scoring
CN103294477B (zh) * 2013-06-14 2018-02-13 北京新学堂网络科技有限公司 使用Office文档进行移动开发项目管理的方法
US9741022B2 (en) 2014-02-26 2017-08-22 Blazer and Flip Flops, Inc. Parental controls
WO2015130971A1 (en) 2014-02-26 2015-09-03 Blazer And Flip Flops, Inc. Dba The Experience Engine, Inc. Increasing customer monetization
US9448085B2 (en) 2014-02-26 2016-09-20 Blazer and Flip Flops, Inc. Live branded dynamic mapping
CA2942543C (en) * 2014-03-15 2023-08-22 Urban Engines, Inc. Solution for highly customized interactive mobile maps
JP6097243B2 (ja) * 2014-03-26 2017-03-15 株式会社オプティム アプリインストールシステム、アプリインストール方法及びプログラム
US11526916B2 (en) 2015-04-28 2022-12-13 Blazer and Flip Flops, Inc. Intelligent prediction of queue wait times
US10515100B2 (en) * 2014-09-25 2019-12-24 School Maps Online Llc Systems and methods for interactive boundary mapping
WO2016172731A1 (en) 2015-04-23 2016-10-27 Blazer And Flip Flops, In. Dba The Experience Engine Targeted venue message distribution
US9906909B2 (en) 2015-05-01 2018-02-27 Blazer and Flip Flops, Inc. Map based beacon management
WO2017100801A1 (en) 2015-12-07 2017-06-15 Blazer and Flip Flops, Inc. dba The Experience Engine Wearable device
US10372194B2 (en) * 2016-02-09 2019-08-06 International Business Machines Corporation Optimizing use of location services in mobile applications to improve battery consumption
EP3819780A4 (en) * 2018-08-29 2021-07-28 Sony Group Corporation INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
US20200133439A1 (en) * 2018-10-31 2020-04-30 International Business Machines Corporation Chat session dynamic user interface

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848373A (en) * 1994-06-24 1998-12-08 Delorme Publishing Company Computer aided map location system
US6148261A (en) * 1997-06-20 2000-11-14 American Calcar, Inc. Personal communication system to send and receive voice data positioning information
JP3893696B2 (ja) * 1997-10-24 2007-03-14 カシオ計算機株式会社 通信端末装置
US6266614B1 (en) * 1997-12-24 2001-07-24 Wendell Alumbaugh Travel guide
US6252544B1 (en) * 1998-01-27 2001-06-26 Steven M. Hoffberg Mobile communication device
US6233448B1 (en) * 1998-07-22 2001-05-15 Ericsson Inc. System, method and apparatus for automatic feature activation/deactivation based upon positioning
SE520822C2 (sv) 1999-02-17 2003-09-02 Telia Ab System för presentation av användaranpassad positionsberoende information på terminalutrustning
US20040215387A1 (en) * 2002-02-14 2004-10-28 Matsushita Electric Industrial Co., Ltd. Method for transmitting location information on a digital map, apparatus for implementing the method, and traffic information provision/reception system
US6266595B1 (en) * 1999-08-12 2001-07-24 Martin W. Greatline Method and apparatus for prescription application of products to an agricultural field
US7457628B2 (en) * 2000-02-29 2008-11-25 Smarter Agent, Llc System and method for providing information based on geographic position
DE10016674A1 (de) * 2000-04-04 2001-10-18 Bosch Gmbh Robert Verfahren zur Ausgabe von Daten in einem Fahrzeug und Fahrerinformationsvorrichtung
US7076255B2 (en) * 2000-04-05 2006-07-11 Microsoft Corporation Context-aware and location-aware cellular phones and methods
US6456234B1 (en) * 2000-06-07 2002-09-24 William J. Johnson System and method for proactive content delivery by situation location
US6421608B1 (en) * 2000-07-12 2002-07-16 Ricoh Company Limited Method and system of remote position reporting device
US6380890B1 (en) * 2000-08-11 2002-04-30 Motorola, Inc. Information appliance system having a navigational position generator and method
US6671619B2 (en) 2000-08-16 2003-12-30 Alpine Electronics, Inc. Navigation device
CN1304849A (zh) 2000-11-07 2001-07-25 临汾铁路分局介休机务段经营公司 实现机车轮缘自动喷油润滑的方法
US6944679B2 (en) * 2000-12-22 2005-09-13 Microsoft Corp. Context-aware systems and methods, location-aware systems and methods, context-aware vehicles and methods of operating the same, and location-aware vehicles and methods of operating the same
US6493630B2 (en) * 2001-02-16 2002-12-10 Wizeguides.Com Inc. Bundled map guide
US6639522B2 (en) * 2001-02-22 2003-10-28 Rockwell Collins, Inc. System and method of automatically triggering events shown on aircraft displays
US7259694B2 (en) 2001-02-26 2007-08-21 International Business Machines Corporation Wireless communication system and method to provide geo-spatial related event data
US6477460B2 (en) * 2001-02-27 2002-11-05 Metro One Telecommunications, Inc. Process and system for the annotation of machine-generated directions with easily recognized landmarks and other relevant information
US20020163547A1 (en) * 2001-04-30 2002-11-07 Michael Abramson Interactive electronically presented map
KR20040047736A (ko) * 2001-10-25 2004-06-05 아이신에이더블류 가부시키가이샤 정보 표시 시스템
JP4004818B2 (ja) * 2002-02-28 2007-11-07 松下電器産業株式会社 位置情報伝達装置及び方法
US7221287B2 (en) * 2002-03-05 2007-05-22 Triangle Software Llc Three-dimensional traffic report
US7386318B2 (en) 2002-03-19 2008-06-10 Pitney Bowes Mapinfo Corporation Location based service provider
US7565155B2 (en) * 2002-04-10 2009-07-21 Networks In Motion Method and system for dynamic estimation and predictive route generation
US6697734B1 (en) * 2002-04-17 2004-02-24 Nokia Corporation System and method for displaying a map having two scales
AU2003223091A1 (en) * 2002-04-30 2003-11-17 Telmap Ltd. Dynamic navigation system
US7181227B2 (en) 2002-06-14 2007-02-20 Cingular Wireless Ii, Llc Data structures and methods for location-based services within a wireless network
US6978206B1 (en) 2002-06-21 2005-12-20 Infogation Corporation Distributed navigation system
JP2004030457A (ja) * 2002-06-27 2004-01-29 Aisin Aw Co Ltd 携帯情報端末
EP1569138A1 (en) * 2002-07-23 2005-08-31 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
JP3942987B2 (ja) * 2002-08-15 2007-07-11 アルパイン株式会社 ナビゲーションシステム、地図差分データの配信装置、及び車載用ナビゲーション装置
US6691032B1 (en) * 2002-09-09 2004-02-10 Groundspeak, Inc. System and method for executing user-definable events triggered through geolocational data describing zones of influence
US7027915B2 (en) 2002-10-09 2006-04-11 Craine Dean A Personal traffic congestion avoidance system
JP3975963B2 (ja) * 2003-04-28 2007-09-12 株式会社日立製作所 通信型ナビゲーションシステム
US7383316B2 (en) 2002-11-15 2008-06-03 Microsoft Corporation System and method for providing dynamic location information
DE60221262T2 (de) 2002-12-30 2008-01-03 Motorola, Inc., Schaumburg Positionsbestimmungssystem und -verfahren eines drahtlosen Kommunikationsgerätes
JP4236490B2 (ja) * 2003-03-18 2009-03-11 ぴあ株式会社 電子クーポン利用システムとそれを実現するためのコンピュータプログラムとその方法
JP2004301804A (ja) * 2003-04-01 2004-10-28 Nissan Motor Co Ltd ナビゲーション・システム
US7089109B2 (en) 2003-04-10 2006-08-08 Microsoft Corporation Comprehensive mapping data structures and methods for using the same
US6823256B1 (en) * 2003-05-06 2004-11-23 General Motors Corporation Method for associating real-time information with a geographical location
US20050122236A1 (en) * 2003-12-08 2005-06-09 Brauer R. K. Moving map information index
US7627425B2 (en) * 2004-11-26 2009-12-01 Microsoft Corporation Location aware mobile-device software development
US20120135744A1 (en) * 2009-07-21 2012-05-31 Kota Enterprises, Llc Systems and methods for generating and managing communication rules associated with geographic locations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434961B1 (ko) * 2014-04-25 2014-09-01 (주)엔디씨에스 위치 기반 어플리케이션을 개발하는 방법 및 장치

Also Published As

Publication number Publication date
US9128956B2 (en) 2015-09-08
JP4938284B2 (ja) 2012-05-23
EP1662407A2 (en) 2006-05-31
CN1779682B (zh) 2010-09-08
US20060116817A1 (en) 2006-06-01
EP1662407A3 (en) 2007-03-07
CN1779682A (zh) 2006-05-31
US20150382141A1 (en) 2015-12-31
US20100042320A1 (en) 2010-02-18
JP2006153863A (ja) 2006-06-15
US7627425B2 (en) 2009-12-01

Similar Documents

Publication Publication Date Title
JP4938284B2 (ja) 位置認識型モバイルデバイス用ソフトウェアの開発
KR101429298B1 (ko) 이동 장치를 위한 위치 기반 캐싱
Gartner et al. Location based services and telecartography
CN107209783A (zh) 自适应位置指示符
Jana et al. An event-driven university campus navigation system on android platform
Abraham Where Do We Go from Here?: Understanding Mobile Map Design
Anpat et al. Campus navigation on android platform
Jing et al. A development of mobile-based directory for UCSI University (UCSI Mobiletory)
Li et al. Mobile geographic information systems
Marshall Moving the museum outside its walls: An augmented reality mobile experience
Srinivasan Location based services to improve public transportation
Prashanth et al. Augmented reality-based campus navigation
Tavera Romero et al. Development and Impact of a Mobile Application that Allows Users to Track Their Location on an Educational Institution Campus, a Simulation Study.
Bhimavarapu et al. Navigatour: A Mobile tourist information system
Alikhani A GIS-based crowdsourcing iPhone Application to Report Necessities, Civic Issues, and Public Events
Jubaier et al. Study of a user-centered design approached to developing a local positioning system for smartphones
Monfort Muriach Information provision improvement with a geofencing event-based system
Mohd Nasir Mobile Campus Tour Guide for UTP
Gartner TeleCartography: A new means of GeoCommunication
Bjørneseth Mobile tourist guide
Abd Almahmoud et al. ANDROID MAPPING APPLICATION
Llahona González Design and implementation of an Android application to analyze the mobility patterns of citizens in Barcelona's Metropolitan Region
Gervais Dynamap, a mobile and context-aware pedestrian navigation application
LEGENTIL et al. Bus Router
Medagliaa et al. My Italy: Design and usability evaluation of an M-Tourism prototype

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee