在没有GPS / Mapkit的情况下显示两个位置之间的方向

时间:2014-01-08 10:42:11

标签: ios ios7

我有一张蓝图说明了商场的蓝图。

现在我想显示客户端的源和目标之间的方向。 我没有纬度和经度。例如,如果用户在商场的NIKE商店并想要去ADIDAS商店,我如何以图形方式向他展示NIKE-> ADIDAS的方向。

这样的事情(几乎和他们做的一样):

http://www.mobilefringe.com/products/square-one-shopping-center-app-for-iphone-and-android/

请帮助并指导我如何继续。

2 个答案:

答案 0 :(得分:2)

我不认为手动设置图形是可行的。这个任务失去了问题。

  • 你是如何从一个地方到另一个目的地获得整体区域的。距离多远?
  • 没有Lat Long如何知道那个特定的地方。
  • 没有gps / map你怎么知道目的地或你的位置在哪里是街道和转弯的地方。或者手动执行此操作的许多问题。

所以我强烈说这不可能手动。不使用gps / map

答案 1 :(得分:0)

首先,您必须从地址获取纬度和经度。一旦你得到这个,下面的链接将对你有用,其中还包含示例代码:

http://iosrider.wordpress.com/2012/05/09/draw-route-between-two-location/

另外,为了从地址获取lat,您可以使用以下代码:

- (CLLocationCoordinate2D) geoCodeUsingAddress:(NSString *)address
{
    double latitude = 0, longitude = 0;
    NSString *esc_addr =  [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
    NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
    if (result) {
        NSScanner *scanner = [NSScanner scannerWithString:result];
        if ([scanner scanUpToString:@"\"lat\" :" intoString:nil] && [scanner scanString:@"\"lat\" :" intoString:nil]) {
            [scanner scanDouble:&latitude];
            if ([scanner scanUpToString:@"\"lng\" :" intoString:nil] && [scanner scanString:@"\"lng\" :" intoString:nil]) {
                [scanner scanDouble:&longitude];
            }
        }
    }
    CLLocationCoordinate2D center;
    center.latitude = latitude;
    center.longitude = longitude;
    return center;
}