Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 免费离线地图提供商(而非OpenStreetMap)_Android - Fatal编程技术网

Android 免费离线地图提供商(而非OpenStreetMap)

Android 免费离线地图提供商(而非OpenStreetMap),android,Android,我正在为我的毕业设计制作一款价格低廉的导航设备,使用Android作为操作系统 我尝试了本机的Google地图视图控件,但它只在网上起作用。 当然,我想存储离线导航的地图 所以。。我想要一个地图提供商(如OpenStreetMap),它可以: 我可以脱机使用 包含可搜索的街道名称(不仅仅是渲染图像) 商业用途 免费还是低价 OpenStreetMap的问题在于它没有为埃及的大多数城市提供详细的地图。如果你想要像MapDroyd这样的东西,也许可以和他们谈谈如何使用他们的代码 或者从这里获取O

我正在为我的毕业设计制作一款价格低廉的导航设备,使用Android作为操作系统

我尝试了本机的Google地图视图控件,但它只在网上起作用。
当然,我想存储离线导航的地图

所以。。我想要一个地图提供商(如OpenStreetMap),它可以:

  • 我可以脱机使用
  • 包含可搜索的街道名称(不仅仅是渲染图像)
  • 商业用途
  • 免费还是低价

OpenStreetMap的问题在于它没有为埃及的大多数城市提供详细的地图。

如果你想要像MapDroyd这样的东西,也许可以和他们谈谈如何使用他们的代码

或者从这里获取OpenStreetMap小部件 并添加缓存区域的方法。对于街道名称索引,您可以下载world.osm(或仅下载其中的一部分以节省时间),然后通过如下python脚本运行它:

(请注意,这需要做一些工作:它不处理重复的街道名称,因此您必须对其进行一些修改。它还可以查找酒吧和自动取款机。)


我发现。

你想要“免费”和“商业用途”,也就是说,有人应该投资开发你免费得到的东西,然后卖给别人?如果没有像OpenStreetMaps这样的开源项目,你什么都找不到。你可以随时提供埃及街道地图——这就是该项目的目的。他还希望所有地图都能离线工作,尤其是在android上?祝那个人好运。您最好创建一个android应用程序来存储OpenStreetMaps图像,并将其脱机用于您的grad项目。@Traveling Tech Guy:android是免费的。。尽管我可以销售使用Android的设备。。我说是免费还是低价。。因为我的项目重点是低成本Cost@ShawnMclean我已经知道有一个免费的程序可以下载OSM供离线使用。。就像contentDroid一样。。。但是OSM本身在埃及很差MapDroyd使用OSM的地图并且OSM本身在大多数城市都不提供详细的地图埃及的问题是关于OSM以外的提供商即使它在Android中没有API可处理,我可以做任何事情使它在AndroidSounds上工作,就像一个商业问题而不是编程问题一样。您可能希望尝试在映射论坛上询问,而不是stackoverflow。我很怀疑除了OSM之外,还会有其他免费的地图提供商。Mobile Atlas Creator使用OpenStreetMap和Google地图数据。它违反了许可和使用条款。请不要使用此应用程序!
#!/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()