2010-03-13 3 views
3

Я делаю для моего дипломного проекта в низкая цена навигационное устройство, используя Android в качестве операционной системыFree Offline Map Provider (и не OpenStreetMap)

Я попытался Map-View Control нативного Google, но он работает только Интернет ..
и, конечно, я хочу, чтобы хранить карты для автономного плавания

Так .. Я хочу поставщика карты (например, OpenStreetMap), что:

  • можно использовать в автономном режиме
  • содержат имена Searchable Street (не только выводимого изображения)
  • для коммерческого использования
  • бесплатно или по низкой цене

Проблема с OpenStreetMap, что она не предоставляет подробную карту для большинства городов Египет.

+2

Вы хотите «бесплатно» и «для коммерческого использования», то есть кто-то должен вкладывать деньги в разработку чего-то, что вы получаете бесплатно, а затем продаете людям? За исключением проекта с открытым исходным кодом, такого как OpenStreetMaps, вы ничего не найдете. И вы всегда можете вносить египетские уличные карты - это и есть цель этого проекта. –

+0

И он также хочет, чтобы все это работало в автономном режиме, esp на андроиде? удачи с этим человеком. Вам лучше создать приложение Android для хранения изображений OpenStreetMaps и использовать его в автономном режиме для ur grad proj. –

+2

@Traveling Tech Guy: Android бесплатный .. хотя я могу продать устройство, использующее Android в любом случае .. Я сказал бесплатно ** или по низкой цене ** .. поскольку мой проект фокусируется на низкой стоимости – Radian

ответ

2

Я нашел Mobile Atlas Creator.

+2

Мобильный Atlas Creator использует данные OpenStreetMap и Google. Это нарушает как лицензию, так и условия использования. Пожалуйста, не используйте это приложение! – guerda

3

Вы хотите что-то вроде MapDroyd, возможно, поговорите с ними об использовании своего кода.

В качестве альтернативы возьмите виджетов OpenStreetMap отсюда http://code.google.com/p/osmdroid/ и добавьте способ кэшировать регионы. Для индекса имени улицы вы можете загрузить world.osm (или просто часть его, чтобы сэкономить время), а затем запустить его через скрипт python следующим образом:

(Обратите внимание, что это требует некоторой работы: оно не обрабатывает дублировать названия улиц, так что вам придется изменить его немного. Он также считает, пабы и банкоматы.)

#!/usr/bin/python 

from xml.dom import pulldom 

doc = pulldom.parse("england.osm") 
#outFile = open("england.txt", "w") 

nodes = {} 
ways = {} 
pubs = [] 
atms = [] 

i = 0 
for event, node in doc: 
    if event == pulldom.START_ELEMENT: 
     if node.localName == "node": 
      doc.expandNode(node) 

      nodeID = node.getAttribute("id") 
      nodeLat = node.getAttribute("lat") 
      nodeLon = node.getAttribute("lon") 

      amenity = ""; 
      for tag in node.getElementsByTagName("tag"): 
       if tag.getAttribute("k") == "amenity": 
        amenity = tag.getAttribute("v") 

      nodes[int(nodeID)] = (float(nodeLat), float(nodeLon)) 

      if amenity == "pub": 
       pubs.append(int(nodeID)) 
      elif amenity == "atm" or amenity == "bank": 
       atms.append(int(nodeID)) 

     elif node.localName == "way": 
      doc.expandNode(node) 

      name = ""; 
      for tag in node.getElementsByTagName("tag"): 
       if tag.getAttribute("k") == "name": 
        name = tag.getAttribute("v") 
      if name == "": 
       continue; 

      wayName = name.encode("latin-1", "replace") 
      refList = [nd.getAttribute("ref") for nd in node.getElementsByTagName("nd")] 

      if ways.has_key(wayName): 
       ways[wayName].append([int(x) for x in refList]) 
      else: 
       ways[wayName] = [int(x) for x in refList] 

     i = i + 1 
     if i % 100 == 0: 
      print(i/100) 

print(nodes) 
print(ways) 
print(pubs) 
print(atms) 

#outFile.close() 
+0

MapDroyd использует Карты из OSM , а сам OSM не предоставляет подробные карты в большинстве городов. Египет Вопрос: о провайдере, отличном от OSM , даже если у него нет API для работы в Android, я могу сделать все возможное, чтобы это работало на Android – Radian

+0

Звучит скорее как бизнес-вопрос, чем программный. Возможно, вы захотите попробовать спросить на форуме сопоставления, а не в stackoverflow. Я серьезно сомневаюсь, что будут какие-либо бесплатные поставщики карт, кроме OSM. – Timmmm