我正在爲我的畢業設計一個低價導航裝置,採用Android作爲操作系統免費離線地圖提供商(而不是OpenStreetMap的)
我試過自帶谷歌的地圖視圖控件,但它只能在線..
和-我當然要存儲離線導航地圖
所以..我想的地圖供應商(如OpenStreetMap的)認爲:
- 我可以使用離線
- 含檢索的街道名稱(不僅是渲染圖像)
- 用於商業用途
- 免費或以低廉的價格
與OpenStreetMap的問題,它不適合在大多數城市提供詳細的地圖埃及。
我正在爲我的畢業設計一個低價導航裝置,採用Android作爲操作系統免費離線地圖提供商(而不是OpenStreetMap的)
我試過自帶谷歌的地圖視圖控件,但它只能在線..
和-我當然要存儲離線導航地圖
所以..我想的地圖供應商(如OpenStreetMap的)認爲:
與OpenStreetMap的問題,它不適合在大多數城市提供詳細的地圖埃及。
Mobile Atlas Creator使用OpenStreetMap和Google地圖數據。它違反許可證和使用條款。請不要使用這個應用程序! – guerda
你想要類似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()
你希望'免費'和'用於商業用途',即有人應該投資金錢來開發你免費獲得的東西然後賣給人們?除了像OpenStreetMaps這樣的開源項目之外,您不會找到任何東西。你可以隨時提供埃及街道地圖 - 這是該項目的目的。 –
而且他還希望所有這些都能脫機工作,尤其是在android上?祝你好運。 你最好創建一個android應用程序來存儲OpenStreetMaps Images,並在離線狀態下使用它來進行ur grad程序。 –
@Traveling Tech Guy:Android是免費的..雖然我可以銷售設備使用Android 無論如何..我說免費**或以低廉的價格** ..因爲我的項目着眼於低成本 – Radian