Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Winrt xaml 在mapControl中绘制状态_Winrt Xaml - Fatal编程技术网

Winrt xaml 在mapControl中绘制状态

Winrt xaml 在mapControl中绘制状态,winrt-xaml,Winrt Xaml,我正在为windows Phone编写一个应用程序,我正在使用MapControl。 我希望能够用不同的颜色来描绘美国各州。 例如,红色的CA、蓝色的NV等 我想做一些形状和线条,但是我找不到在形状中使用的坐标来获得不同的状态 我还试着使用 var found = await MapLocationFinder.FindLocationsAsync("California", new Geopoint(new BasicGeoposition())); 但是它不适用于查找状态。最好的方法是从这

我正在为windows Phone编写一个应用程序,我正在使用MapControl。 我希望能够用不同的颜色来描绘美国各州。 例如,红色的CA、蓝色的NV等

我想做一些形状和线条,但是我找不到在形状中使用的坐标来获得不同的状态

我还试着使用

var found = await MapLocationFinder.FindLocationsAsync("California", new Geopoint(new BasicGeoposition()));

但是它不适用于查找状态。

最好的方法是从这个公共存储库下载GeoJSON文件

解析JSON并创建MapPolygon对象并将其添加到map

 public async void RenderState() {
        HttpClient client = new HttpClient();
        HttpResponseMessage response=await client.GetAsync(new Uri("https://raw.githubusercontent.com/johan/world.geo.json/master/countries/USA/CO.geo.json"));
        string json=response.Content.ToString();
        JObject obj = JObject.Parse(json);
        JObject poly = (JObject)obj["features"][0]["geometry"];
        JArray coords = (JArray)poly["coordinates"][0];
        MapPolygon polygon = new MapPolygon();
        List<BasicGeoposition> points = new List<BasicGeoposition>();
        foreach (JArray arr in coords) {
            points.Add(new BasicGeoposition() { Latitude = (double)arr[1], Longitude = (double)arr[0] });
        }

        //Remove last point as it is a duplicate
        if (points.Count > 1) {
            points.RemoveAt(points.Count - 1);
        }
        polygon.Path = new Geopath(points);
        polygon.StrokeColor = Colors.Red;
        polygon.FillColor = Colors.Blue;
        this.mMap.MapElements.Add(polygon);


    }
public异步void RenderState(){
HttpClient=新的HttpClient();
HttpResponseMessage response=wait client.GetAsync(新Uri(“https://raw.githubusercontent.com/johan/world.geo.json/master/countries/USA/CO.geo.json"));
string json=response.Content.ToString();
JObject obj=JObject.Parse(json);
JObject poly=(JObject)obj[“特征”][0][“几何体”];
JArray坐标=(JArray)多边形[“坐标”][0];
MapPolygon polygon=新建MapPolygon();
列表点=新列表();
foreach(JArray arr in coords){
Add(新的基本地理位置(){纬度=(双精度)arr[1],经度=(双精度)arr[0]});
}
//删除最后一点,因为它是重复的
如果(点数>1){
points.RemoveAt(points.Count-1);
}
多边形路径=新的地质路径(点);
polygon.StrokeColor=Colors.Red;
polygon.FillColor=Colors.Blue;
this.mMap.mapements.Add(多边形);
}

此代码将渲染colarado的状态

如果您能够找到每个状态的形状数据,我将使用MapPolygon渲染每个状态并相应地设置颜色。其中最困难的部分是找到形状数据,然后编写代码将其解析为地质点列表。(将其作为MapPolyline添加到MapControl将是最简单的部分)。